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

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

так раньше делал, но неудобно, так как все в одном поле и если надо форматирование со ссылками в тексте, то это неудобно делать в текстовом поле.
#8 11 февраля 2025 в 16:34

коллеги, подскажите пожалуйста, сейчас же появилась возможность с помощью хука добавить в опции виджета поле для ввода описания виджета и дальнейшего вывода на фронте?

#9 11 февраля 2025 в 17:05
коллеги, подскажите пожалуйста, сейчас же появилась возможность с помощью хука добавить в опции виджета поле для ввода описания виджета и дальнейшего вывода на фронте?
Def

Сам понял что спросил? Ещё про других говоришь ...

#10 11 февраля 2025 в 17:30
коллеги, подскажите пожалуйста, сейчас же появилась возможность с помощью хука добавить в опции виджета поле для ввода описания виджета и дальнейшего вывода на фронте?Def Сам понял что спросил ?
Happy

Да. понял. Чтобы была возможность так вывести поле для описания виджета, которое при заполнении выводится на фронте юзеру под заголовком например.

Изображение

#11 11 февраля 2025 в 18:19

1. Ставим компонент из приложения к сообщению.
2. Указываем у нужных виджетов описание

Изображение

Ничего не выводится. Потому что надо править шаблон, который про новое «Описание виджета» ничего не знает.

3. Внесем правки в шаблон враппера (обертки) виджета. На примере templates\modern\widgets\wrapper.tpl.php Откройте файл и где-нибудь вставьте

  1. <?php if(!empty($widget['description'])){ ?>
  2. <div><?php html($widget['description']); ?></div>
  3. <?php } ?>

Обновляем страницу и видим наше описание

Изображение

Пригодилось? Поддержать появление дополнения в каталоге можно любой суммой на Yoomoney (бывшие Яндекс деньги) 41001346743476

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