Содержимое определенной категории на главной странице

Здравствуйте.

В старом форуме уже спрашивал, но тема куда-то делась…

Спрошу еще раз:
На главной странице магазина нужно вывести блок с товарами определенной категории. Важно, чтобы отображение этого блока не отличалось от показа категории штатными средствами, т.е. была на месте строка с вариантами сортировки и количества товаров на странице, видов отображения (плиткой, полный, краткий), переключатель страниц.

В прошлый раз посоветовали:
Можно попробовать модулем продублировать код из контроллера categories и в HTML блоке с поддержкой SMARTY показать шаблон от категории на странице макета Домашняя страница

Добавил блок Smarty, туда запихнул содержимое файла \design\themes\responsive\templates\views\categories\view.tpl

В результате при показе главной страницы получил надпись “В этой категории нет товаров”.

Ясно, что нужно как-то сюда передать параметры для отображения категории и ее товаров. Но как это сделать?

Или может быть есть другие варианты?

Нужно продублировать код из контроллера для категорий (app/controllers/frontend/categores.php). Смотрите по mode=‘view’

Код можно продублировать, например, с помощью модуля и пост контроллера (index.post.php)

В /app/addons/maash_design/index.post.php запихнул код из \app\controllers\frontend\categories.php, который между
} elseif ($mode == 'view') {
и
} elseif ($mode == 'picker') {
добавив в начало кода
$_REQUEST['category_id'] = 546;
546 - id моей категории.
И ничего…
В код внес намеренно ошибку php - и опять ничего, код не срабатывает. Что делаю не так?

Правильная папка для контроллера

app/addons/maash_design/controllers/frontend/index.post.php

Спасибо, теперь все плюшки показываются, но не работают, а именно: переключение вида отображения (плиткой, полный, краткий). Предполагаю, что нужно еще какой-то java-скрипт подключать. Но какой и где? :disappointed_relieved:

При изменении пути давалась ошибка, по этому догадался добавить в начало файла
use Tygh\Registry;
use Tygh\Settings;
use Tygh\Storage;
use Tygh\Session;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
как в других модулях. Хотя тут, наверное, что-то лишнее.

И еще… На первой витрине перестали показываться все html-блоки на главной странице. Тут я просто поставил проверку на id витрины, не знаю правильно ли?
if (Registry::get('runtime.company_id') == 2) {

И еще, почему-то на главной странице выпадающие списки сортировки и числа товаров сбросили свой стиль, хотя при показе категории через стандартный контроллер все в норме: стили на месте, вид переключается. Почему такое может быть? :astonished:

Нужно изучать и дебажить. Примерный алгоритм я указал, дальше - сами :slight_smile: