Выбор размера изображения в виджетах

Выбор размера изображения в виджетах

В этот раз на примере виджета [Список контента] расскажу Вам как добавить функцию выбора пресета\размера изображения в настройки виджетов.


Добавляем опции в настройки виджета

Открываем файл:
system\controllers\content\widgets\list\options.form.php
В этом файле находим строку:
new fieldList('options:teaser_field', array(
Перед ней добавляем следующий код:
new fieldList('options:image_size', array(
'title' => 'Пресет, размер изображения',
'generator' => function($item) {
 $presets = cmsCore::getModel('content')->                  
 filterIsNull('is_internal')->orderBy('width')->
 get('images_presets', function($item, $content_model){                                 
 return $item;
 });
 $items = array();
 if ($presets){ 
 $items = array('0'=>'') + array_collection_to_list($presets, 'name', 'title');
 }
 return $items;
 },
 )),

Теперь у нас в настройках виджета появилось такое меню:



Передаём настройки в шаблон виджета:

Открываем файл:
system\controllers\content\widgets\list\widget.php
В этом файле находим строку:
'image_field'       => $image_field,
Следом за ней добавляем:
'image_size'       => $this->getOption('image_size'),


Правим шаблон

Открываем любой шаблон стиля, например [Обычный]:
templates\default\controllers\content\widgets\list\list_basic.tpl.php
Находим 'small' и заменяем на:
$image_size


На этом урок закончен ;) Благодарю за внимание! ;)


Ссылки по теме:

В объявлениях не работает сторонний пресет
+1
18:58
02:45
всё сделал попунктно — но не работает (изобр-е просто перестаёт выводиться)… ( вер.2.5.1 дефолтный шаблон) -(
22:27
то что доктор прописал! Всё работает как надо. ICMS2.6.1 Благодарю в очередной раз за великолепную работу!

НазадПоделиться на сайт

Код для вставки на сайт:
Пример отображения:

X