Добавление произвольного текстового блока в модуль и его вывод в шаблоне модуля

Автор trace, 02 октября 2015, 17:49:36

« назад - далее »

trace

Как добавить в модуль (любой), например, в homefeatured надпись рядом с заголовком, но так, чтобы этот текст можно было ввести в настройках модуля?

Mr.Sen

Нужно добавить новую переменную в function install()
Configuration::updateValue('HOME_FEATURED_TEXT', 'My text');

Сохранение этой переменной в function getContent()
Configuration::updateValue('HOME_FEATURED_TEXT', Tools::getValue('HOME_FEATURED_TEXT'));

Вывод переменной в шаблоне function hookDisplayHome($params)
$this->smarty->assign(
array(
'my_text' => Configuration::get('HOME_FEATURED_TEXT'),

trace

Цитата: Mr.Sen от 02 октября 2015, 21:11:08
Нужно добавить новую переменную в function install()
Спасибо!  :) А как добавить поле ввода текста в настройки модуля и выводить этот текст, написанный в настройках в шаблон .tpl?

DarinSr

Через переменную конфигурации, как написал Mr.Sen можно добавить только для 1-го языка.
Если у вас сайт мультиязычный, то нужно создавать таблицу и сохранять текст в таблицы с учетом языковой версиии.

Выводить переменную в шаблоне так
{$my_text}

Для вывода поля в админке нужно добавить переменую в метод
public function renderForm()
{
...
        'input' => array(
array(
'type' => 'text',
'label' => $this->l('My text'),
'name' => 'HOME_FEATURED_TEXT',
'class' => 'fixed-width-xs',
),
....

и в
public function getConfigFieldsValues()
{
        return array(
'HOME_FEATURED_TEXT' => Tools::getValue('HOME_FEATURED_TEXT', Configuration::get('HOME_FEATURED_TEXT')),
...

trace