Re: SUche + LiveSearch
Posted: Fri Feb 27, 2009 10:57 am
Ok. Wenn man mit dieser Indexabbildung arbeiten kann ist das von Vorteil.
Gruß
Gruß
Code: Select all
diff -Nur serendipity-nightly/include/functions_entries.inc.php /var/www/include/functions_entries.inc.php
--- serendipity-nightly/include/functions_entries.inc.php 2008-12-09 11:05:33.000000000 +0100
+++ /var/www/include/functions_entries.inc.php 2009-02-27 14:05:50.000000000 +0100
@@ -722,11 +722,13 @@
* @access public
* @param string The searchterm (may contain wildcards)
* @param int Restrict the number of results [also uses $serendipity['GET']['page'] for pagination]
+ * @param array Add search Results at the top
* @return array Returns the superarray of entries found
*/
-function &serendipity_searchEntries($term, $limit = '') {
+function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
global $serendipity;
+ $orig_limit = $limit;
if ($limit == '') {
$limit = $serendipity['fetchLimit'];
}
@@ -817,10 +819,35 @@
$search =& serendipity_db_query($querystring);
- if (is_array($search)) {
+ //Add param searchresults at the top and remove duplicates.
+ if (is_array($searchresults)) {
+ $ids_current = array();
+ foreach($searchresults AS $idx => $data) {
+ $ids_current[$data['id']] = true;
+ }
+
+ foreach($search AS $idx => $data) {
+ if (isset($ids_current[$data['id']])) {
+ unset($search[$idx]);
+ }
+ }
+ $search = array_merge($searchresults, $search);
+ }
+
+ //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) {
+ if (! is_array($search)) {
+ return serendipity_searchEntries($term.'*', $orig_limit);
+ }else if (count($search) < 4){
+ return serendipity_searchEntries($term.'*', $orig_limit, $search);
+ }
+ }
+
+ if (is_array($search)){
serendipity_fetchEntryData($search);
}
-
+
return $search;
}... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?garvinhicking wrote:Hi!
Ach mist. Ich hab den ganzen Anfang der funktion übersehen im Diff-Format. Entschuldigung für die unnötige Nachfrage, aber wie Du schon sagst - besser einmal zu oft als zu wenig gefragt
Haben deinen Patch gerade eingestellt!
Grüße,
Garvin
Entweder indem Du den Patch manuell in deine Datei include/functions_entries.inc.php einspielst - wenn Dir das zu hakelig ist oder das KnowHow fehlt, musst Du entweder auf die Veröffentlichung von Serendipity 1.5 warten (das könnte jedoch noch mehrere Wochen dauern) oder Du müsstest auf den aktuellen Serendipity Snapshot von 1.5-alpha aktualisieren.... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?
Hi Garvingarvinhicking wrote:Hi!
Entweder indem Du den Patch manuell in deine Datei include/functions_entries.inc.php einspielst - wenn Dir das zu hakelig ist oder das KnowHow fehlt, musst Du entweder auf die Veröffentlichung von Serendipity 1.5 warten (das könnte jedoch noch mehrere Wochen dauern) oder Du müsstest auf den aktuellen Serendipity Snapshot von 1.5-alpha aktualisieren.... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?
Dort hat sich auch am Loginmanagement etwas getan, daher solltest du die Snapshots eher nur einsetzen wenn Du vorher ein Backup machst.
Grüße,
Garvin