Hallo,
erst einmal Danke für das super AddOn "XSearch" und die geniale Installationsanleitung.
In der Hilfe zu XSearch wird beim Umlautproblem beschrieben, man könne die Sucheingabe per php verändern.
Nur wenn die erste Lösungsmethode absolut nicht eingesetzt werden kann, kann man die Sucheingabe im Suchmodul mit der PHP-Funktion htmlentities vorbehandeln, bevor sie an die search-Methode weitergereicht wird.
Da ich froh bin, dass die Seite läuft möchte ich im Moment keine Experimente mit den Daten machen. Das umcodieren der gespeicherten Daten ist zwar möglich, auch das anpassen von TinyMCE, aber das möchte ich dann in die 4.3 in Ruhe einbauen und nicht im laufenden Betrieb.
Hat irgendjemand einem Codeschnippsel wie in der Sucheingabe die htmlentities übergeben werden können. Meine Fähigkeiten diesbezüglich sind mager und die Zeit läuft mir etwas davon.
Ich sag schon mal Danke im voraus.
Daniel
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/
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/
-
- Beiträge: 86
- Registriert: 5. Aug 2008, 18:08
Hi teletubbie!
Irgendwo übergibst du ja an XSearch den Suchbegriff.
Dieser muss dann einfach in die Funktion htmlentities() gekapselt werden:
Irgendwo übergibst du ja an XSearch den Suchbegriff.
Dieser muss dann einfach in die Funktion htmlentities() gekapselt werden:
Code: Alles auswählen
$xsearch->search(htmlentities($searchterm));
-
- Beiträge: 86
- Registriert: 5. Aug 2008, 18:08
Hallo,
ich verwende derzeit das Beispielmodul "Suche mit PDF-Dateien, Pagination und Ähnlichkeitssuche".
Egal ob ich den Code an zwei oder einer Stelle eingebe, es passiert nix. Die Suche hängt sich nicht auf, findet aber garnichts mehr . Ohne den Zusatzcode findet er wenigstens über die Ähnlichkeitssuche etwas.
$result = $xsearch->search(htmlentities($_REQUEST['xsearch']));
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $xsearch->search(htmlentities($newsearchString));
if($result['count'] > 0)
echo '<p>Meinten Sie <strong>'.$newsearchString.'</strong>?</p><br>';
}
Ich vermute, dass ich wieder an der falschen Stelle unterwegs bin.
Daniel
ich verwende derzeit das Beispielmodul "Suche mit PDF-Dateien, Pagination und Ähnlichkeitssuche".
Egal ob ich den Code an zwei oder einer Stelle eingebe, es passiert nix. Die Suche hängt sich nicht auf, findet aber garnichts mehr . Ohne den Zusatzcode findet er wenigstens über die Ähnlichkeitssuche etwas.
$result = $xsearch->search(htmlentities($_REQUEST['xsearch']));
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $xsearch->search(htmlentities($newsearchString));
if($result['count'] > 0)
echo '<p>Meinten Sie <strong>'.$newsearchString.'</strong>?</p><br>';
}
Ich vermute, dass ich wieder an der falschen Stelle unterwegs bin.
Daniel
-
- Beiträge: 86
- Registriert: 5. Aug 2008, 18:08
Mit Hilfe von Xong hat die Anpassung geklappt.
Es gab einige Kuriositäten die ich/wir nicht nachvollziehen konnten. So kam es Anfangs zu einen TimeOut-Fehler (500) und einige wenige male auch zu einem Problem mit dem Speicher. Beides ist inzwischen nicht mehr aufgetaucht.
Ich gebe hier einfach mal die Lösung wieder welche ins Rennen geschickt wurde:
XSearch 0.52 vorsorglich deinstalliert und erneut installiert.
Modulcode von Xong eingefügt:
Maximale Trefferzahl: 1
Max. Zeichenzahl für Teaser: 200
Max. Zeichenzahl um Suchbegriffe: 20
Darstellungsmodus "Als Teaser, in dem eventuell..."
erhöhe ich die "Max. Zeichenzahl um den Suchbegriff" über 20 so kommt es gelegentlich zu einem Timeout oder Scriptfehler (500).
Jetzt läuft es.
Vielen Dank an Xong der viel daran gearbeitet hat!
Zu sehen gibt es die Sache hier: http://www.bffk.de
Daniel
Es gab einige Kuriositäten die ich/wir nicht nachvollziehen konnten. So kam es Anfangs zu einen TimeOut-Fehler (500) und einige wenige male auch zu einem Problem mit dem Speicher. Beides ist inzwischen nicht mehr aufgetaucht.
Ich gebe hier einfach mal die Lösung wieder welche ins Rennen geschickt wurde:
XSearch 0.52 vorsorglich deinstalliert und erneut installiert.
Modulcode von Xong eingefügt:
Code: Alles auswählen
<?php
define('SHOWMAX',10);
if(!empty($_REQUEST['xsearch']))
{
$xsearch = new XSearch();
$xsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
$xsearch->searchEntities = true;
$result = $xsearch->search($_REQUEST['xsearch']);
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $xsearch->search($newsearchString);
if($result['count'] > 0)
echo '<p>Meinten Sie <strong>'.$newsearchString.'</strong>?</p>';
}
if($result['count'] > 0)
{
echo '<ul class="searchresults">';
foreach($result['hits'] as $hit)
{
if($hit['type'] == 'db_column')
$text = $hit['article_teaser'];
else
$text = $hit['highlightedtext'];
if($hit['type'] == 'file' AND $hit['fileext'] == 'pdf')
{
// PDF-Datei
$filename = explode('/', $hit['filename']);
$pdf = OOMedia::getMediaByFileName($filename[count($filename)-1]);
echo ' <li class="pdf">
<h7><a href="'.htmlspecialchars($pdf->getFullPath()).'">'.$pdf->getOrgFileName().'</a></h7>
<p class="highlightedtext">'.$text.'</p>
</li>';
}
else
{
// Artikel oder DB-Spalte aus der Artikel-Tabelle
$article = OOArticle::getArticleById($hit['fid']);
echo ' <li>
<a class="suchergebnis" href="'.htmlspecialchars($article->getUrl()).'">'.$article->getName().'</a>
<p class="highlightedtext">'.$text.'</p>
</li>';
}
}
echo '</ul>';
// Pagination
if($result['count'] > SHOWMAX)
{
$self = OOArticle::getArticleById(REX_ARTICLE_ID);
echo '<ul class="pagination">';
for($i = 0; ($i*SHOWMAX) < $result['count']; $i++)
{
if(($i*SHOWMAX) == $start)
echo '<a class="pagination">'.($i+1).'</a>';
else
echo '<a class="pagination_link" href="'.$self->getUrl(array('xsearch' => $_REQUEST['xsearch'], 'start' => $i*SHOWMAX)).'">'.($i+1).'</a>';
}
echo '</ul>';
}
}
else
{
echo '<em>Leider nichts gefunden.</em>';
}
}
?>
Max. Zeichenzahl für Teaser: 200
Max. Zeichenzahl um Suchbegriffe: 20
Darstellungsmodus "Als Teaser, in dem eventuell..."
erhöhe ich die "Max. Zeichenzahl um den Suchbegriff" über 20 so kommt es gelegentlich zu einem Timeout oder Scriptfehler (500).
Jetzt läuft es.
Vielen Dank an Xong der viel daran gearbeitet hat!
Zu sehen gibt es die Sache hier: http://www.bffk.de
Daniel