Core42 во вкладке Ordering

2 года 2 мес. назад #7430 от nix
Здравствуйте. Был бы благодарен, если бы вы подсказали мне ответ на такой вопрос. Например, нужно отсортировать статьи, выводя вверх те, к которым были сделаны последние комментарии. Без Core42 и своего SQL-запроса тут, вроде, не обойтись. Проблема в том, что когда ставлю Core42 во вкладку Ordering, то на всякое изменение значения $value на отличное от считанного из базы Seblod не реагирует. То есть, считали мы значение 'title' - записи отсортированы по алфавиту. Затем поставили в коде этого поля '$value = rand();', - и никаких изменений, хотя ожидается в данной ситуации случайный разброс записей при каждом открытии страницы. Как быть в таких ситуациях?

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 года 2 мес. назад - 2 года 2 мес. назад #7431 от Wedal
nix, давайте начнем с того, через что выводятся комментарии на сайте?
А по записи:
$value = rand();
Мне кажется, что в данном случае эта запись не имеет смысла, поскольку $value здесь используется для того, чтобы получить значения из базы и использовать их, но не для того, чтобы изменить их, тем более, на случайное число.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 года 2 мес. назад #7432 от nix
Wedal, 'rand' здесь только для примера. Интересует возможность задать любое значение для value, и чтобы затем записи сортировались по этому значению. Вроде, логично было бы реализовать такую возможность, или я что-то не так понимаю? Например, если, и правда, потребуется выводить записи в случайном порядке.

Комментарии выводятся с помощью пункта меню 'List', указывающего на тип поиска 'Комментарии'.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 года 2 мес. назад #7433 от Wedal
nix, еще раз перечитал ваше сообщение. Не хватает информации. Как устроены комментарии? Это тоже тип контента SEBLOD или другой компонент?
Ordering сортирует записи типа контента по одному из полей этого типа контента. Т.е. в данном случае происходит выборка из базы данных с последующей сортировкой по одному из полей. Если вы делаете поле с SQL-запросом, то никакой сортировки не может быть уже потому, что для каждой записи в базе данных нет значений этого поля. И даже если бы это работало - вы же получите количество SQL-запросов, равное количеству записей. Это очень плохо.
Вернемся к вопросу: Как устроены комментарии? Ответьте на него и попробуем что-нибудь придумать.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 года 2 мес. назад - 2 года 2 мес. назад #7434 от nix
Wedal, спасибо за ответ. Комментарии реализованы при помощи типа контента Seblod, хранящего данные во Free Storage. На самом деле, именно конкретная проблема решилась на данный момент добавлением поля 'Last Updated' в таблицу с записями о статьях. Добавляя комментарий, заносим в это поле текущую дату, и потом по этой дате сортируем. Не знаю, насколько правильно это решение, но, вроде, работает. Насчет 'вы же получите количество SQL-запросов, равное количеству записей' - думаю, в полной мере этого вообще избежать не удастся. Например, необходимо у каждого комментария выводить имя и другие данные его автора. Это, в лучшем случае, еще + 1 или 2 SQL-запроса для каждой записи, выводимой в поиске.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 года 2 мес. назад #7435 от Wedal
nix, у вас получилось очень хорошее решение. В данном случае проблем с SQL-запросами не будет, поскольку сортировка идет уже по записям из базы данных, а не по значениям, которые определяются "на лету". В данном случае вы все сделали правильно.
Спасибо сказали: nix

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Вверх