Сортировка в pdoResources
Есть ли возможность в pdoResources сортировать ресурсы по дефолтным значениям tv параметров?
Комментарии: 12
pdoResources не работает с тем, чего нет в БД.
Но дефолтные параметры ведь записываются в БД для всех одноименных ТВ сразу.
Ну, тогда никаких проблем с сортировкой не будет, правда?
Только это не так, к сожалению. Если у ТВ ресурса выставлено дефолтное значением — в БД пусто. Проверь на досуге.
Только это не так, к сожалению. Если у ТВ ресурса выставлено дефолтное значением — в БД пусто. Проверь на досуге.
Я имею ввиду значения по умолчанию для тв. Они ведь сохраняются в БД.
В таблице site_tmplvars есть столбец default_text.
Вот с учетом этого столбца нельзя сортировать все ресурсы? А то получается что те ресурсы у которых есть какое-то значение тв сортируются нормально, а те у которых только значение по умолчанию есть выводятся после всех отсортированных ресурсов не зависимо от дефолтного значения.
В таблице site_tmplvars есть столбец default_text.
Вот с учетом этого столбца нельзя сортировать все ресурсы? А то получается что те ресурсы у которых есть какое-то значение тв сортируются нормально, а те у которых только значение по умолчанию есть выводятся после всех отсортированных ресурсов не зависимо от дефолтного значения.
У тебя, наверное, есть идея, как сортировать по двум полям, находящимся в двух разных таблицах?
Поделись, пожалуйста.
Поделись, пожалуйста.
Да нет у меня идей… Я же просто спрашиваю есть такая возможность в Вашем сниппете или нет.
Значит придется делать через плагин. При создании ресурса создавать тв параметр с определенным значением по умолчанию. Спасибо за подсказку.
Значит придется делать через плагин. При создании ресурса создавать тв параметр с определенным значением по умолчанию. Спасибо за подсказку.
А не проще, тогда уже, написать свой сниппет? Правда получится через одно место))
Сначала выбирать и таблицы параметров группируя по contentid и join-ом подтягивать ресурсы
Сначала выбирать и таблицы параметров группируя по contentid и join-ом подтягивать ресурсы
Мне кажется не проще… Это нужно будет повторить большую часть функционала pdoResources.
А в плагине можно управиться строчек за 15 с необходимой задачей.
А в плагине можно управиться строчек за 15 с необходимой задачей.
Смотря, что вам нужно в итоге. pdoResources все таки делался Василием, чтобы обрабатывать много параметров, под разные нужды. А так то, выборка документов делается элементарно!
Если честно, я не до конца понял, какая сортировка вам нужна? Ведь site_tmplvars — это таблица самих ТВ, а значения хранятся в site_tmplvar_contentvalues.
Если честно, я не до конца понял, какая сортировка вам нужна? Ведь site_tmplvars — это таблица самих ТВ, а значения хранятся в site_tmplvar_contentvalues.
Мне как раз и нужны все эти параметры.
А имел я ввиду вот что. К примеру я записываю рейтинг страницы в тв параметр. Рейтинг может быть положительным, отрицательным и нулевым. Нулевой — это если за страницу никто не проголосовал, а значит тв для этой страницы не создан.
Вот и получается, что страницы с отрицательным и положительным рейтингом сортируются, а с нулевым — нет, т.к. для них тв создан не был. В итоге если сортировка идет на уменьшение, то сначала идут положительные, потом отрицательные, а уже потом нулевые.
А имел я ввиду вот что. К примеру я записываю рейтинг страницы в тв параметр. Рейтинг может быть положительным, отрицательным и нулевым. Нулевой — это если за страницу никто не проголосовал, а значит тв для этой страницы не создан.
Вот и получается, что страницы с отрицательным и положительным рейтингом сортируются, а с нулевым — нет, т.к. для них тв создан не был. В итоге если сортировка идет на уменьшение, то сначала идут положительные, потом отрицательные, а уже потом нулевые.
Теперь понял, тогда конечно, лучше через плагин.
Хотя, я бы сделал отдельную таблицу с рейтингом и для value задал тип «int».
В TV поле value (mediumtext), выборка будет дольше.
И на плагин повесил событие при создании документа писать значение в таблицу рейтинга.
Хотя, я бы сделал отдельную таблицу с рейтингом и для value задал тип «int».
В TV поле value (mediumtext), выборка будет дольше.
И на плагин повесил событие при создании документа писать значение в таблицу рейтинга.
Спасибо! Подумаю над такой реализацией.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.