[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Addon RexSearch (Fulltext-Search-Addon) - Seite 8 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
nitzer
Beiträge: 229
Registriert: 16. Okt 2006, 22:53
Wohnort: Erkrath
Kontaktdaten: ICQ Website

5. Mär 2010, 00:21

PHP-Version ist 5.2.6, MySQL 5.0.41

Hab grad nochmal die redaxo-Demo runtergeladen und nochmal neuinstalliert. Da kommt auch nichts.

Ich teste nochmal und schick Dir mal ein PM wegen des Testzugangs…

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

9. Mär 2010, 17:26

XSearch hat ein neues Plugin bekommen: Plaintext.

Mit diesem Plugin könnt ihr ähnlich wie mit jQuery Elemente auswählen und aus dem indexierten Plaintext streichen.

Die neue Version kann einfach drübergebügelt und muss nicht neu installiert werden.

Nur das Plugin muss installiert und aktiviert werden.

Anwendung: In der Textarea in den Einstellungen im Backend könnt ihr kommaseparierte CSS-Selektoren angeben. Alle Elemente, auf die diese Selektoren passen werden dann samt Inhalt aus dem Plaintext herausgefiltert.
Somit habt ihr noch mehr Kontrolle über eure Suchergebnisse. Viel Spaß damit.

Das Plugin an sich wird noch eine kleine Erläuterung bekommen. Die Funktion wird sich aber höchsten erweitern, nicht ändern.

Download: XSearch mit den Plugins "Stats" und "Plaintext"
Zuletzt geändert von Xong am 9. Mär 2010, 23:48, insgesamt 1-mal geändert.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

9. Mär 2010, 17:47

hi robert
der link ist leider falsch...

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

9. Mär 2010, 23:50

Richard.Laing hat geschrieben:hi robert
der link ist leider falsch...
Danke für die Info. Ich hab´s geändert.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
Oliver.Kreischer
Beiträge: 2508
Registriert: 17. Dez 2004, 00:03
Wohnort: Velbert - LA
Kontaktdaten: Website

10. Mär 2010, 11:19

Cool. Funktioniert gut.

Danke!

Oliver
> Friends Of REDAXO Gemeinsame REDAXO-Entwicklung!
> REDAXO Agenturen. Eintragen erwünscht!
> Komm in den Slack Channel Es lohnt sich!

bluenote
Beiträge: 233
Registriert: 9. Mär 2006, 13:01

Fatal Error Xsearch zusammen mit

10. Mär 2010, 17:34

Hallo,

vorab: xsearch ist ein absolut geniales addon und funktioniert einwandfrei. Leider erhalte ich sobald ich xsearch aktiviere im Backend bei der Verwendung vom Routenplaner http://www.redaxo.de/165-0-moduldetails ... ule_id=458 einen Fatal error: Cannot redeclare getnearestcolor() (previously declared in C:\Programme\xampp\htdocs\buk_neu\redaxo\include\classes\class.rex_article.inc.php(271) : eval()'d code:29) in C:\Programme\xampp\htdocs\buk_neu\redaxo\include\classes\class.rex_article.inc.php(271) : eval()'d code on line 29

Im Moment noch lokaler Testinstall, daher kein Link möglich.
Wäre toll wenn jemand wüsste woher dieser Fehler kommt.

Danke
Jens
-- Unser Kopf ist rund, damit das Denken die Richtung wechseln kann. Francis Picabia --
-- www.pixelBREEZER.de --

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

10. Mär 2010, 17:47

Das ist ein Fehler im Modul. (Wer das wohl programmiert hat...) =)

Fehler im Modul ist behoben: http://www.redaxo.de/165-0-moduldetails ... ule_id=458

Bei weiteren Fehlern dieser Art, kannst du auch einfach die Indexierung über einen HTTP-GET-Request in Verbindung mit dem Plaintext-Plugin (zum Ausschließen der Navigation, etc.) nutzen. Damit dürfte das Problem auch bei anderen fehlerhaften Modulen keine Rolle spielen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

bluenote
Beiträge: 233
Registriert: 9. Mär 2006, 13:01

11. Mär 2010, 10:23

Xong hat geschrieben:... Fehler im Modul ist behoben: http://www.redaxo.de/165-0-moduldetails ... ule_id=458
Wow! Du bist echt große Klasse. Vielen Dank für die schnelle Reaktion.
Xong hat geschrieben:Bei weiteren Fehlern dieser Art, kannst du auch einfach die Indexierung über einen HTTP-GET-Request in Verbindung mit dem Plaintext-Plugin (zum Ausschließen der Navigation, etc.) nutzen. Damit dürfte das Problem auch bei anderen fehlerhaften Modulen keine Rolle spielen.
Ähh ... ich glaub Dir einfach alles. Weil ich kein Wort davon verstehe :? Macht aber auch nichts, denn im Moment funzt alles wunderbar. Danke noch einmal.
Eine andere Frage hab ich aber noch. Um das Scrollen der Karte abzuschalten, reicht es da diesen Part des Codes zu löschen?

Code: Alles auswählen

function addScrollEvent(func) {
  var oldonscroll = window.oldonscroll;
  if (typeof window.onscroll != 'function') {
    window.onscroll = func;
  } else {
    window.onscroll = function() {
      if (oldonscroll) {
        oldonscroll();
      }
      func();
    }
  }
}
 
function moveMap() {
  var scrollHeight;
 
  if( typeof( window.pageYOffset ) == 'number' )
    //Netscape compliant
    scrollHeight = window.pageYOffset;
  else if( document.body && document.body.scrollTop )
    //DOM compliant
    scrollHeight = document.body.scrollTop;
  else if( document.documentElement && document.documentElement.scrollTop )
    //IE6 standards compliant mode
    scrollHeight = document.documentElement.scrollTop;
  mapelem.style.position = 'relative';
 
  if(scrollHeight >= maptop)
  {
    if( (document.getElementById('directions').offsetHeight-scrollHeight+maptop-30) > 0)
      mapelem.style.top = (scrollHeight-maptop+30) + 'px';
  }
  else
    mapelem.style.top = '0';
}
 
addScrollEvent(moveMap);
Oder sind da noch mehr Teile die dann überflüssig sind?

Jens
-- Unser Kopf ist rund, damit das Denken die Richtung wechseln kann. Francis Picabia --
-- www.pixelBREEZER.de --

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

11. Mär 2010, 10:52

Moin Jens!
bluenote hat geschrieben:Um das Scrollen der Karte abzuschalten, reicht es da diesen Part des Codes zu löschen? Oder sind da noch mehr Teile die dann überflüssig sind?
Ja, auch der Code zur Ermittlung der Höhe der Seite kann weg:

Code: Alles auswählen

var maptop = 0;
var mapelemtmp = mapelem;
while( mapelemtmp && (mapelemtmp.nodeName.toLowerCase() != 'body'))
{
  maptop += mapelemtmp.offsetTop;
  mapelemtmp = mapelemtmp.offsetParent;
}
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

bluenote
Beiträge: 233
Registriert: 9. Mär 2006, 13:01

11. Mär 2010, 10:56

Moin und Danke. Du bist unglaulich ...

Jens
-- Unser Kopf ist rund, damit das Denken die Richtung wechseln kann. Francis Picabia --
-- www.pixelBREEZER.de --

Tito
Beiträge: 128
Registriert: 8. Mär 2008, 09:53
Wohnort: Aachen
Kontaktdaten: Website

23. Mär 2010, 16:27

Hallo Xong

ich habe gerade mal die neue Version von XSearch installiert ... klasse :-)

Ich habe aber noch einige Probleme (hab dir darüber schon eine Email geschickt): Irgendwo scheint sich das Script aufzuhängen und zerschießt mir die Ausgabe. Ich benutze für die Indexierung die Variante über den Redaxo-Cache ohne Template.
Was mir außerdem noch aufgefallen ist: Artikel in Offline-Kategorien werden mit indexiert, sollten sie aber eigentlich nicht. Die Artikel selbst sind zwar online geschaltet, aber da sie in einer offline-Kategorie liegen nicht von außen erreichbar (was auch so bleiben sollte ;-) ).
Wenn ich die Artikel offline schalte bleiben sie im Index, was eine Neuindexierung erforderlich macht. Wäre schön, wenn die Aktualisierung des Onlinestatus auch eine Aktualisierung des Indexes nach sich ziehen würde wie beim aktualisieren des Inhaltes.

Ich hatte dein Addon vor längerer Zeit schon mal getestet und bin sehr positiv überrascht was dessen Entwicklung anbetrifft. Echt klasse!!
Immer weiter so 8)

Gruß
Tito

@edit: Hm ... hab gerade in der Doku gelesen, das das mit dem automatischen de-/indexieren beim ändern des online-Status funktionieren soll. Klappt aber leider bei mir nicht.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

24. Mär 2010, 02:48

Hallo Tito!

Danke für dein Lob und deine Rückmeldung.

Da war noch ein kleiner Fehler in der Datei /functions/functions.inc.php.

Die ausgebesserte Version ist hochgeladen.
Es reicht, wenn du diese eine Datei ersetzt.

Was vielleicht noch zu erwähnen wäre: Diese Funktion der automatischen (De)indexierung löscht oder ergänzt bei der Off-/Online-Schaltung einer Kategorie alle untergeordneten Artikel im Index. Bei vielen Artikeln kann das Hinzufügen zum Index schon mal eine Weile dauern oder gar zum Skriptabbruch führen. An eine Verbesserung dieser Situation werde ich mich demnächst setzen.

Für mich eine ToDo-Liste für die kommenden Wochen:
  • SQL-Abfragen optimieren
  • (De)indexierung optimieren
  • Funktionen optimieren
  • Doku auf den neuesten Stand bringen
  • (Vollständige) Kompatibilität zu Redaxo 4.3 herstellen
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

ska
Beiträge: 76
Registriert: 27. Okt 2007, 14:39
Wohnort: Landau/Pfalz

Keine Suchergebnisse

24. Mär 2010, 13:37

Auf meiner Seite lief das AddOn seit dem letzten REDAXO-Tag wunderbar; nun habe ich heute die aktuelle Version eingespielt und bekomme plötzlich keinerlei Ergebnisse mehr angezeigt. Datenbank-Tabellen sind alle okay, den Index habe ich neu erstellt, die Ergebnisseite bleibt dennoch leer. Inzwischen habe ich auch 'mal das einfache Ausgabemodul eingesetzt, allerdings ohne Erfolg.

Gibt's denn bei der Aktualisierung irgendwas zu beachten? Mein Formularcode ist in Ordnung (siehe unten) – keine Ahnung, wo das Problem liegt.

Code: Alles auswählen

<form id="xsearch_form" action="index.php" method="get">
    <input type="hidden" name="article_id" value="REX_ARTICLE_ID" />
    <input type="hidden" name="clang" value="REX_CLANG_ID" />
    <input class="sucheingabe" type="text" size="30" name="xsearch" value="<?php if(!empty($_GET['xsearch'])) echo htmlspecialchars($_GET['xsearch']); ?>" />
	<button class="btn" type="submit"><span><span>Suche</span></span></button>
</form>

<h2>Ergebisse Ihrer Suche nach "<?php if(!empty($_GET['xsearch'])) echo htmlspecialchars($_GET['xsearch']); ?>"</h2>

<?php
  if(!empty($_REQUEST['xsearch']))
  {
    $xsearch = new XSearch();
    $result = $xsearch->search($_REQUEST['xsearch']);

    if($result['count'] > 0)
    {
      echo '<ul class="searchresults">';
      foreach($result['hits'] as $hit)
      {
        if($hit['type'] == 'article')
        {
          $article = OOArticle::getArticleById($hit['fid']);
          echo '<li>
    <h4><a href="'.($url = htmlspecialchars($article->getUrl())).'">'.$article->getName().'</a></h4>
      <p class="highlightedtext">'.$hit['highlightedtext'].'</p>
      <p class="url">'.$REX['SERVER'].rex_getUrl($hit['fid'], $hit['clang']).'</p></li>';
        }
      }
      echo '</ul>';
    }
  }
  ?>

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

24. Mär 2010, 13:44

Hallo ska!

Inzwischen haben sich die Datenbankstrukturen der Tabellen des Addons geändert.

Du musst das Addon deinstallieren (reinstallieren reicht nicht) und neu installieren.
Danach muss der Index neu erstellt werden.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

ska
Beiträge: 76
Registriert: 27. Okt 2007, 14:39
Wohnort: Landau/Pfalz

24. Mär 2010, 15:54

Prima, vielen Dank, nun läuft's wieder! Ich habe allerdings noch ein paar Probleme mit Alias-Artikeln, aber das muss ja nicht an xSearch liegen.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

24. Mär 2010, 16:04

Hi ska!
ska hat geschrieben:Ich habe allerdings noch ein paar Probleme mit Alias-Artikeln, aber das muss ja nicht an xSearch liegen.
Was sind Alias-Artikel?
Sind das Artikel, die eine Weiterleitung enthalten?

Diese Artikel werden per Default von der Indexierung ausgeschlossen, da sie nicht indexiert werden können.
Das Verhalten ist im Moment auch nicht konfigurierbar.

Werden diese Artikel nicht automatisch von der Indexierung ausgeschlossen, kannst du, um den selben Effekt zu erreichen, diese auch auf der Einstellungsseite im Backend einfach ausschließen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

ska
Beiträge: 76
Registriert: 27. Okt 2007, 14:39
Wohnort: Landau/Pfalz

24. Mär 2010, 16:17

Nein, es ist genau andersherum: Bei bestimmten Artikeln (die auf meiner Seite in mehreren Kategorien vorkommen) habe ich in den Metadaten einen Alias angegeben (=die ID des Originalartikels). So muss ich bei Änderungen nur diesen Originalartikel ändern, und nicht auch alle 'Kopien' dieses Artikels.

Das Problem liegt aber wohl in erster Linie daran, dass vom Original nur die Blöcke/Module, nicht aber Keywords und Beschreibungen (Metadaten) übernommen werden. Ich habe dazu hier einen eigenen Thread eröffnet: http://forum.redaxo.de/sutra79097.html#79097

Tito
Beiträge: 128
Registriert: 8. Mär 2008, 09:53
Wohnort: Aachen
Kontaktdaten: Website

24. Mär 2010, 16:58

Kleines Workaround zu meinem Problem mit der zerschossenen Ausgabe:

Nach der Analyse der Ausgabe hat sich herausgestellt, das sich ein "</div>" in die Ausgabe von $result['hits']['highlightedtext'] geschlichen hat.
Also benutze ich jetzt für die Ausgabe nicht mehr

Code: Alles auswählen

echo $hit['highlightedtext'];
sondern

Code: Alles auswählen

echo strip_tags($hit['highlightedtext'] , '<strong>');
Das ",'<strong>'" belässt dieses Tag in der Ausgabe, da damit die gefundenen Suchwörter gekennzeichnet sind (unter Einstellungen im Backend definiert).

Viel Spass noch mit diesem genialen Addon.

Gruß
Tito

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

24. Mär 2010, 17:40

Hallo ska und Tito!

@ska
Ich verstehe das Problem trotzdem noch nicht ganz. Wenn die Inhalte komplett identisch sind, dann reicht es doch, die Alias-Artikel aus dem Index auszuschließen und nur den Original-Artikel zu durchsuchen.

@Tito und alle anderen, die das Plaintext-Plugin nutzen
Tito hat geschrieben:Kleines Workaround zu meinem Problem mit der zerschossenen Ausgabe:

Nach der Analyse der Ausgabe hat sich herausgestellt, das sich ein "</div>" in die Ausgabe von $result['hits']['highlightedtext'] geschlichen hat.
Also benutze ich jetzt für die Ausgabe nicht mehr

Code: Alles auswählen

echo $hit['highlightedtext'];
sondern

Code: Alles auswählen

echo strip_tags($hit['highlightedtext'] , '<strong>');
Das ",'<strong>'" belässt dieses Tag in der Ausgabe, da damit die gefundenen Suchwörter gekennzeichnet sind (unter Einstellungen im Backend definiert).
Der Ursprung dieses Problems liegt allerdings im Plugin "Plaintext".
Dort wird im Moment die Funktion strip_tags nicht ausgeführt.

Das kann aber geändert werden, indem in den Backendeinstellungen des Plugins das Häkchen bei "Standard-Plaintext-Konvertierung durchführen" gesetzt wird. Danach ist eine Neuindexierung erforderlich.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

dag
Beiträge: 369
Registriert: 24. Aug 2004, 22:11
Wohnort: Dortmund
Kontaktdaten: Website

12. Apr 2010, 11:18

Hallo,
ich nutze die XSearch-Version 0.4.2 (Stand 27.02.2010) mit Redaxo 4.2.1, PHP Version 5.2.10, MySQL 5.0.83. Wenn ich das Standard-Modul verwende, klappt das auch gut. Wenn ich dort versuche, nur in bestimmten Kategorien suchen zu lassen, erhalte ich folgende Fehlermeldungen:
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /www/htdocs/w00988b6/redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 331

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /www/htdocs/w00988b6/redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 343

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /www/htdocs/w00988b6/redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 355
Dies ist der Quelltext:

Code: Alles auswählen

<?php

    $xsearch = new XSearch();

    $xsearch->searchInCategories(2,3,4);

    $result = $xsearch->search($_REQUEST['xsearch']);

    if($result['count'] > 0)
    {
      echo '<ul class="searchresults">';
      foreach($result['hits'] as $hit)
      {
        if($hit['type'] == 'article')
        {
          $article = OOArticle::getArticleById($hit['fid']);
          echo '<li>
    <h4><a href="'.($url = htmlspecialchars($article->getUrl())).'">'.$article->getName().'</a></h4>
      <p class="highlightedtext">'.$hit['highlightedtext'].'</p>
      <p class="url">'.$REX['SERVER'].rex_getUrl($hit['fid'], $hit['clang']).'</p></li>';
        }
      }
      echo '</ul>';
    }

  ?> 
Das Problem tritt auf, sobald ich diese Zeile ergänze:

Code: Alles auswählen

$xsearch->searchInCategories(2,3,4);
Die Kategorien existieren und sind online geschaltet. Ist da vielleicht ein Fehler, den ich nicht sehe?
Gruß
Dagmar

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

12. Apr 2010, 11:30

dag hat geschrieben:Das Problem tritt auf, sobald ich diese Zeile ergänze:

Code: Alles auswählen

$xsearch->searchInCategories(2,3,4);
Die Kategorien existieren und sind online geschaltet. Ist da vielleicht ein Fehler, den ich nicht sehe?
Der Fehler liegt im Addon.
Übergebe die IDs mal so:

Code: Alles auswählen

$xsearch->setSearchInIDs(array('categories'=>array(2,3,4)));
Ich werde XSearch überarbeiten, wenn meine laufenden Projekte abgeschlossen sind. Hoffentlich bald... :?
Zuletzt geändert von Xong am 12. Apr 2010, 12:01, insgesamt 1-mal geändert.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

dag
Beiträge: 369
Registriert: 24. Aug 2004, 22:11
Wohnort: Dortmund
Kontaktdaten: Website

12. Apr 2010, 11:39

Hallo Robert,
herzlichen Dank für die schnelle Hilfe! Nun ist nur noch eine Fehlermeldung übrig:
Warning: Invalid argument supplied for foreach() in /www/htdocs/w00988b6/redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 348
Kann man da noch was machen?
Ich finde dieses AddOn im Übrigen sehr hilfreich, vor allem wegen seiner vielen Einstellmöglichkeiten. :wink:

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

12. Apr 2010, 12:01

Hi dag!

Danke für dein Lob!
dag hat geschrieben:herzlichen Dank für die schnelle Hilfe! Nun ist nur noch eine Fehlermeldung übrig:
Warning: Invalid argument supplied for foreach() in /www/htdocs/w00988b6/redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 348
Kann man da noch was machen?
Ohje...
Ich bin wohl etwas neben der Spur.
So wäre es richtig:

Code: Alles auswählen

$xsearch->setSearchInIDs(array('categories'=>array(2,3,4)));
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

dag
Beiträge: 369
Registriert: 24. Aug 2004, 22:11
Wohnort: Dortmund
Kontaktdaten: Website

12. Apr 2010, 12:55

Bin ich blind 8) ?
Ich seh keinen Unterschied?

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

12. Apr 2010, 13:18

dag hat geschrieben:Bin ich blind 8) ?
Ich seh keinen Unterschied?
Du bist nicht blind. Ich habe es oben nur auch schon geändert, damit niemand den Fehler übernimmt.

Es hat das array für die IDs gefehlt.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Zurück zu „Allgemeines [R4]“