Создадим собственный модификатор в opencart, чтобы появилась переменная в шапке сайта.
Все модули будем создавать на основе базового шаблона modification.ocmod.xml, который положим в наш проект в новую папку C:\OpenServer\domains\opencart.loc\modifications.
Переименовываем модуль на hdr.ocmod.xml и открываем в sublime text.
В строке file path=catalog/controller/common/file.php, меняем название file.php на тот файл, который хотим изменить, в нашем случае будет header.php.
В add position пропишем after, означаем, что будем выводить информацию после, какой-нибудь переменной.
Так как мы выводим информацию в верхнее меню, по аналогии с выводом информации в footer.php, то открываем этот файл и смотрим все строки, где есть слово information, для переноса в новый модуль hdr.ocmod.xml, который правит файл header.php.
Редактируем новый модуль hdr.ocmod.xml в opencart.
1). Добавим в поиск search переменную из header.php $data (name), после нее after будем выводить текст information с пунктами меню в шапке из модуля hdr.ocmod.xml в opencart, который затем установим в расширениях магазина.
2). Перейдем в файл footer.php и вставим в поле вывода у модуля переменную $data (text_information) из footer.
3). Ищем все строки с выводом информации information и вставляем в новый модуль, иначе не заработает. Следующая строка это $this->load->model (catalog/information) модель информации, копируем ее.
4). Копируем весь массив вывода информации $data[informations] = array () вместе с конструкцией перебора объектов в массиве foreach.
5). И в конце выведем поле контактов $data[contact].
Код готового нового модуля hdr.ocmod.xml для opencart.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?xml version="1.0" encoding="utf-8"?> <modification> modificationname <name>Modification Name</name> <version>1.0</version> <author></author> <link></link> <file path="catalog/controller/common/header.php"> <operation> <search><![CDATA[ $data['name'] = $this->config->get('config_name'); ]]></search> <add position="after"><![CDATA[ $data['text_information'] = $this->language->get('text_information'); $this->load->model('catalog/information'); $data['informations'] = array(); foreach ($this->model_catalog_information->getInformations() as $result) { if ($result['bottom']) { $data['informations'][] = array( 'title' => $result['title'], 'href' => $this->url->link('information/information', 'information_id=' . $result['information_id']) ); } } $data['contact'] = $this->url->link('information/contact'); ]]></add> </operation> </file> </modification> |
Применение модуля магазина к нашему проекту.
Перейдем в административную панель opencart.
Зайдем в модули расширения.
Выбираем установка расширения и загрузить hdr.ocmod.xml.
Переходим на страницу модификаторы и обновляем, чтобы увидеть наш модуль.
После добавления модуля в систему opencart, ошибка исчезнет и будет, выводится информация в том месте, где указали в файле C:\OpenServer\domains\opencart.loc\catalog\view\theme\my\template\common\ header.tpl.