Как добавить текстовое поле с редактором для описания в виджет?

InstantCMS 2.X
#1 27 декабря 2020 в 06:55
Друзья, подскажите пожалуйста, как можно добавить текстовое описание в виджет, чтобы на сайте под заголовком виджета выводился отформатированный текст, а уже после него сам динамический контент виджета? Очень нужная штука, чтобы жетско не прописывать в самом шаблоне виджета, так как не везде нужно одинаковое описание у виджета.
#2 27 декабря 2020 в 11:04
Def, это описание где-то надо будет хранить. Т.е. понадобятся изменения в базе.
Может стоит в заголовке виджета писать так

Заголовок|описание виджета

А потом в шаблоне виджета разбивать заголовок с помощью explode, если в нем найден символ |
И выводить в обычном месте первую часть
А в месте подписи — вторую
#3 27 декабря 2020 в 12:12
На примере виджета "Список контента".

Открываем файл опций (system/controllers/content/widgets/list/options.form.php) и добавляем в опции новое поле Html
  1. new fieldHtml('options:descfield', array(
  2. 'title' => 'Описание'
  3. ))

Дальше открываем файл виджета (system/controllers/content/widgets/list/widget.php) и в самом верху после "public function run(){" добавляем
  1. $descfield = $this->getOption('descfield');

Дальше в этом же файле внизу функции ищем "return array..." и вставляем туда
  1. 'descfield' => $descfield

Теперь это поле надо вывести в шаблоне. Открываем templates/шаблон/controllers/content/widgets/list/list.tpl.php (или файл своего шаблона) и вставляем в нужном месте
  1. <?php echo $descfield; ?>

Готово!
#4 27 декабря 2020 в 12:23

#5 27 декабря 2020 в 13:51

Очень нужная штука

Def
Кому?
Можно просто 2-мя виджетами решить.
Вывести виджет HTML, а под ним тот виджет, для которого нужно описание без заголовка (или вообще без обёртки).
#6 28 декабря 2020 в 00:27


На примере виджета "Список контента".

Открываем файл опций (system/controllers/content/widgets/list/options.form.php) и добавляем в опции новое поле Html

  1. new fieldHtml('options:descfield', array(
  2. 'title' => 'Описание'
  3. ))

Дальше открываем файл виджета (system/controllers/content/widgets/list/widget.php) и в самом верху после "public function run(){" добавляем
  1. $descfield = $this->getOption('descfield');

Дальше в этом же файле внизу функции ищем "return array..." и вставляем туда
  1. 'descfield' => $descfield

Теперь это поле надо вывести в шаблоне. Открываем templates/шаблон/controllers/content/widgets/list/list.tpl.php (или файл своего шаблона) и вставляем в нужном месте

Готово!

Нифигаccе о-го-гошеньки

здорово!) спасибо! получается скрипт сам в БД создает поле для хранения описания?)
#7 28 декабря 2020 в 00:28


Def, это описание где-то надо будет хранить. Т.е. понадобятся изменения в базе.
Может стоит в заголовке виджета писать так

Заголовок|описание виджета

А потом в шаблоне виджета разбивать заголовок с помощью explode, если в нем найден символ |
И выводить в обычном месте первую часть
А в месте подписи — вторую

Zau4man

так раньше делал, но неудобно, так как все в одном поле и если надо форматирование со ссылками в тексте, то это неудобно делать в текстовом поле.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.