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

Вывод нескольких категорий show_block module="news"

  • 30 марта 2013 г.
  • Понадобилось мне вывести в блоке новости из 5 категорий, в документации есть пример с одной категорией
    Код
    <insert name="show_block" module="news" count="1" cat_id="12">

    а если нужно несколько?
    cat_id="12,13,14..."
    • 31 марта 2013 г. , редакция: 31 марта 2013 г.
    • Как вариант
      <insert name="show_block" module="news" count="1" cat_id="12">
      <insert name="show_block" module="news" count="1" cat_id="13">
      <insert name="show_block" module="news" count="1" cat_id="14">
      <insert name="show_block" module="news" count="1" cat_id="18">
      Ну или если нет такой возможности то надо SQL запрос подправить в макет формирования вместо переменной категории подставить массив.
      • 31 марта 2013 г.
      • Это то о чём я сразу и подумал. Не, Денис, это не вариант. Вернее вариант, но в надо перепрограммить вьюхи, и сортировка будет корявая
        (категория 1
        1 января
        31 декабря
        30 декабря
        категория 2
        1 января
        31 декабря
        20 декабря
        и т.д), что в новостной ленте недопустимо.
        Видимо это единственный выход, подвел опыт программирования DLEшных сайтов, там-то никаких проблем с выводом
        p.s. Хотя ещё вариант, дополнительная категория для всех, и экспорт из нее, но это блин не айс
  • 01 апреля 2013 г.
  • Написал на скорую руку, проверял правда на статьях, т.к. у меня там контент есть...

    Файл \modules\clauses\clauses.php
    Цитата
    /**
    * Шаблонная функция: блок статей
    *
    * @param array $attributes атрибуты шаблонного тэга
    * @return void
    */
    public function show_block($attributes)
    {
    $attributes = $this->get_attributes($attributes, 'count', 'cat_id', 'images', 'images_variation', 'sort', 'site_id', 'template');

    $count = $attributes["count"] ? intval($attributes["count"]) : 3;
    /*$cat_id = intval($attributes["cat_id"]);*/

    $cat_id_array = explode(",", $attributes["cat_id"]);
    $site_id = intval($attributes["site_id"]);
    $sort = $attributes["sort"] == "date" || $attributes["sort"] == "rand" || $attributes["sort"] == "keywords" ? $attributes["sort"] : "date";
    $images = intval($attributes["images"]);
    $images_variation = $attributes["images_variation"] ? strval($attributes["images_variation"]) : 'medium';

    Customization::inc('modules/clauses/clauses.model.php');
    $model = new Clauses_model($this->diafan);

    #echo "Clauses";
    foreach($cat_id_array as $cat_id) {
    intval($cat_id);
    $result = $model->show_block($count, $cat_id, $images, $images_variation, $sort, $site_id);

    if (! $attributes["template"] || ! $this->diafan->_tpl->get('show_block_'.$attributes["template"], 'clauses', $result))
    {
    $this->diafan->_tpl->get('show_block', 'clauses', $result);
    }
    }

    }

    файл \themes\site.php
    Цитата
    <insert name="show_block" module="news" count="1" cat_id="12,13,14">


    Цитата
    сортировка будет корявая
    (категория 1
    1 января
    31 декабря
    30 декабря
    категория 2
    1 января
    31 декабря
    20 декабря
    и т.д)

    Тут тоже получается корявая будет?.. Вопрос, а какая сортировка нужна?
    • 01 апреля 2013 г.
    • Аргх, где кнопка редактировать)
      В данном примере со статьями вместо
      Цитата
      <insert name="show_block" module="news" count="1" cat_id="12,13,14">

      Так
      Цитата
      <insert name="show_block" module="clauses" count="1" cat_id="12,13,14">
    • 01 апреля 2013 г.
    • Сортировка нужна по дате. Спасибо за пример.

Новости

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