Skip to content

Commit

Permalink
Indizieren per HTTP funktioniert nun auch mit YRewrite, statt file_ge…
Browse files Browse the repository at this point in the history
…t_contents wird jetzt rex_socket verwendet
  • Loading branch information
tyrant88 committed Nov 16, 2016
1 parent eebf0bc commit ef2b937
Show file tree
Hide file tree
Showing 21 changed files with 1,049 additions and 1,026 deletions.
17 changes: 13 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
#Änderungen von search_it

##Version 6.1.0 (2016-11-16)
- neuer alter "Frontend mode" als Fix für #66
- "indiziern" -> "indexieren"
- PHP Zugriffslevel gesetzt private/public/protected
- **ACHTUNG**: Funktion `doSearchArticles()` deprecated, wird in nächster Version entfernt, bitte `setSearchAllArticlesAnyway()` nutzen
- Funktion `excludeArticle()` umbenannt in `unindexArticle()`
- Backend-Message "Suchindex muss erneuert werden" wird jetzt auch bei geänderten Werten angezeigt, die ein array sind.
- diverse ungenutze Variablen entfernt (indexUnknownFileExtensions, indexMissingFileExtensions)

##Version 6.0.1 (2016-11-05)
- Fehler beim Indizieren per HTTP und Verwendung von YRewrite behoben
- statt `file_get_contents` wird jetzt `rex_socket` verwendet
- Fehler beim Indexieren per HTTP und Verwendung von YRewrite behoben
- statt `file_get_contents` wird jetzt `rex_socket` verwendet

##Version 6.0.0 (2016-10-21)
- Fehler beim Indizieren von PDFs behoben, Einstellungen umgestellt
- Fehler beim Indexieren von PDFs behoben, Einstellungen umgestellt

##Version 6.0.0-rc1 (2016-10-10)
- Re-indizierung jetzt per cronjob möglich
Expand All @@ -32,7 +41,7 @@
- die sql->escape Methode umgibt das Ergebnis mit single Quotes, was alle SQL Abfragen fehlerhaft machte.
- "Frontend-Mode" und "outputfilter anwenden" ging so nicht - rex::setProperty('redaxo')
haben dann aber geholfen.
- Beim indizieren per HTTP musste ich "rex_url::init(new rex_path_default_provider('/', 'redaxo', true))" verwenden
- Beim indexieren per HTTP musste ich "rex_url::init(new rex_path_default_provider('/', 'redaxo', true))" verwenden
- PDF2TXT funzt nicht
- in "function indexArticle" musste die neue clang-Objektstruktur beachtet werden
- den re-index-Link im Backend beim Artikelmenu kann man so nicht mehr setzen, weil der EXTENSIONPOINT so nicht mehr existiert
Expand Down
40 changes: 21 additions & 19 deletions functions/functions_search_it.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,20 +186,21 @@ function search_it_handle_extensionpoint($_ep){

$_params = $_ep->getParams();
$_subject = $_ep->getSubject();
$includeColumns = is_array(rex_addon::get('search_it')->getConfig('include')) ? rex_addon::get('search_it')->getConfig('include') : array();
$search_it = new search_it();

switch($_ep->getName()){
// delete article from index
case 'ART_DELETED':
$search_it->excludeArticle($_params['id']);
$search_it->unindexArticle($_params['id']);
break;

// update meta-infos for article
case 'ART_META_UPDATED':
case 'ART_ADDED':
case 'ART_UPDATED':
foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'article'){
foreach( $includeColumns as $table => $columnArray){
if($table == rex::getTable('article')){
foreach($columnArray as $column) {
$search_it->indexColumn($table, $column, 'id', $_params['id']);
}
Expand All @@ -212,11 +213,11 @@ function search_it_handle_extensionpoint($_ep){
if( $_params['status'] || $si->getConfig('indexoffline') ) {
$search_it->indexArticle($_params['id'], $_params['clang']);
} else {
$search_it->excludeArticle($_params['id'], $_params['clang']);
$search_it->unindexArticle($_params['id'], $_params['clang']);
}

foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'article'){
foreach( $includeColumns as $table => $columnArray){
if($table == rex::getTable('article')){
foreach($columnArray as $column) {
$search_it->indexColumn($table, $column, 'id', $_params['id']);
}
Expand All @@ -231,17 +232,17 @@ function search_it_handle_extensionpoint($_ep){

case 'CAT_STATUS':
if( $_params['status'] || $si->getConfig('indexoffline') ){
foreach(search_it_getArticles(array($_params['id'])) as $art_id => $art_name) {
foreach( search_it_getArticles(array($_params['id'])) as $art_id => $art_name ) {
$search_it->indexArticle($art_id, $_params['clang']);
}
} else {
foreach(search_it_getArticles(array($_params['id'])) as $art_id => $art_name) {
$search_it->excludeArticle($art_id, $_params['clang']);
foreach( search_it_getArticles(array($_params['id'])) as $art_id => $art_name ) {
$search_it->unindexArticle($art_id, $_params['clang']);
}
}

foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'article'){
foreach( $includeColumns as $table => $columnArray ){
if($table == rex::getTable('article')){
foreach($columnArray as $column) {
$search_it->indexColumn($table, $column, 'id', $_params['id']);
}
Expand All @@ -251,8 +252,8 @@ function search_it_handle_extensionpoint($_ep){

case 'CAT_ADDED':
case 'CAT_UPDATED':
foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'article'){
foreach ( $includeColumns as $table => $columnArray ){
if($table == rex::getTable('article')){
foreach($columnArray as $column) {
$search_it->indexColumn($table, $column, 'id', $_params['id']);
}
Expand All @@ -261,8 +262,8 @@ function search_it_handle_extensionpoint($_ep){
break;

case 'MEDIA_ADDED':
foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'media'){
foreach( $includeColumns as $table => $columnArray){
if($table == rex::getTable('media')){
foreach($columnArray as $column) {$tex[] = $table.$column;
$search_it->indexColumn($table, $column);
}
Expand All @@ -271,8 +272,8 @@ function search_it_handle_extensionpoint($_ep){
break;

case 'MEDIA_UPDATED':
foreach($search_it->includeColumns as $table => $columnArray){
if($table == $search_it->tablePrefix.'media'){
foreach( $includeColumns as $table => $columnArray){
if($table == rex::getTable('media')){
foreach($columnArray as $column) {
$search_it->indexColumn($table, $column, 'id', $_params['id']);
}
Expand Down Expand Up @@ -754,6 +755,7 @@ function search_it_reindex_cols($_ep){

$_params = $_ep->getParams();

$includeColumns = is_array(rex_addon::get('search_it')->getConfig('include')) ? rex_addon::get('search_it')->getConfig('include') : array();
$search_it = new search_it;

if(!empty($_params['yform'])){
Expand All @@ -764,11 +766,11 @@ function search_it_reindex_cols($_ep){
$wherecondition = $_params['form']->getWhereCondition();
}

if(!array_key_exists($tablename,$search_it->includeColumns) OR !is_array($search_it->includeColumns[$tablename])) {
if(!array_key_exists($tablename, $includeColumns) OR !is_array($includeColumns[$tablename])) {
return true;
}

foreach($search_it->includeColumns[$tablename] as $col) {
foreach($includeColumns[$tablename] as $col) {
$search_it->indexColumn($tablename, $col, false, false, false, false, $wherecondition);
}

Expand Down
16 changes: 7 additions & 9 deletions lang/de_de.lang
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ search_it_reindex = Search it: Reindexieren

search_it_settings_mode = Suchmodus
search_it_settings_result = Suchergebnis
search_it_settings_origin = Zusätzl. Datenquellen
search_it_settings_addsources = Zusätzl. Datenquellen
search_it_settings_blacklist = Blacklist

search_it_settings_logicalmode = Logischer Suchmodus
Expand All @@ -25,12 +25,12 @@ search_it_settings_textmode_both = Durchsuche beides (HTML und Plain)

search_it_settings_title_indexmode = Indexierung
search_it_settings_indexmode_label = Art und Weise
search_it_settings_indexmode_viahttp = Indexierung der Artikel über eine HTTP-GET-Anfrage
search_it_settings_indexmode_viacache = Indexierung der Artikel über den Redaxo-Cache (ohne Template, nur der Artikel)
search_it_settings_indexmode_viacachetpl = Indexierung der Artikel über den Redaxo-Cache (mit Template, liefert das gleiche Ergebnis wie per HTTP-GET-Anfrage)
search_it_settings_indexmode_viahttp = HTTP-GET : Indexierung der Artikel über eine HTTP-GET-Anfrage
search_it_settings_indexmode_viacache = Artikel-Inhalte (CACHE) : Indexierung der Artikel ohne Template
search_it_settings_indexmode_viacachetpl = Komplette Seiten (CACHE) : Indexierung der Artikel mit Template
search_it_settings_indexoffline = Offline-Artikel indexieren
search_it_settings_automaticindex_label = Artikel (ADD, EDIT, DELETE) automatisch (de)indexieren
search_it_settings_reindex_cols_onforms_label = Reindizieren aller Spalten, wenn Tabellen mit yform oder form bearbeitet werden
search_it_settings_reindex_cols_onforms_label = Reindexieren aller Spalten, wenn Tabellen mit YForm oder form bearbeitet werden
search_it_settings_ep_outputfilter_label = Extension Point "OUTPUT_FILTER" aufrufen

search_it_settings_searchmode = MySQL-Suchmodus
Expand Down Expand Up @@ -93,8 +93,8 @@ search_it_generate_done = Index wurde erstellt
search_it_generate_cancel = Erstellung des Index abgebrochen
search_it_generate_duration = Dauer: 
search_it_generate_timeleft = Verbleibend: 
search_it_generate_articles = Artikel neu-indizieren
search_it_generate_columns = Tabellen neu-indizieren
search_it_generate_articles = Artikel neu-indexieren
search_it_generate_columns = Tabellen neu-indexieren

search_it_settings_fileext_header = Dateisuche
search_it_settings_fileext_label = Dateiendungen (z.B. 'txt,csv,pdf')<br />(frei lassen für beliebige Dateien)
Expand All @@ -110,5 +110,3 @@ search_it_ellipsis = …

search_it_cat_deleted = Alle Artikel der Kategorie sind noch im Suchindex enthalten. Sie müssen den <a href="index.php?page=search_it/generate">Suchindex erneuern</a>.

search_it_help_wiki = Die Dokumentation des Addons finden Sie unter <a href="http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch">http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch</a>.
search_it_help_forum = Sollten Sie Fragen oder Probleme haben, können Sie diese im Redaxo-Forum stellen: <a href="http://www.redaxo.org/de/forum/addons-f30/addon-search_it-fulltext-search-addon-t12965.html">http://www.redaxo.org/de/forum/addons-f30/addon-search_it-fulltext-search-addon-t12965.html</a>.
60 changes: 29 additions & 31 deletions lang/en_gb.lang
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,39 @@ search_it_settings = Settings
search_it_generate = Maintenance
search_it_readme = Readme

search_it_info = Such Addon
search_it_infotext = Such Addon
search_it_info = Search Addon
search_it_infotext = Search Addon
search_it_reindex = Search it: reindex

search_it_settings_mode = Searchmode
search_it_settings_result = Searchresult
search_it_settings_origin = Add. data sources
search_it_settings_mode = Search mode
search_it_settings_result = Search result
search_it_settings_addsources = Additional data sources
search_it_settings_blacklist = Blacklist

search_it_settings_logicalmode = Logical search mode
search_it_settings_logicalmode_and = Conjunctive search (AND)
search_it_settings_logicalmode_or = Disjunctive Suche (OR)
search_it_settings_logicalmode_or = Disjunctive search (OR)

search_it_settings_modi_header = Search modes

search_it_settings_textmode = Text mode
search_it_settings_textmode_plain = Search in text without HTML-Tags (plain)
search_it_settings_textmode_html = Search in text with HTML-Tags (HTML)
search_it_settings_textmode_plain = Search in text without HTML tags (plain)
search_it_settings_textmode_html = Search in text with HTML tags (HTML)
search_it_settings_textmode_both = Search in both (HTML and plain)

search_it_settings_title_indexmode = Indexing
search_it_settings_indexmode_label = Type
search_it_settings_indexmode_viahttp = Indexing of articles via a HTTP-GET-Request
search_it_settings_indexmode_viacache = Indexing of articles via redaxo cache (without template, article only)
search_it_settings_indexmode_viacachetpl = Indexing of articles ia redaxo cache (with template, same result as with HTTP-GET-Request)
search_it_settings_indexmode_viahttp = Indexing of articles using a HTTP-GET request
search_it_settings_indexmode_viacache = Article contents (CACHE) : Indexing of articles without template
search_it_settings_indexmode_viacachetpl = Complete pages (CACHE) : Indexing of complete articles with template
search_it_settings_indexoffline = Index offline articles
search_it_settings_automaticindex_label = de(index) articles automatically (ADD, EDIT, DELETE)
search_it_settings_reindex_cols_onforms_label = re-index all columns, if tables are changed through yform or form
search_it_settings_automaticindex_label = Index and deindex articles automatically (ADD, EDIT, DELETE)
search_it_settings_reindex_cols_onforms_label = Reindex all columns, if tables are changed through YForm or form
search_it_settings_ep_outputfilter_label = Execute extension point "OUTPUT_FILTER"

search_it_settings_searchmode = MySQL search modus
search_it_settings_searchmode_like = LIKE (finds subwords, but slower)
search_it_settings_searchmode_match = MATCH AGAINST (finds only complete words, faster)
search_it_settings_searchmode = MySQL search mode
search_it_settings_searchmode_like = LIKE (finds subwords, but is slower)
search_it_settings_searchmode_match = MATCH AGAINST (finds only complete words, but is faster)

search_it_settings_highlight_header = Appearance of highlighted text
search_it_settings_surroundtags_start = start tag
Expand All @@ -53,18 +53,18 @@ search_it_settings_highlight_surroundtextsingle = For every found search term on
search_it_settings_highlight_teaser = Teaser with, if present, highlighted search terms
search_it_settings_highlight_array = Array with every found text for every search term
search_it_settings_highlight_sample = Sample result with search term
search_it_settings_search_highlighter = Search Highlighter
search_it_settings_search_highlighter = Search highlighter
search_it_settings_highlighterclass = If you name a CSS class here, every found searchword will be surrounded by a <span> element with this class, when a search result is clicked and displayed.

search_it_settings_similarwords_label = Fuzzy search
search_it_settings_similarwords_label = Similarity search
search_it_settings_similarwords_none = Deactivate
search_it_settings_similarwords_soundex = Soundex
search_it_settings_similarwords_metaphone = Metaphone
search_it_settings_similarwords_cologne = Kölner Phonetik
search_it_settings_similarwords_all = All
search_it_settings_similarwords_permanent = Perform fuzzy search even if results are found.
search_it_settings_similarwords_permanent = Perform similarity search even if results are found.

search_it_settings_exclude = Exclude words, Categories and Articles from the search
search_it_settings_exclude = Exclude words, categories and articles from the search
search_it_settings_exclude_blacklist = Words (comma-separated)
search_it_settings_exclude_categories = Categories
search_it_settings_exclude_articles = Articles
Expand All @@ -73,18 +73,18 @@ search_it_settings_include = Include database tables

search_it_settings_submitbutton = Save settings
search_it_settings_saved = Settings saved
search_it_settings_saved_warning = The search index has to be regenerated.
search_it_settings_saved_warning = The search index has to be rebuilt.

search_it_generate_actions_title = Actions
search_it_generate_full = Generate total index
search_it_generate_full_text = Deletes and rebuilds the index-table.
search_it_generate_full = Generate complete index
search_it_generate_full_text = Deletes and rebuilds the index table.
search_it_generate_incremental = Generate index incrementally
search_it_generate_incremental_text = When having problems with maximum execution time the index can be generated incrementally.
search_it_generate_incremental_confirm = Start incremental indexing?
search_it_generate_delete_cache = Clear search cache
search_it_generate_delete_cache_text = If regenerating of the index is not nescessary, the search cache can be deleted exclusively.
search_it_generate_delete_cache_text = If recreation of the index is not nescessary, the search cache can be deleted exclusively.
search_it_generate_cache_deleted = Search cache cleared
search_it_generate_delete_keywords = Truncate keyword-index
search_it_generate_delete_keywords = Truncate keyword index
search_it_generate_delete_keywords_text = Deletes all keywords collected during the indexing process and with searches. These keywords are nescessary for the fuzzy search and should not be deleted.
search_it_generate_delete_keywords_confirm = Do you really want to delete all keywords?
search_it_generate_keywords_deleted = Keywords deleted
Expand All @@ -93,11 +93,11 @@ search_it_generate_done = Index generated
search_it_generate_cancel = Indexing aborted
search_it_generate_duration = Time: 
search_it_generate_timeleft = Remaining: 
search_it_generate_articles = re-index articles
search_it_generate_columns = re-index tables
search_it_generate_articles = reindex articles
search_it_generate_columns = reindex tables

search_it_settings_fileext_header = File search
search_it_settings_fileext_label = Extensions (i.e. 'txt,csv,pdf' <br />(keep empty for any files)
search_it_settings_fileext_label = Extensions (i.e. 'txt,csv,pdf' <br />(leave empty for any files)
search_it_settings_file_mediapool = Index mediapool
search_it_settings_file_dirdepth_label = Directory depth
search_it_settings_folders_label = Include following directories
Expand All @@ -108,7 +108,5 @@ search_it_settings_show_none = Hide all

search_it_ellipsis = …

search_it_cat_deleted = All articles are still included in the search index. You have to <a href="index.php?page=search_it/generate">regenerate the search index</a>.
search_it_cat_deleted = All articles are still included in the search index. You have to <a href="index.php?page=search_it/generate">rebuild the search index</a>.

search_it_help_wiki = The documentation of this addon can be found at <a href="http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch">http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch</a>.
search_it_help_forum = Any questions or suggestions can be asked/made at <a href="http://www.redaxo.org/de/forum/addons-f30/addon-search_it-fulltext-search-addon-t12965.html">http://www.redaxo.org/de/forum/addons-f30/addon-search_it-fulltext-search-addon-t12965.html</a>.
9 changes: 5 additions & 4 deletions lib/cronjob.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,21 @@ public function execute()
//$message = $this->getParam('action').':'."\n";

$search_it = new search_it();
$includeColumns = is_array(rex_addon::get('search_it')->getConfig('include')) ? rex_addon::get('search_it')->getConfig('include') : array();
switch ($this->getParam('action')){
case 2:
// Spalten neu indizieren
foreach( $search_it->includeColumns as $table => $columnArray ){
// Spalten neu indexieren
foreach( $includeColumns as $table => $columnArray ){
foreach( $columnArray as $column ){
$search_it->indexColumn($table, $column);
}
}
break;

case 3:
// Artikel neu indizieren
// Artikel neu indexieren
$art_sql = rex_sql::factory();
$art_sql->setTable($search_it->tablePrefix.'article');
$art_sql->setTable(rex::getTable('article'));
if( $art_sql->select('id,clang_id') ){
foreach( $art_sql->getArray() as $art ){
$search_it->indexArticle($art['id'], $art['clang_id']);
Expand Down
Loading

0 comments on commit ef2b937

Please sign in to comment.