Page 1 of 2
[Erledigt] 2.0 RC2 - Filter funktioniert nicht
Posted: Wed Dec 31, 2014 1:29 am
by robert
Habe 2.0 RC2 installiert. Läuft tadellos.
Heute wollte ich in "Einträge bearbeiten" einen Artikel suchen. Die Einschränkung auf Kategorien funktioniert. Gebe ich jedoch in "Inhalt" einen Begriff ein und klicke auf "Los" werden trotzdem weiterhin alle bis dahin aufgelisteten Artikel angezeigt.
Habe es mit kurzen Begriff und auch längeren (10 Buchstaben) mit und ohne Wildcard * probiert. Hilft alles nichts.
Habt ihr eine Idee, was ich ausprobieren kann oder woran das liegen könnte?
Liebe Grüße
Robert
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Wed Dec 31, 2014 11:12 am
by bernd_d
Nö, gerade mal getestet. Wenn ich bei mir nach "Ridgecrest" suche, kommen auch wirklich nur Beiträge, die diesen Begriff enthalten. Nach was genau suchst du denn? Theoretisch müssten die gleichen Beiträge ja auch im Frontend gesucht/gefunden werden, da es die gleiche Suche ist.
Problematisch ist an der Suche, dass auch HTML-Tags/Links etc. durchsucht werden. Wenn man einen Begriff sucht, der auch darin vorkommt, dann sind die Chancen wirklich leider nahezu gleich 0, etwas sinnvolles zu finden.
Irgendjemand hier im Forum wollte mal einen Such-Index programmieren, der HTML-Code rauswirft, damit man bessere Suchergebnisse erhält, aber keine Ahnung wie weit das schon gediegen ist.
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Wed Dec 31, 2014 12:40 pm
by robert
Gerade nochmals probiert. Suchbegriff "Siemens" (suche alte Artikel). Im Frontend listet er genau die Artikel auf - im Backend werden alle angezeigt.
Seltsam...
Falls es etwas hilft, die URL mit der der Suchbegriff im Backend aufgerufen wird bzw. die Filterung gestartet:
Code: Select all
..../blog/serendipity_admin.php?serendipity%5Baction%5D=admin&serendipity%5BadminModule%5D=entries&serendipity%5BadminAction%5D=editSelect&serendipity%5Bfilter%5D%5Bauthor%5D=&serendipity%5Bfilter%5D%5Bisdraft%5D=all&serendipity%5Bfilter%5D%5Bcategory%5D=&serendipity%5Bfilter%5D%5Bbody%5D=Siemens&go=Los%21&serendipity%5Bsort%5D%5Border%5D=timestamp&serendipity%5Bsort%5D%5Bordermode%5D=DESC&serendipity%5Bsort%5D%5BperPage%5D=12
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Wed Dec 31, 2014 1:10 pm
by Timbalu
Auf meinem ISO-8859-1 Testblog habe ich folgendes Verhalten
- mit plain Ascii Siemens
Code: Select all
/serendipity_admin.php?serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=editSelect&serendipity[filter][author]=&serendipity[filter][isdraft]=all&serendipity[filter][category]=&serendipity[filter][body]=Siemens&go=Los!&serendipity[sort][order]=timestamp&serendipity[sort][ordermode]=DESC&serendipity[sort][perPage]=12
sucht man nach einem Umlaut
Code: Select all
/serendipity_admin.php?serendipity%5Baction%5D=admin&serendipity%5BadminModule%5D=entries&serendipity%5BadminAction%5D=editSelect&serendipity%5Bfilter%5D%5Bauthor%5D=&serendipity%5Bfilter%5D%5Bisdraft%5D=all&serendipity%5Bfilter%5D%5Bcategory%5D=&serendipity%5Bfilter%5D%5Bbody%5D=T%FCcher&go=Los%21&serendipity%5Bsort%5D%5Border%5D=timestamp&serendipity%5Bsort%5D%5Bordermode%5D=DESC&serendipity%5Bsort%5D%5BperPage%5D=12
wird die url codiert.
Warum dies nun bei dir (trotz UTF-8) auch mit plain Siemens entsteht, weiß ich gerade nicht.
Auf meinem UTF-8 Testblog wird in allen Fällen nichts verwandelt.
(Das erstmal unabhängig von eventuellen Suchergebnissen)
Im Frontend listet er genau die Artikel auf - im Backend werden alle angezeigt.
Die URL-Kodierung ist wahrscheinlich der Grund dafür..., denn dein Frontend sagt:
Code: Select all
/blog/index.php?serendipity[action]=search&serendipity[searchTerm]=Siemens&serendipity[searchButton]=Suche
Setzt du nun anstelle deiner UrL im Backend meiner erstere ein, so wird dir wahrscheinlich auch ein korrektes Ergebnis angezeigt.
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Wed Dec 31, 2014 1:21 pm
by bernd_d
robert wrote:Gerade nochmals probiert. Suchbegriff "Siemens" (suche alte Artikel). Im Frontend listet er genau die Artikel auf - im Backend werden alle angezeigt.
Seltsam...
Falls es etwas hilft, die URL mit der der Suchbegriff im Backend aufgerufen wird bzw. die Filterung gestartet:
Code: Select all
..../blog/serendipity_admin.php?serendipity%5Baction%5D=admin&serendipity%5BadminModule%5D=entries&serendipity%5BadminAction%5D=editSelect&serendipity%5Bfilter%5D%5Bauthor%5D=&serendipity%5Bfilter%5D%5Bisdraft%5D=all&serendipity%5Bfilter%5D%5Bcategory%5D=&serendipity%5Bfilter%5D%5Bbody%5D=Siemens&go=Los%21&serendipity%5Bsort%5D%5Border%5D=timestamp&serendipity%5Bsort%5D%5Bordermode%5D=DESC&serendipity%5Bsort%5D%5BperPage%5D=12
Die URL findet bei mir genau einen Beitrag, in dem auch Siemens vorkommt.
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Thu Jan 01, 2015 12:48 pm
by robert
Danke für die Unterstützung. Verwende ich deine Suchstrings werden bei mir trotzdem alle Artikel aufgelistet
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Thu Jan 01, 2015 2:43 pm
by garvinhicking
Hi Robert!
In der include/admin/entries.inc.php findest Du folgends:
Code: Select all
$filter_sql = implode(' AND ', $filter);
// Fetch the entries
$entries = serendipity_fetchEntries(
false,
false,
serendipity_db_limit(
$offSet,
$perPage + 1
),
true,
false,
$orderby,
$filter_sql
);
Ändere das bitte mal in:
Code: Select all
$filter_sql = implode(' AND ', $filter);
// Fetch the entries
$entries = serendipity_fetchEntries(
false,
false,
serendipity_db_limit(
$offSet,
$perPage + 1
),
true,
false,
$orderby,
$filter_sql,
false,
false,
null,
null,
'query'
);
die("Suche Einträge: " . print_r($filter_sql) . " //<br />\n " . $entries);
Dadurch wird dir die SQL-Abfrage ausgeben die durchgeführt wird (danach musst du alles wieder rückgängig machen, die Ausgabe bitte mal hierhin packen).
Ich könnte mir vorstellen dass ein Plugin die SQL-Abfrage falsch erweitert und dadurch zu viele Einträge gefunden werden und die Filterung nicht mehr klappt. Das müssten wir auf jeden Fall beheben.
Ein anderes Problem könnte sein dass die MySQL Fulltextsuche bei Dir nicht funktioniert, z.b. weil deiner serendipity_entires Datenbanktabelle der FULLTEXT-Index fehlt. Dagegen spricht aber dass die Suche im Frontend funktioniret, das dürfte also nicht das Problem sein.
LG,
Garvin
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Thu Jan 01, 2015 8:02 pm
by robert
Ausgetauscht.
Klicke ich nun auf Einträge bearbeiten erscheint nur mehr folgender Text
Code: Select all
Suche Einträge: 1 //
SELECT e.id, e.title, e.timestamp, e.comments, e.exflag, e.authorid, e.trackbacks, e.isdraft, e.allow_comments, e.last_modified, a.realname AS author, a.username AS loginname, a.email FROM serendipity_entries AS e LEFT JOIN serendipity_authors a ON e.authorid = a.authorid LEFT JOIN serendipity_entrycat ec ON e.id = ec.entryid LEFT JOIN serendipity_category c ON ec.categoryid = c.categoryid GROUP BY e.id ORDER BY timestamp DESC LIMIT 0, 13
War das so geplant?
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Thu Jan 01, 2015 8:12 pm
by robert
Zu serendipity_entries mal die Struktur aus der mySQL Datenbank
https://www.dropbox.com/s/s8ba9fs8dep8c ... 1.png?dl=0
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Fri Jan 02, 2015 9:42 am
by garvinhicking
Hi!
Du darfst jenen PHP-Code erst aktivieren wenn Du auch nach einem Filter suchst. Sorry. Mir war das automatisch klar, aber ich glaube das hätte ich erwähnen müssen
D.h. Du musst in deinem Browser schon die Einträge gemacht haben, dann den Code eintragen, dann im Browser F5 drücken.
Jetzt haben wir nämlich nur die Debuggingausgaben die kommen wenn man nicht filtert.
Im Screenshot sind leider die INDEX-Keys nicht erwähnt (stehen unter der Tabelle), das wäre das relevantere...
VG,
Garvin
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Fri Jan 02, 2015 5:15 pm
by robert
Null Problemo. Jetzt ist es ja klar
Habe nach "Siemens" gesucht. Code ausgetauscht und dann auf Reload geklickt.
So, das kommt dabei raus
Code: Select all
Suche Einträge: 1 //
SELECT e.id, e.title, e.timestamp, e.comments, e.exflag, e.authorid, e.trackbacks, e.isdraft, e.allow_comments, e.last_modified, a.realname AS author, a.username AS loginname, a.email FROM serendipity_entries AS e LEFT JOIN serendipity_authors a ON e.authorid = a.authorid LEFT JOIN serendipity_entrycat ec ON e.id = ec.entryid LEFT JOIN serendipity_category c ON ec.categoryid = c.categoryid GROUP BY e.id ORDER BY timestamp DESC LIMIT 0, 13
Schaut aber nicht viel anders als vorher, oder?
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Fri Jan 02, 2015 5:30 pm
by robert
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Fri Jan 02, 2015 7:23 pm
by Timbalu
Wo kommen denn die ganzen extended Indizes bei dir her?
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Fri Jan 02, 2015 7:33 pm
by robert
Timbalu wrote:Wo kommen denn die ganzen extended Indizes bei dir her?
Keine Frage. Nicht absichtlich von mir erstellt ;(
Re: 2.0 RC2 - Filter funktioniert nicht
Posted: Mon Jan 05, 2015 11:24 am
by garvinhicking
Hi!
Ich denke es liegt daran dass im Code leider nur "mysql" als Datenbanktyp abgefragt wurde, und Du ggf. "mysqli" nutzt?
Ich habe gerade in den Git-Snapshot einen Bugfix hochgeladen. Zieh Dir bitte mal die aktuelle include/admin/entries.inc.php von Github und schau ob das bei Dir das Problem behebt?
Wenn nicht, kannst du bitte nochmal deinen Debugcode einbauen und diesmal verändern in:
Code: Select all
$filter_sql = implode(' AND ', $filter);
// Fetch the entries
$entries = serendipity_fetchEntries(
false,
false,
serendipity_db_limit(
$offSet,
$perPage + 1
),
true,
false,
$orderby,
$filter_sql,
false,
false,
null,
null,
'query'
);
echo "Suche Einträge: " . print_r($filter_sql, true) . " //<br />\n " . $entries . "<br />\n";
Mit "echo" funktoniert es auch und dann musst du den Code nicht immer ein/ausbauen.
LG,
Garvin