xong / rexsearch

Fulltext search adddon for Redaxo
http://wiki.redaxo.de/index.php?n=R4.RexSearch
14 stars 5 forks source link

indexColumn(): "Warning: Invalid argument supplied for foreach()" #19

Closed alxndr-w closed 9 years ago

alxndr-w commented 9 years ago

Hey Xong,

Ich hab hier folgendes Phänomen:

Cronjob-Code (via Redaxo Cronjob Addon):

<?php
$xsearch = new RexSearch;
$xsearch->indexColumn('rex_article', 'seo_description');
$xsearch->indexColumn('rex_article', 'seo_keywords');
$xsearch->indexColumn('rex_xf_charts', 'title');
$xsearch->indexColumn('rex_xf_charts', 'interpret');
?>

Log listet unzählige Warnungen auf:

Warning: Invalid argument supplied for foreach() in /kunden/.../www/redaxo/include/addons/rexsearch/classes/class.rexsearch.inc.php on line 812

Den Code-Syntax hatte ich aus dem Forum. Was läuft da schief? Soweit ich das beurteilen kann, findet die Indexierung jedoch statt.

VG Alex

xong commented 9 years ago

Das wirkt so, als wäre die Settings-Datei kaputt. Am besten die Einstellungen nochmal neu speichern.

alxndr-w commented 9 years ago

Einstellungen neu gespeichert. Addon reinstalliert. Hat leider nichts verändert.

xong commented 9 years ago

Kannst du mir mal den Inhalt der Settings-Datei schicken?

alxndr-w commented 9 years ago
a:14:{s:11:"logicalmode";s:3:"and";s:8:"textmode";s:5:"plain";s:16:"similarwordsmode";s:1:"7";s:10:"searchmode";s:4:"like";s:9:"indexmode";s:1:"1";s:14:"automaticindex";s:1:"1";s:12:"surroundtags";a:2:{i:0;s:8:"<strong>";i:1;s:9:"</strong>";}s:5:"limit";a:2:{i:0;s:1:"0";i:1;s:2:"20";}s:14:"maxteaserchars";s:3:"200";s:17:"maxhighlightchars";s:2:"50";s:9:"highlight";s:18:"surroundtextsingle";s:7:"include";a:1:{s:13:"rex_xf_charts";a:5:{i:0;s:2:"id";i:1;s:9:"interpret";i:2;s:5:"title";i:3;s:11:"xf_dance_id";i:4;s:4:"date";}}s:14:"fileextensions";a:1:{i:0;s:3:"pdf";}s:8:"dirdepth";s:1:"3";}
alxndr-w commented 9 years ago

Wenn's einfacher für dich ist, können wir auch morgen kurz reinschauen. Wie gesagt, die Indexierung wird trotzdem ausgeführt.

xong commented 9 years ago

Hab den Fehler: Du solltest Spalten, die du indexieren möchtest, auch in den Einstellungen von RexSearch auswählen. Außerdem ist dann ein Cronjob nicht notwendig, weil die Artikelspalten sowieso reindexiert werden, wenn ein Artikel geändert, angelegt oder gelöscht wird. Bei Spalten eigener Tabellen, z. B. XForm-Tabellen, würde ich mit den Extensionpoints vom XForm-Tablemanager arbeiten und die Spalten genau dann (de-/re-)indexieren, wenn es nötig ist. Ich werde das in der nächsten Version von RexSearch für Redaxo 5 aber sowieso miteinbauen.

alxndr-w commented 9 years ago

Ah, natürlich!

Kurz für dich zur Erläuterung: Ich bearbeite seo_description und seo_keywords auch über xform, weil's da übersichtlicher zugeht, als wenn ich in jeden Artikel einzeln reinklicke. Deswegen, so mein Gedanke werden die im Cronjob einfach gleich mit indexiert.

Ich glaube, wie man in Extension Points einsetzt, wäre eine hervorragende Idee für eine Session ;D Oder ich lese mir mal https://github.com/yakamara/redaxo_xform/wiki/09-Erweitern-der-XForm durch, denn mit EP bin ich noch nicht so vertraut, sieht aber eigentlich recht einfach aus.

Danke für die Hilfe und die Tipps.

staabm commented 9 years ago

Siehe http://www.redaxo.org/de/doku/extension-points/extension-points-im-detail/