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