Po tym jak i naprawiłem tagi (jak się okazało nie do końca) i zaczęło działać archiwum blogów naprawienie wyszukiwania wpisów na blogu po tagach było dość proste. Błąd pojawiający się w var/log/error.log
AND ezkeyword_attribute_link.keyword_id = ezkeyword.id \ ORDER BY a0.sort_key_int DESC LIMIT 10 BŁĄD: dla SELECT DISTINCT, ORDER BY wyrażenia muszą występować \ na liście wyboru
(a w zasadzie końcówka zapytania) oprowadziła mnie do pliku kernel/content/ezcontentfunctioncollection.php w którym zmodyfikowałem zapytanie SQL rozpoczynające się w linii 989 i kończące się jak w błędzie powyżej. Najpierw z listy sortowania wyciągam same nazwy pól i dodaję je do zapytania. Cała zmiana wygląda tak:
--- ezcontentfunctioncollection.php-org 2009-02-16 16:16:49.000000000 +0100
+++ ezcontentfunctioncollection.php-new 2011-02-14 00:01:11.000000000 +0100
@@ -993,8 +993,12 @@
{
$sqlMatching = "ezkeyword.keyword = '$alphabet'";
}
+ if (substr( $sqlTarget, 0, 9) == 'DISTINCT ') {
+ $sortingFielsdList=", ".str_replace(array("ASC", "DESC"), "", \
$sortingInfo['sortingFields']);
+ }
$query = "SELECT $sqlTarget
+ {$sortingFielsdList}
FROM ezkeyword,
ezkeyword_attribute_link,ezcontentobject_tree,ezcontentobject, \
ezcontentclass
$sortingInfo[attributeFromSQL]
$sqlPermissionChecking[from]Teraz żadne błędy się już nie pojawiają, ale i tak chyba czas pomyśleć i aktualizacji.
Add comment