Я использую тему Shoppica с OpenCart. Я хотел бы внести изменения на страницу категории. Он дает описание (которое я ввел в бэкэнд), а затем список продуктов.
В category.tpl говорится:
<?php if ($description) echo $description; ?>
Но я хотел бы получить дополнительное описание, назовем его описанием2. Это должно произойти ПОСЛЕ списка продуктов. В PhpMyAdmin я добавил еще одну строку в * oc_category_description * и назвал ее description2 вручную (так что в PhpMyAdmin) я заполнил это текстом.
Теперь я поместил следующее в файл category.tpl:
<?php if ($description2) echo $description2; ?>
Но теперь я получаю сообщение об ошибке:
undefined variable: description2 в /home/…/public_html/catalog/view/theme/shoppica2/template/product/category.tpl в строке 187
Любая идея, что я сделал не так. Мне нужно объявить его где-то еще (в другом файле? Где?)
Существует потребность в понимании шаблона MVC, который встроен в OpenCart.
Вкратце. У вас есть класс Model, который взаимодействует с базой данных, классом Controller, который работает выше, и вызывает методы модели (извлечение данных, обновление данных, вставка данных) и передает результат в черновик, когда он обрабатывается View (должен быть другой класс, но OpenCart имеет только часть MC-Model-Controller с файлами шаблонов).
Итак, к вашей проблеме: вам нужно изменить catalog/model/catalog/category.php
и искать метод getCategory
который извлекает конкретные данные категории. Здесь, в select select, нужно select * from ...
– если это так, все в порядке, но если это похоже на select category_id, category_description, ... from ...
then Вы также должны добавить свое новое поле здесь (извините, я не помню SQL-запросы от OpenCart).
Дополнительно редактируйте catalog/controller/product/category.php
и найдите ту часть, где управляются данные категории (модель категории), или найдите строку, которая начинается с $this->data['description'] = ...;
и добавьте здесь свое новое поле, например $this->data['description2'] = ...;
,
Надеюсь, это поможет.