Вход • Регистрация

Что поправить в модуле, чтобы вывести список категорий для статьи?

  • 07 декабря 2018 г.
  • Добрый день! Использую <insert name="show_block" module="clauses"> для вывода статей. В этом случае не предусмотрен вывод родительских категорий. Подскажите, пожалуйста, что нужно поправить в модуле, чтобы в массиве передавался список категорий для статьи.
    • 07 декабря 2018 г.
    • Вам название категории надо передавать и ссылку на категорию?
      • 07 декабря 2018 г.
      • да
        • 07 декабря 2018 г.
        • modulesclausesclauses.model.php

          функция show_block для названий ID категорий надо будет запросик дописать, а для получения ссылок рекуоменду использовать метод link

          https://www.diafan.ru/dokument/full-manual/developers/api/route/
          • 09 декабря 2018 г. , редакция: 09 декабря 2018 г.
          • Ок, используя метод ling я получаю ссылку на основную категорию
            $this->diafan->_route->link($cat["site_id"], $cat["id"], 'clauses', 'cat');
  • 09 декабря 2018 г. , редакция: 09 декабря 2018 г.
  • SELECT e.id, e.name1 AS name,e.anons1 AS anons, e.timeedit, e.site_id, e.created, e.cat_id, c.name1 AS name FROM `diafan_clauses` AS e, `diafan_clauses_category` AS c WHERE c.id = e.cat_id AND e.act1='1' AND e.trash='0' AND e.created<1544389140 AND e.date_start<=1544389140 AND (e.date_finish=0 OR e.

    вот сам запрос. Вся проблема из-за одинаковых алиасов. что можно сделать?
    • 09 декабря 2018 г. , редакция: 09 декабря 2018 г.
    • Код
      SELECT e.id, e.name1 AS name,e.anons1 AS anons, e.timeedit, e.site_id, e.created, e.cat_id, c.name1 AS name FROM `diafan_clauses` AS e, `diafan_clauses_category` AS c WHERE c.id = e.cat_id AND e.act1='1' AND e.trash='0' AND e.created<1544389140 AND e.date_start<=1544389140 AND (e.date_finish=0 OR e.

      name как минимум должны быть разные

      name_cat, name_elem
      • 09 декабря 2018 г. , редакция: 09 декабря 2018 г.
      • я понимаю, ну а как можно поменять? Этот запрос мне показывает diafan. Сам запрос с php прикрепил на скрине выше.
        • 09 декабря 2018 г.
        • вы же сами определили название, когда написать AS name, значит в массиве придет $row["name"] = "XXX", а так как вы второй раз определили ключ для названия такой же, то $row["name"] заменяется уже названием категории, хотя бы так

          Код
          SELECT e.id, e.name1 AS name,e.anons1 AS anons, e.timeedit, e.site_id, e.created, e.cat_id, c.name1 AS name_cat FROM `diafan_clauses` AS e, `diafan_clauses_category` AS c WHERE c.id = e.cat_id AND e.act1='1' AND e.trash='0' AND e.created<1544389140 AND e.date_start<=1544389140 AND (e.date_finish=0 OR e.


          и будет $row["name"] - название элемента, а $row["name_cat"] - категории
          • 09 декабря 2018 г.
          • а тут не так должно быть?

            e.created>1544389140 AND e.date_start>=1544389140

            хотя от задачи зависит
            • 09 декабря 2018 г.
            • Видимо вы меня не поняли. Вот запрос из модуля статей, блок show_block:
              $rows = DB::query_range_fetch_all(
              "SELECT e.id, e.[name], e.[anons], e.timeedit, e.site_id, e.created, e.cat_id, c.[name] FROM {clauses} AS e, {clauses_category} AS c".$inner.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")." WHERE c.id = e.cat_id AND e.[act]='1' AND e.trash='0' AND e.created<%d".($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)".$where.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')." GROUP BY e.id" .$order,$time, $time, $time,$sort == "rand" ? $rand : 0,$sort == "rand" ? 1 : $count);
              Где я здесь могу задать алиас?
              • 09 декабря 2018 г.
              • SELECT e.id, e.[name] AS name, e.[anons], e.timeedit, e.site_id, e.created, e.cat_id, c.[name] AS name_cat FROM {clauses} AS e, {clauses_category}

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.