Page 3 of 3
Re: SUche + LiveSearch
Posted: Mon Mar 09, 2009 12:58 pm
by garvinhicking
Hi!
onli hat hier in dem Thread den Code gepostet, das ist im Diff-Format. DIFF zeigen jeweilseine Zeilennummer an, und wo man etwas rausnehmen muss (zeilen mit "-") und wo man was reintun muss (Zeilen mit "+").
Grüße,
Garvin
Re: SUche + LiveSearch
Posted: Mon Mar 09, 2009 10:46 pm
by onli
Alternativ könntest du deine include/functions_entries.inc.php mit
dieser Datei ersetzen. Mach aber vorher ein Backup der Datei

Gruß
Re: SUche + LiveSearch
Posted: Wed Mar 11, 2009 1:51 pm
by serels
onli wrote:Alternativ könntest du deine include/functions_entries.inc.php mit
dieser Datei ersetzen. Mach aber vorher ein Backup der Datei

Gruß
Danke, habe ich gemacht
Vielen Dank für die Mühe ....
lg serels
Re: SUche + LiveSearch
Posted: Sun Sep 26, 2010 1:29 pm
by Timbalu
Hi Garvin
Ich hätte eine Erweiterung des Patches von onli.
Gegeben ist ein Suchbegriff mit 8 Ergebnissen (ohne LiveSearch), PageLimit auf 5, pb Pagination.
Daraufhin wurde auf /search/suchbegriff/p1.html alles korrekt angezeigt, auf Seite 2 durch die geringe Zahl von 8 - 5 = 3 aber ebenfalls der (*)Patch. Das bringt bei mir alles durcheinander. Weder die Ergebniszählung oder die Ergebnisse stimmen, noch wird die Rück-Pagination angezeigt.
Beschränkt man die Anwendung des (*)Patches aber mit
Code: Select all
&& intval($serendipity['GET']['page']) == 1
auf Seite 1, geht alles ohne Probleme.
Code: Select all
//if * wasn't already appended and if there are none or not enough
//results, search again for entries containing the searchterm as a part
if (strpos($term, '*') === false && intval($serendipity['GET']['page']) == 1) {
if (! is_array($search)) {
return serendipity_searchEntries($term.'*', $orig_limit);
}else if (count($search) < 4){
return serendipity_searchEntries($term.'*', $orig_limit, $search);
}
}
Dies habe ich bereits mit onli abgesprochen, so dass du das übernehmen kannst, wenn nichts dagegen spricht.
Grüße
Ian
Re: SUche + LiveSearch
Posted: Mon Sep 27, 2010 10:34 am
by garvinhicking
Hi!
OK! Habe ich leicht modifiziert committed.
Grüße,
Garvin
Re: SUche + LiveSearch
Posted: Mon Jun 18, 2012 2:58 pm
by garvinhicking
Hi!
Wie YellowLED in einem Thread anmerkt macht die hartkodierte "4" ein Problem. Mein Vorschlag wäre stattdessen $serendipity['fetchLimit']-1 (Anzahl der Artikel pro Seite) wenn dies kleiner ist als 4:
Code: Select all
//if * wasn't already appended and if there are none or not enough
//results, search again for entries containing the searchterm as a part
if (strpos($term, '*') === false && intval($serendipity['GET']['page']) == 1) {
if (!is_array($search)) {
return serendipity_searchEntries($term.'*', $orig_limit);
} else {
$ec = count($search);
$checkcount = 4;
if ($serendipity['fetchLimit'] < $checkcount) {
$checkcount = $serendipity['fetchLimit'];
}
if ($ec < $checkcount) {
return serendipity_searchEntries($term.'*', $orig_limit, $search);
}
}
}
Re: SUche + LiveSearch
Posted: Wed Jun 20, 2012 9:14 am
by Timbalu
Ja, wenn das besser ist, bitte commiten.
Ich kann im Moment nicht nochmal dieselben Tests anstellen wie damals. Wichtig war auf alle Fälle die Berechnungen für (*) in bestimmten Fällen für die Folgeseiten zu stoppen. Wo genau soll die -1 hin?
Re: SUche + LiveSearch
Posted: Wed Jun 20, 2012 9:31 am
by Timbalu
Code: Select all
//if * wasn't already appended and if there are none or not enough
//results, search again for entries containing the searchterm as a part
if ($p == 1 && strpos($term, '*') === false && $serendipity['dbType'] != 'sqlite' && $serendipity['dbType'] != 'sqlite3' && $serendipity['dbType'] != 'pdo-sqlite') {
if (!is_array($search)) {
return serendipity_searchEntries($term.'*', $orig_limit);
} else {
$ec = count($search);
$checkcount = 4;
if ($serendipity['fetchLimit'] < $checkcount) {
$checkcount = $serendipity['fetchLimit'];
}
if ($ec < $checkcount) {
return serendipity_searchEntries($term.'*', $orig_limit, $search);
}
}
}
läuft bei mir ohne probleme, zb mit "nam*", aber ohne test auf pageLimit 1.