Сортировка в pdoResources

Есть ли возможность в pdoResources сортировать ресурсы по дефолтным значениям tv параметров?
Алексей П
01 февраля 2014, 14:47
modx.pro
1 046
0

Комментарии: 12

Василий Наумкин
01 февраля 2014, 18:50
0
pdoResources не работает с тем, чего нет в БД.
    Алексей П
    01 февраля 2014, 18:55
    0
    Но дефолтные параметры ведь записываются в БД для всех одноименных ТВ сразу.
      Василий Наумкин
      01 февраля 2014, 19:04
      0
      Ну, тогда никаких проблем с сортировкой не будет, правда?

      Только это не так, к сожалению. Если у ТВ ресурса выставлено дефолтное значением — в БД пусто. Проверь на досуге.
        Алексей П
        01 февраля 2014, 19:13
        0
        Я имею ввиду значения по умолчанию для тв. Они ведь сохраняются в БД.
        В таблице site_tmplvars есть столбец default_text.
        Вот с учетом этого столбца нельзя сортировать все ресурсы? А то получается что те ресурсы у которых есть какое-то значение тв сортируются нормально, а те у которых только значение по умолчанию есть выводятся после всех отсортированных ресурсов не зависимо от дефолтного значения.
          Василий Наумкин
          01 февраля 2014, 19:39
          0
          У тебя, наверное, есть идея, как сортировать по двум полям, находящимся в двух разных таблицах?

          Поделись, пожалуйста.
            Алексей П
            01 февраля 2014, 20:05
            0
            Да нет у меня идей… Я же просто спрашиваю есть такая возможность в Вашем сниппете или нет.
            Значит придется делать через плагин. При создании ресурса создавать тв параметр с определенным значением по умолчанию. Спасибо за подсказку.
              Denis Marocco
              01 февраля 2014, 20:34
              0
              А не проще, тогда уже, написать свой сниппет? Правда получится через одно место))
              Сначала выбирать и таблицы параметров группируя по contentid и join-ом подтягивать ресурсы
                Алексей П
                01 февраля 2014, 20:46
                0
                Мне кажется не проще… Это нужно будет повторить большую часть функционала pdoResources.
                А в плагине можно управиться строчек за 15 с необходимой задачей.
                  Denis Marocco
                  01 февраля 2014, 20:51
                  0
                  Смотря, что вам нужно в итоге. pdoResources все таки делался Василием, чтобы обрабатывать много параметров, под разные нужды. А так то, выборка документов делается элементарно!
                  Если честно, я не до конца понял, какая сортировка вам нужна? Ведь site_tmplvars — это таблица самих ТВ, а значения хранятся в site_tmplvar_contentvalues.
                    Алексей П
                    01 февраля 2014, 21:47
                    0
                    Мне как раз и нужны все эти параметры.
                    А имел я ввиду вот что. К примеру я записываю рейтинг страницы в тв параметр. Рейтинг может быть положительным, отрицательным и нулевым. Нулевой — это если за страницу никто не проголосовал, а значит тв для этой страницы не создан.
                    Вот и получается, что страницы с отрицательным и положительным рейтингом сортируются, а с нулевым — нет, т.к. для них тв создан не был. В итоге если сортировка идет на уменьшение, то сначала идут положительные, потом отрицательные, а уже потом нулевые.
                      Denis Marocco
                      01 февраля 2014, 21:57
                      +2
                      Теперь понял, тогда конечно, лучше через плагин.
                      Хотя, я бы сделал отдельную таблицу с рейтингом и для value задал тип «int».
                      В TV поле value (mediumtext), выборка будет дольше.
                      И на плагин повесил событие при создании документа писать значение в таблицу рейтинга.
                      Алексей П
                      01 февраля 2014, 22:38
                      0
                      Спасибо! Подумаю над такой реализацией.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
12