Решено: Теги: сортировка по полю из таблицы 'topic'

По-умолчанию, в LS сортировка при выборке по тегу выполняется по полю topic_id таблицы topic_tag.
Хочу сделать сортировку по одному из полей таблицы topic (у меня там дополнительное поле).

Подскажите, пожалуйста, какой из способов будет оптимальным:

1. Выполнить сортировку полученного массива $data в методе GetTopicsByTag модуля Topic
2. Изменить (переопределить или наследовать) сортировку в методе GetTopicsAdditionalData модуля Topic?


Подскажите, пожалуйста, как правильно составить SQL запрос для метода
public function GetTopicsByTag($sTag,$aExcludeBlog,&$iCount,$iCurrPage,$iPerPage)

Маппера топиков.

В оригинале (сортировка по ID)
$sql = "
							SELECT
								topic_id										
							FROM 
								".Config::Get('db.table.topic_tag')."								
							WHERE 
								topic_tag_text = ? 	
								{ AND blog_id NOT IN (?a) }
                            ORDER BY topic_id DESC
                            LIMIT ?d, ?d ";


Пытаюсь сделать сортировку по полю topic_real_date (доп. поле) таблицы topic:

$sql = "
							SELECT
								t1.topic_id
							FROM
								".Config::Get('db.table.topic_tag')." AS t1
							LEFT  JOIN
							    ".Config::Get('db.table.topic')." AS t2
							    ON t1.topic_id = t2.topic_id
							WHERE
								t1.topic_tag_text = ?
								{ AND t1.blog_id NOT IN (?a) }
                            ORDER BY t2.topic_real_date DESC
                            LIMIT ?d, ?d ";


Но выдает ошибку:
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE t1.topic_tag_text = 'Карибский кризис' ' at line 8 at /xxxxx/plugins/xxxxx/classes/modules/topic/mapper/Topic.mapper.class.php line 341


Возможно, кто-то подскажит правильный вариант?

2 комментария

avatar
в каких файлах это изменять?
avatar
topic_real_date это дата публикации?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.