Home / Community / Blog

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.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28