Всем привет. Столкнулся с проблемой, что не могу стилизировать поле «Набор изображений». Понимаю что нужно копать в images.php, но не могу понять как я могу получить общее количество изображений в поле и обернуть это в div для реализации своей задумки
Ситилизация поля "набор изображений"
Если хотите по своему вывести картинки, нужно использовать свой шаблон.
Lora, это и так понятно, но где и как получить количество изображений в поле?
через:
/assets/fields/images.tpl.php или /system/fields/images.php или в самом шаблоне контента? И где корректнее всегда делать верстку?
Lora, это и так понятно, но где и как получить количество изображений в поле?
Смотря где вы будите выводить картинки
Lora, это и так понятно, но где и как получить количество изображений в поле?
Смотря где вы будите выводить картинки
Во всех «типов контента»
Во всех «типов контента»
Если выводите в записи, то в шаблоне templates/modern/contrnt/default_item.tpl.php есть переменная $item. Из неё и можно получить картинки. Например так <?php echo html_image($item['image'], 'small'); ?>
Где image, ситемное имя поля картинки, а small прессет
Lora, а как вывести цикл, если изображений например 8, т.е нужно вывести все что есть в поле «набор изображений», при это нужно получить информацию о количестве изображений раньше и после вывести все эти изображения (нужно это, что я мог присвоить определенный класс блоку с изображениями) при этом чтобы работало увеличения изображение до прессета «max»?
Lora, Вы не поняли, мне это нужно для поля «Набор изображений», а не для поля «Изображение»
hard990, вы хотите получить сразу готовое решение? А как насчет самому исследовать переменную $item?
Если верно то что писал Lora, сделайте в templates/modern/contrnt/default_item.tpl.php
var_dump($item); и смотрите как устроен этот массив. Смотрите в какой переменной лежит ваш набор изображений. Это тоже массив, количество элементов в массиве определяется с помощью функции count(). И далее зная количество элементов выполняете цикл for ($i=0; $i<count(); $i++). в зависимости от значения $i назначаете каждому изображению свой класс.
Раньше вроде работал этот код, попробовал сейчас не пашет instantcms.ru/forum/vyvod-nabora-izobrazhenii.html#post-332435, может Zau4man подскажет
Вот такой код выведет в стандартном шаблоне
<?php echo $fields['photo']['html']; ?>
Нашел на своем проекте, не знаю, сначала идет проверка на поле image потом вывод галереи из набора изображений
<div class="mb-5"> <?php echo html_image($item['image'], $fields['image']['options']['size_full'], $item['title']); ?> </div> <?php } ?> <?php if($fields_fieldsets) { ?> <?php foreach ($fields_fieldsets as $fieldset_id => $fieldset) { ?> <div class="mb-5"> <?php foreach ($fieldset['fields'] as $field) { ?> <?php echo html_image($item['gallery'], $fields['gallery']['options']['size_full'], $item['title']); ?> <?php } ?> </div> <?php } ?> <?php } ?> <?php } ?>
насколько правильно но все работает
насколько правильно но все работает
Если целью ставили вывести изображение $item['gallery'] столько раз, сколько полей в типе контента, то всё отлично.
Да, ошибся немного не то, вот решение находил на форуме,
<?php $config = cmsConfig::getInstance(); $is_imgs=false; $fn="photo"; // поле $img_size = 'big'; // размер изображения $images = cmsModel::yamlToArray($item[$fn]); $is_imgs=true; } if($is_imgs){ $images_html = ''; foreach($images as $key=>$paths){ $images_html .= '<img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" />'; } } ?>
там где нужно вывести изображение
<?php echo $images_html; ?>
или если нужна ссылка на большое изображение
<?php $config = cmsConfig::getInstance(); $is_imgs=false; $fn="photos"; $img_size = 'normal'; $img_size_full = 'original'; $images = cmsModel::yamlToArray($item[$fn]); $is_imgs=true; } if($is_imgs){ $images_html = ''; foreach($images as $key=>$paths){ if($full){ $images_html .= '<a class="img-'.$fn.'" href="'.$config->upload_host . '/' . $full.'"><img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" /></a>'; $images_html .= '<script>$(document).ready(function() { icms.modal.bindGallery(".img-'.$fn.'"); });</script>'; }else{ $images_html .= '<img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" />'; } } } ?>
Михаил, спасибо.