private function insert($FNAME, ArrayAdapter $params, $content) { $IMG['data'] = $params->has('data') ? $params->get('data') : $params->getByKeyPrefix('data_', true); $IMG['class'] = $params->get(array('cl', 'class')); $IMG['style'] = $params->get(array('st', 'style')); $IMG['title'] = $params->get('title'); /* * Если alt задан, но пуст - таким его и оставим. * Скорее всего нам такое поведение и нужно. Например в галлереях alt используется для подсказки. * Нам не нужно в качестве подсказки показывать название картинки. */ if ($params->has('alt')) { $IMG['alt'] = $params->get('alt'); } if ($params->hasNoEmpty('map')) { $IMG['usemap'] = '#' . $params->get('map'); } $isPopup = ends_with($FNAME, 'imgp'); //Массив фактических картинок $IMAGES = array(); if ($content && !$isPopup) { //Есть содержимое } else { $IMAGES = to_array($this->getImages($params, $FNAME)); check_condition($IMAGES, "В блок [{$FNAME}] не переданы картинки для отображения."); } if ($isPopup) { //Всплывающая картинка $popupImgSrc = $IMAGES[0] instanceof DirItem ? $IMAGES[0]->getRelPath() : $IMAGES[0]; if ($content == '.') { echo PsBubble::previewImgBubble($popupImgSrc); } else { echo PsBubble::spanImgBubble($content, $popupImgSrc); } return; //--- } //Параметры $id = $params->str(array('id', 'num')); $text = $params->str('text'); $isBlock = $content || count($IMAGES) > 1 || $id || $text || ends_with($FNAME, array('imgb', 'imgn')); if (!$isBlock) { $IMG['src'] = $IMAGES[0]; echo PsHtml::img($IMG); return; //--- } //Блочная картинка //Определим номер картинки. Если это imgn, то нумерация форсированно отключена. $inc = ends_with($FNAME, 'imgn') ? null : FoldedContextWatcher::getInstance()->getImageNumeratorContext(false); //Определим текст подписи под картинкой. $num = $inc ? ' ' . PsConst::NUM_REPLCASE_MACROS : ''; $text = trim($num || $text ? "<b>Рис.{$num}</b> {$text}" : ''); $text = $text ? "<p>{$text}</p>" : ''; //Строим див с картинками $DIV['class'] = array('block_img'); if (!$content) { foreach ($IMAGES as $src) { $IMG['src'] = $src; $content .= PsHtml::img($IMG); } } $content .= $text; echo $inc ? $inc->wrapBlockImgBox($id, $DIV, $content) : PsHtml::div($DIV, $content); }