Core42 во вкладке Ordering
- nix
- Автор темы
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 5
- Спасибо получено: 0
9 года 4 мес. назад #7430
от nix
nix создал тему: Core42 во вкладке Ordering
Здравствуйте. Был бы благодарен, если бы вы подсказали мне ответ на такой вопрос. Например, нужно отсортировать статьи, выводя вверх те, к которым были сделаны последние комментарии. Без Core42 и своего SQL-запроса тут, вроде, не обойтись. Проблема в том, что когда ставлю Core42 во вкладку Ordering, то на всякое изменение значения $value на отличное от считанного из базы Seblod не реагирует. То есть, считали мы значение 'title' - записи отсортированы по алфавиту. Затем поставили в коде этого поля '$value = rand();', - и никаких изменений, хотя ожидается в данной ситуации случайный разброс записей при каждом открытии страницы. Как быть в таких ситуациях?
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2870
- Спасибо получено: 659
9 года 4 мес. назад - 9 года 4 мес. назад #7431
от Wedal
Wedal ответил в теме Core42 во вкладке Ordering
nix, давайте начнем с того, через что выводятся комментарии на сайте?
А по записи:
$value = rand();
Мне кажется, что в данном случае эта запись не имеет смысла, поскольку $value здесь используется для того, чтобы получить значения из базы и использовать их, но не для того, чтобы изменить их, тем более, на случайное число.
А по записи:
$value = rand();
Мне кажется, что в данном случае эта запись не имеет смысла, поскольку $value здесь используется для того, чтобы получить значения из базы и использовать их, но не для того, чтобы изменить их, тем более, на случайное число.
Последнее редактирование: 9 года 4 мес. назад пользователем Wedal.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- nix
- Автор темы
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 5
- Спасибо получено: 0
9 года 4 мес. назад #7432
от nix
nix ответил в теме Core42 во вкладке Ordering
Wedal, 'rand' здесь только для примера. Интересует возможность задать любое значение для value, и чтобы затем записи сортировались по этому значению. Вроде, логично было бы реализовать такую возможность, или я что-то не так понимаю? Например, если, и правда, потребуется выводить записи в случайном порядке.
Комментарии выводятся с помощью пункта меню 'List', указывающего на тип поиска 'Комментарии'.
Комментарии выводятся с помощью пункта меню 'List', указывающего на тип поиска 'Комментарии'.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2870
- Спасибо получено: 659
9 года 4 мес. назад #7433
от Wedal
Wedal ответил в теме Core42 во вкладке Ordering
nix, еще раз перечитал ваше сообщение. Не хватает информации. Как устроены комментарии? Это тоже тип контента SEBLOD или другой компонент?
Ordering сортирует записи типа контента по одному из полей этого типа контента. Т.е. в данном случае происходит выборка из базы данных с последующей сортировкой по одному из полей. Если вы делаете поле с SQL-запросом, то никакой сортировки не может быть уже потому, что для каждой записи в базе данных нет значений этого поля. И даже если бы это работало - вы же получите количество SQL-запросов, равное количеству записей. Это очень плохо.
Вернемся к вопросу: Как устроены комментарии? Ответьте на него и попробуем что-нибудь придумать.
Ordering сортирует записи типа контента по одному из полей этого типа контента. Т.е. в данном случае происходит выборка из базы данных с последующей сортировкой по одному из полей. Если вы делаете поле с SQL-запросом, то никакой сортировки не может быть уже потому, что для каждой записи в базе данных нет значений этого поля. И даже если бы это работало - вы же получите количество SQL-запросов, равное количеству записей. Это очень плохо.
Вернемся к вопросу: Как устроены комментарии? Ответьте на него и попробуем что-нибудь придумать.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- nix
- Автор темы
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 5
- Спасибо получено: 0
9 года 4 мес. назад - 9 года 4 мес. назад #7434
от nix
nix ответил в теме Core42 во вкладке Ordering
Wedal, спасибо за ответ. Комментарии реализованы при помощи типа контента Seblod, хранящего данные во Free Storage. На самом деле, именно конкретная проблема решилась на данный момент добавлением поля 'Last Updated' в таблицу с записями о статьях. Добавляя комментарий, заносим в это поле текущую дату, и потом по этой дате сортируем. Не знаю, насколько правильно это решение, но, вроде, работает. Насчет 'вы же получите количество SQL-запросов, равное количеству записей' - думаю, в полной мере этого вообще избежать не удастся. Например, необходимо у каждого комментария выводить имя и другие данные его автора. Это, в лучшем случае, еще + 1 или 2 SQL-запроса для каждой записи, выводимой в поиске.
Последнее редактирование: 9 года 4 мес. назад пользователем nix.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2870
- Спасибо получено: 659
9 года 4 мес. назад #7435
от Wedal
Wedal ответил в теме Core42 во вкладке Ordering
nix, у вас получилось очень хорошее решение. В данном случае проблем с SQL-запросами не будет, поскольку сортировка идет уже по записям из базы данных, а не по значениям, которые определяются "на лету". В данном случае вы все сделали правильно.
Спасибо сказали: nix
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.