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

Всего найдено: 22

  • 15 сентября , редакция: 1726350306
  • ХЗ, может сделал чтото лишнее (если есть комменты то с удовольствием почитаю), но в итоге получилось.
    Вот инструкция для тех кто ищет решение "Как скопировать модуль Похожие товары":

    1. В базе данных копируем структуру таблицы diafan_shop_rel
    Для phpMyAdmin запрос: CREATE TABLE diafan_shop_rek LIKE diafan_shop_rel;
    где diafan_shop_rek наша новая таблица

    2. В файле /modules/shop/admin/shop.admin.php добавляем вывод нашего поля для карточки
    Код
    'hr7' => 'hr',
    'rek_elements' => array(
    'type' => 'function',
    'name' => 'Рекомендуемые товары',
    'help' => 'Рекомендуемые товары выводятся шаблонным тегом show_block_rek',
    ),


    3. В файле /modules/shop/shop.model.php добавляем
    Код
    /**
    * Генерирует данные для шаблонной функции: блоr Рекомендуемые товары
    */
    public function show_block_rek($count, $images, $images_variation)
    {
    $time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));

    //кеширование
    $cache_meta = array(
    "name" => "block_rek",
    "count" => $count,
    "lang_id" => _LANG,
    "good_id" => $this->diafan->_route->show,
    "images" => $images,
    "images_variation" => $images_variation,
    "access" => ($this->diafan->configmodules('where_access_element', 'shop') || $this->diafan->configmodules('where_access_cat', 'shop') ? $this->diafan->_users->role_id : 0),
    "discounts" => $this->person_discount_ids,
    "time" => ($this->diafan->configmodules('where_period_element', 'shop') ? $time : '')
    );

    if (! $this->result = $this->diafan->_cache->get($cache_meta, "shop"))
    {
    $this->result["rows"] = DB::query_range_fetch_all(
    "SELECT e.id, e.[name], e.[anons], e.timeedit, e.site_id, e.brand_id, e.no_buy, e.article,"
    ." e.[measure_unit], e.hit, e.new, e.action, e.is_file FROM {shop} AS e"
    ." INNER JOIN {shop_rek} AS r ON e.id=r.rel_element_id AND r.element_id=%d"
    .($this->diafan->configmodules("rel_two_sided") ? " OR e.id=r.element_id AND r.rel_element_id=".$this->diafan->_route->show : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
    .($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
    ." WHERE e.[act]='1' AND e.trash='0'"
    .($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
    .($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : "")
    ." GROUP BY e.id"
    ." ORDER BY e.id DESC",
    $this->diafan->_route->show, 0, $count
    );
    $this->elements($this->result["rows"], 'block', array("count" => $images, "variation" => $images_variation));
    $this->diafan->_cache->save($this->result, $cache_meta, "shop");
    }
    foreach ($this->result["rows"] as &$row)
    {
    $this->prepare_data_element($row);
    }
    foreach ($this->result["rows"] as &$row)
    {
    $this->format_data_element($row);
    }

    $this->result["view_rows"] = 'rows';
    }


    4. В папке /adm/includes делаем копию файла rel_elements.php, называем rek_elements.php
    Переименовывем там rel в rek

    5. В файле /adm/includes/save_functions.php добавляем
    Код
    /**
    * Сохранение поля "Рекомендуемые товары"
    * @return void
    */
    public function save_variable_rek_elements(){}


    6. В файле /adm/js/edit/admin.edit.rel_elements.js
    Добавляем
    Код
    $(document).on('click', ".rek_element_actions a", function() {
    var self = $(this);
    if (self.attr("action") != 'delete_rek_element')
    {
    return true;
    }
    if (! confirm(self.attr("confirm")))
    {
    return false;
    }
    diafan_ajax.init({
    data:{
    action: 'delete_rek_element',
    element_id : self.parents(".rek_element").attr("element_id"),
    rel_id : self.parents(".rek_element").attr("rel_id"),
    rel_two_sided: $("#rek_elements").attr("rel_two_sided")
    },
    success: function(response){
    self.parents(".rek_element").remove();
    }
    });
    return false;
    });


    7. В файл /adm/includes/edit_functions.php добавляем
    Код
    /**
    * Редактирование поля "Ревомендуемые товары"
    *
    * @return void
    */
    public function edit_variable_rek_elements()
    {
    $rek_two_sided = $this->diafan->configmodules("rek_two_sided", $this->diafan->_admin->module, (! empty($this->values["site_id"]) ? $this->values["site_id"] : $this->diafan->_route->site));

    if($this->diafan->variable_list("name", "variable"))
    {
    $name = $this->diafan->variable_list("name", "variable");
    }
    else
    {
    $name = 'name';
    }

    echo '
    <div class="unit" id="rek_elements" rek-two_sided="'.($rek_two_sided ? 'true' : '').'">
    <div class="infofield">'.$this->diafan->variable_name().$this->diafan->help().'</div>
    <div class="rek_elements">';
    if ( ! $this->diafan->is_new)
    {
    $rows = DB::query_fetch_all("SELECT s.id, s.[".$name."], s.site_id FROM {".$this->diafan->table."} AS s"
    ." INNER JOIN {".$this->diafan->table."_rek} AS r ON s.id=r.rel_element_id AND r.element_id=%d"
    .($rel_two_sided ? " OR s.id=r.element_id AND r.rel_element_id=".$this->diafan->id : "")
    ." WHERE s.trash='0' GROUP BY s.id",
    $this->diafan->id
    );
    foreach ($rows as $row)
    {
    $link = $this->diafan->_route->link($row["site_id"], $row["id"], $this->diafan->table);
    if($this->diafan->is_variable("images") || $this->diafan->is_variable("image"))
    {
    $row_img = DB::query_fetch_array("SELECT name, folder_num FROM {images} WHERE element_id=%d AND module_name='%s' AND element_type='element' AND trash='0' ORDER BY sort ASC LIMIT 1", $row["id"], $this->diafan->table);
    }
    echo '
    <div class="rek_element" element_id="'.$this->diafan->id.'" rel_id="'.$row["id"].'">'
    .(! empty($row_img) ? '<img src="'.BASE_PATH.USERFILES.'/small/'.($row_img["folder_num"] ? $row_img["folder_num"].'/' : '').$row_img["name"].'">' : '').$this->diafan->short_text($row[$name], 50)
    .'
    <div class="rek_element_actions">';
    if($this->diafan->configmodules("page_show", $this->diafan->_admin->module, $this->diafan->_route->site))
    {
    echo '
    <a href="'.BASE_PATH.$link.'" target="_blank"><i class="fa fa-laptop"></i> '.$this->diafan->_('Посмотреть на сайте').'</a>';
    }
    echo '
    <a href="javascript:void(0)" confirm="'.$this->diafan->_('Вы действительно хотите удалить запись?').'" action="delete_rek_element" class="delete"><i class="fa fa-times-circle"></i> '.$this->diafan->_('Удалить').'</a>
    </div>
    </div>';
    }
    }
    echo '</div>
    <a href="javascript:void(0)" class="rek_module_plus btn btn_small btn_blue plink">
    <i class="fa fa-plus-square"></i> '.$this->diafan->_('Добавить').'
    </a>
    </div>';
    }


    8. В файл /adm/includes/frame.php добавляем
    Код

    case 'show_rek_elements':
    $this->_theme = new Theme_admin($this->diafan);

    case 'rek_elements':
    case 'delete_rek_element':
    Custom::inc("adm/includes/rek_elements.php");
    $this->action_object = new Rek_elements_admin($this->diafan);
    $this->ajax();


    9. Стилизуем вывод превьюшек в /adm/css/main.css
    Ищем начало стилей rel_elements примерно строка 2677, я просто дописал свои стили с _rek

    10. Добавляем в /modules/shop/shop.php
    Код
    /**
    * Шаблонная функция: на странице товара выводит РЕКОМЕНДУЕМЫЕ товары. По умолчанию связи между товарами являются односторонними, это можно изменить, отметив опцию «В блоке похожих товаров связь двусторонняя» в настройках модуля.
    *
    * @param array $attributes атрибуты шаблонного тега
    * count - количество выводимых товаров (по умолчанию 3)
    * images - количество изображений, прикрепленных к товару
    * images_variation - тег размера изображений, задается в настроках модуля
    * defer - маркер отложенной загрузки шаблонного тега: **event** – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", **emergence** – загрузка контента только при появлении в окне браузера клиента, **async** – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, **sync** – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы
    * defer_title - текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега
    * template - шаблон тега (файл modules/shop/views/shop.view.show_block_rel_**template**.php; по умолчанию шаблон modules/shop/views/shop.view.show_block_rel.php)
    * @return void
    */

    public function show_block_rek($attributes)
    {
    if ($this->diafan->_site->module != "shop" || ! $this->diafan->_route->show)
    return false;

    $this->diafan->attributes($attributes, 'count', 'images', 'images_variation', 'template');

    $count = $attributes["count"] ? intval($attributes["count"]) : 3;
    $images = intval($attributes["images"]);
    $images_variation = $attributes["images_variation"] ? strval($attributes["images_variation"]) : 'medium';

    $this->model->show_block_rek($count, $images, $images_variation);
    $this->model->result();
    $this->model->result["attributes"] = $attributes;

    echo $this->diafan->_tpl->get('show_block_rek', 'shop', $this->model->result, $attributes["template"]);
    }


    11. В папке /modules/shop/views копируем файл shop.view.show_block_rel.php, называем shop.view.show_block_rek.php

    Выводим наш блок в нужном месте
    Код
    echo $this->htmleditor('<insert name="show_block_rek" module="shop" count="4" images="1" defer="emergence" defer_title="Рекомендуемые товары">');
  • 26 июля 2023 г.
  • Всех приветствую,
    Как запретить отправку сообщений обратной связи с ссылками, если честно спам достал а капча и вопрос-ответ не сильно помогают.
    Я так понял нужна проверка определенного поля на наличие ссылки по его ID.
    Буду благодарен если напишите решение, если честно в PHP не особо силен.
  • 13 июля 2023 г. , редакция: 1689275580
  • Решил проблему переносом сайта на другой сервер с более новым оборудованием (картинка справа)
    Причину почему не работает на старом серваке так и не смоги определить ни силами поддержки Диафан, ни силами поддержки хостинга.
  • 13 июля 2023 г.
  • Оставил для экспериманта копию на старом серваке, попробую разобраться.

    - Обновил копию до последней версии,
    - пробовал менять PHP на 7.0, 7.2, 7.4, 8.0
    - сбросил кеш в админке,
    - запустил Восстановление БД из админки,
    - запустил Проверку оптимизации Таблиц БД цен товаров,
    Результата нет (((
  • 12 июля 2023 г. , редакция: 1689183419
  • Где то пишут что нагрузку можно снизить путем блокировки доступа к сайту через .htaccess deny from all, и после того как нагрузка спадет, можно попробовать оптимизировать запросы.
    Но что то не особо хочется блочить сайт чтоб проверить теорию.
  • 12 июля 2023 г. , редакция: 1689182478
  • Развернул копию на другом акаунте хостинга - сайт работает быстро, хотя "медленные запросы к БД так же имеются" но уже на уровне до 3 секунд
    Может както можно "убить" обработку запросов и попробовать снова развернуть копию базы?
  • 11 июля 2023 г.
  • Цитата
    то огда вместо "Все" выбирают каждую категорию с Ctrl, то когда вместо "Все" выбирают каждую категорию с Ctrl

    Ну у меня таких характеристик совсем немного, не парился и выбирал везде "Все" просто в карточах их не заполнял

    Цитата
    Может где-то индексы с таблицах отвалились. Может наоборот, нужно поставить по полям, которые отбираются.Может где-то индексы с таблицах отвалились. Может наоборот, нужно поставить по полям, которые отбираются.

    Тут я не знаю, в базах данных не разбираюсь
  • 08 июля 2023 г.
  • Всех приветсвую,
    После недавнего сбоя и восстановления был сброшен кеш и запушена переиндексация поиска по товарам на сайте.
    Сайт жутко тормозит, некоторые разделы не открываются. Те что открываются не содержат всех фильтров.
    В админке так же наблюдаются проблемы с работой Каталога, при выборе показа Всех товаров они не отображаются + исчезают меню админки.
    Если выбрать конкретную категорию товаров, то все норм.

    В техподдержке хоста написали, что огромная нагрузка на БД и мол ждите ее снижения.
    # Query_time: 126.335719 Lock_time: 0.000141 Rows_sent: 0 Rows_examined: 59433814

    Сайт не работает уже неделю, чую что то не то.
    Вопрос к знатокам - можно как то это поправить, ускорить?

    P.S. Параллельно написал в поддержку хостинга и поддержку Diafan - жду ответ.
    P.S. Сайт большой более 100к товаров, куча разных характеристик (реально разных - сайт стройматериалов). Читал гдето на форуме о подобной проблеме с неработающим сайтом для версии 6х, что это может быть из-за большого числа характеристик, но вроде поправили это дело или нет?
  • 14 сентября
  • Здравствуйте,
    Подскажите в итоге есть нормальная инструкция? Я добился почти )))

    1. В базе данных копируем структуру тадлицы diafan_shop_rel
    Для phpMyAdmin запрос: CREATE TABLE diafan_shop_rek LIKE diafan_shop_rel;
    где diafan_shop_rek наша новая таблица

    2. В файле /modules/shop/admin/shop.admin.php добавляем вывод нашего поля для карточки

    Код
    'hr7' => 'hr',
    'rek_elements' => array(
    'type' => 'function',
    'name' => 'Рекомендуемые товары',
    'help' => 'Рекомендуемые товары выводятся шаблонным тегом show_block_rek',
    ),


    3. В файле /modules/shop/shop.model.php добавляем

    Код
    /**
    * Генерирует данные для шаблонной функции: блоr Рекомендуемые товары
    *
    * @param integer $count количество товаров
    * @param integer $images количество изображений
    * @param string $images_variation размер изображений
    * @return array
    */
    public function show_block_rek($count, $images, $images_variation)
    {
    $time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));

    //кеширование
    $cache_meta = array(
    "name" => "block_rek",
    "count" => $count,
    "lang_id" => _LANG,
    "good_id" => $this->diafan->_route->show,
    "images" => $images,
    "images_variation" => $images_variation,
    "access" => ($this->diafan->configmodules('where_access_element', 'shop') || $this->diafan->configmodules('where_access_cat', 'shop') ? $this->diafan->_users->role_id : 0),
    "discounts" => $this->person_discount_ids,
    "time" => ($this->diafan->configmodules('where_period_element', 'shop') ? $time : '')
    );

    if (! $this->result = $this->diafan->_cache->get($cache_meta, "shop"))
    {
    $this->result["rows"] = DB::query_range_fetch_all(
    "SELECT e.id, e.[name], e.[anons], e.timeedit, e.site_id, e.brand_id, e.no_buy, e.article,"
    ." e.[measure_unit], e.hit, e.new, e.action, e.is_file FROM {shop} AS e"
    ." INNER JOIN {shop_rek} AS r ON e.id=r.rel_element_id AND r.element_id=%d"
    .($this->diafan->configmodules("rel_two_sided") ? " OR e.id=r.element_id AND r.rel_element_id=".$this->diafan->_route->show : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
    .($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
    ." WHERE e.[act]='1' AND e.trash='0'"
    .($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
    .($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : "")
    ." GROUP BY e.id"
    ." ORDER BY e.id DESC",
    $this->diafan->_route->show, 0, $count
    );
    $this->elements($this->result["rows"], 'block', array("count" => $images, "variation" => $images_variation));
    $this->diafan->_cache->save($this->result, $cache_meta, "shop");
    }
    foreach ($this->result["rows"] as &$row)
    {
    $this->prepare_data_element($row);
    }
    foreach ($this->result["rows"] as &$row)
    {
    $this->format_data_element($row);
    }

    $this->result["view_rows"] = 'rows';
    }


    4. В папке /adm/includes делаем копию файла rel_elements.php, называем rek_elements.php
    Переименовывем там rel в rek

    5. В файле /adm/includes/save_functions.php добавляем

    Код
    /**
    * Сохранение поля "Рекомендуемые товары"
    * @return void
    */
    public function save_variable_rek_elements(){}


    6. В файле /adm/js/edit/admin.edit.rel_elements.js
    Добавляем

    Код
    $(document).on('click', ".rek_element_actions a", function() {
    var self = $(this);
    if (self.attr("action") != 'delete_rek_element')
    {
    return true;
    }
    if (! confirm(self.attr("confirm")))
    {
    return false;
    }
    diafan_ajax.init({
    data:{
    action: 'delete_rek_element',
    element_id : self.parents(".rek_element").attr("element_id"),
    rel_id : self.parents(".rek_element").attr("rel_id"),
    rel_two_sided: $("#rek_elements").attr("rel_two_sided")
    },
    success: function(response){
    self.parents(".rek_element").remove();
    }
    });
    return false;
    });


    7. В файл /adm/includes/edit_functions.php добавляем

    Код
    /**
    * Редактирование поля "Ревомендуемые товары"
    *
    * @return void
    */
    public function edit_variable_rek_elements()
    {
    $rek_two_sided = $this->diafan->configmodules("rek_two_sided", $this->diafan->_admin->module, (! empty($this->values["site_id"]) ? $this->values["site_id"] : $this->diafan->_route->site));

    if($this->diafan->variable_list("name", "variable"))
    {
    $name = $this->diafan->variable_list("name", "variable");
    }
    else
    {
    $name = 'name';
    }

    echo '
    <div class="unit" id="rek_elements" rek-two_sided="'.($rek_two_sided ? 'true' : '').'">
    <div class="infofield">'.$this->diafan->variable_name().$this->diafan->help().'</div>
    <div class="rek_elements">';
    if ( ! $this->diafan->is_new)
    {
    $rows = DB::query_fetch_all("SELECT s.id, s.[".$name."], s.site_id FROM {".$this->diafan->table."} AS s"
    ." INNER JOIN {".$this->diafan->table."_rek} AS r ON s.id=r.rel_element_id AND r.element_id=%d"
    .($rel_two_sided ? " OR s.id=r.element_id AND r.rel_element_id=".$this->diafan->id : "")
    ." WHERE s.trash='0' GROUP BY s.id",
    $this->diafan->id
    );
    foreach ($rows as $row)
    {
    $link = $this->diafan->_route->link($row["site_id"], $row["id"], $this->diafan->table);
    if($this->diafan->is_variable("images") || $this->diafan->is_variable("image"))
    {
    $row_img = DB::query_fetch_array("SELECT name, folder_num FROM {images} WHERE element_id=%d AND module_name='%s' AND element_type='element' AND trash='0' ORDER BY sort ASC LIMIT 1", $row["id"], $this->diafan->table);
    }
    echo '
    <div class="rek_element" element_id="'.$this->diafan->id.'" rel_id="'.$row["id"].'">'
    .(! empty($row_img) ? '<img src="'.BASE_PATH.USERFILES.'/small/'.($row_img["folder_num"] ? $row_img["folder_num"].'/' : '').$row_img["name"].'">' : '').$this->diafan->short_text($row[$name], 50)
    .'
    <div class="rek_element_actions">';
    if($this->diafan->configmodules("page_show", $this->diafan->_admin->module, $this->diafan->_route->site))
    {
    echo '
    <a href="'.BASE_PATH.$link.'" target="_blank"><i class="fa fa-laptop"></i> '.$this->diafan->_('Посмотреть на сайте').'</a>';
    }
    echo '
    <a href="javascript:void(0)" confirm="'.$this->diafan->_('Вы действительно хотите удалить запись?').'" action="delete_rek_element" class="delete"><i class="fa fa-times-circle"></i> '.$this->diafan->_('Удалить').'</a>
    </div>
    </div>';
    }
    }
    echo '</div>
    <a href="javascript:void(0)" class="rek_module_plus btn btn_small btn_blue plink">
    <i class="fa fa-plus-square"></i> '.$this->diafan->_('Добавить').'
    </a>
    </div>';
    }


    8. В файл /adm/includes/frame.php добавляем

    Код

    case 'show_rek_elements':
    $this->_theme = new Theme_admin($this->diafan);

    case 'rek_elements':
    case 'delete_rek_element':
    Custom::inc("adm/includes/rek_elements.php");
    $this->action_object = new Rek_elements_admin($this->diafan);
    $this->ajax();


    9. Стилизуем вывод превьюшек в /adm/css/main.css
    Ищем начало стилей rel_elements примерно строка 2677, я просто дописал свои стили с _rek

    10. В папке /modules/shop/views копируем файл shop.view.show_block_rel.php, называем shop.view.show_block_rek.php
    Выводим наш блок в нужном месте
    echo $this->htmleditor('<insert name="show_block_rek" module="shop" count="4" images="1" defer="emergence" defer_title="Рекомендуемые товары">');

    А вот тут уже не получается, подскажите что упустил.
  • 14 сентября , редакция: 1726302779
  • Вывести теперь на страницу нужно както, желаельно через шорткод, конструкция из 10 пункта не работает (((
    Похоже гдето надо зарегистрировать копию модуля или както по другому его выводить
  • 15 сентября , редакция: 1726350040
  • Добавил в /modules/shop/shop.php

    Код
    /**
    * Шаблонная функция: на странице товара выводит РЕКОМЕНДУЕМЫЕ товары. По умолчанию связи между товарами являются односторонними, это можно изменить, отметив опцию «В блоке похожих товаров связь двусторонняя» в настройках модуля.
    *
    * @param array $attributes атрибуты шаблонного тега
    * count - количество выводимых товаров (по умолчанию 3)
    * images - количество изображений, прикрепленных к товару
    * images_variation - тег размера изображений, задается в настроках модуля
    * defer - маркер отложенной загрузки шаблонного тега: **event** – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", **emergence** – загрузка контента только при появлении в окне браузера клиента, **async** – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, **sync** – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы
    * defer_title - текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега
    * template - шаблон тега (файл modules/shop/views/shop.view.show_block_rel_**template**.php; по умолчанию шаблон modules/shop/views/shop.view.show_block_rel.php)
    * @return void
    */
    public function show_block_rek($attributes)
    {
    if ($this->diafan->_site->module != "shop" || ! $this->diafan->_route->show)
    return false;

    $this->diafan->attributes($attributes, 'count', 'images', 'images_variation', 'template');

    $count = $attributes["count"] ? intval($attributes["count"]) : 3;
    $images = intval($attributes["images"]);
    $images_variation = $attributes["images_variation"] ? strval($attributes["images_variation"]) : 'medium';

    $this->model->show_block_rek($count, $images, $images_variation);
    $this->model->result();
    $this->model->result["attributes"] = $attributes;

    echo $this->diafan->_tpl->get('show_block_rek', 'shop', $this->model->result, $attributes["template"]);
    }


    Все выводится, спасибо за подсказку!

Новости

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

Форум