Заметил баг в функции parse, в файле \instantcms\system\fields\images.php (~51 строка)
При принудительном выводе изображений через
<?php if($fields['attach_image']['html']) {?>
<div class="attachment_images">
<h3>
<?php print_r($fields['attach_image']['title']);?></h3>
<div class="list">
<?php print_r($fields['attach_image']['html']);?></div>
</div>
<? } ?>
А если изображений нет, то поле все равно отображается на сайте, потому что в конце функции
parse дописывается
$html .= '<script>$(document).ready(function() { icms.modal.bindGallery(".img-'.$this->getName().'"); });</script>';
Решение:
Включить проверку на наличие изображений
if(!$images) {return false;}
И того функция parse будет выглядеть так:
public function parse($value){
$config = cmsConfig::getInstance();
$images = cmsModel::yamlToArray($value);
$html = '';
if(!$images) {return false;}
if($this->getOption('size_teaser')) {
$size_teaser = $this->getOption('size_teaser');
}
else {
$size_teaser = 'small';
}
foreach($images as $paths){
$full = isset($paths[$this->getOption('size_full')]) ?
$paths[$this->getOption('size_full')] : ''; $html .= '<a class="img-'.$this->getName().'" href="'.$config->upload_host . '/' . $full.'"><img src="'.$config->upload_host . '/' . $paths[$size_teaser].'" border="0" /></a>';
}
$html .= '<script>$(document).ready(function() { icms.modal.bindGallery(".img-'.$this->getName().'"); });</script>';
return $html;
}