/** * Лупа, при наведении на которую отображается загружаемая картинка * <img class="ps-bubblehref-move preview" src="/resources/images/icons/preview.png" data-loader="image" data-img="/resources/images/logotip.png" alt="preview.png"> */ public static function previewImgBubble($src, array $attrs = array()) { self::attrsLoader($attrs, PsConstJs::BUBBLE_LOADER_IMAGE, PsConstJs::BUBBLE_HREF_MOVE_CLASS); $attrs['data']['img'] = $src; $attrs['class'][] = 'preview'; $attrs['src'] = PsConstJs::IMG_PREVIEW; echo PsHtml::img($attrs); }
private function generateImpl() { $images = DirManager::inst('ps-addon/crop')->getDirContent('oboi', DirItemFilter::FILES); for ($i = 0; $i < rand(2000, 3000); $i++) { $img = $images[array_rand($images)]; echo PsHtml::img(array('src' => PsImgEditor::resize($img, '60x60', null))); } }
/** * Метод возвращает <img /> элемент, готовый для вставки на страницу */ public static function getAvatarImg(PsUser $user = null, $dim = false, array $params = array()) { $params['src'] = self::getAvatarDi($user, $dim); $params['alt'] = $user ? $user->getName() : 'Аноним'; $params['data'] = $user ? array('uid' => $user->getId()) : null; $params['class'] = to_array(array_get_value('class', $params)); $params['class'][] = array('avatar', $user ? 'user' : null); return PsHtml::img($params); }
/** * Метод возвращает ссылку, открывающую загружаемую страницу. * Для работы загружаемой страницы нужны ресурсы фолдинга этой страницы - они также будут добавлены к ссылке. * * <a title="Новости" class="ip-opener" href="#news"><img alt="news.png" src="/autogen/images/16x16/folding/idents/news.png"></a> * * @param BaseIdentPage or String $item * @param array $params - параметры ссылки * @param type $content - содержимое ссылки. Если нет, то будет подставлена картинка. */ public final function getIdentPageHref(array $params = array(), $content = null) { $this->checkAccess(); $params['class'][] = 'ip-opener'; $params['class'][] = $this->foldedEntity->getUnique(); $params['title'] = $this->getTitle(); $params['href'] = "#" . $this->foldedEntity->getIdent(); //Если не передано содержимое, то добавим картинку $content = $content ? $content : PsHtml::img(array('src' => $this->foldedEntity->getCover())); //Добавим все необходимые ресурсы $content = $this->foldedEntity->getResourcesLinks($content); return PsHtml::a($params, $content); }
/** * Метод выполняет фактическую замену TEX тега на его представление в виде картинки или спрайта. * * @param str $original \[v_{\text{cp}}=\frac{\Delta S}{\Delta t}\] * @param str $formula v_{\text{cp}}=\frac{\Delta S}{\Delta t} * @param str $type block or inline */ public function _replaceInTextImpl($original, $formula, $isBlock) { $type = $isBlock ? 'block' : 'inline'; $replace = ''; if ($formula) { /* * Проверяем, разрешена ли замена формул на спрайты и есть ли сейчас контекст. * Если всё выполнено, то это вовсе не означает, что необходимый спрайт подключен и есть * спрайт для данной формулы. */ if (PsDefines::isReplaceFormulesWithSprites() && FoldedContextWatcher::getInstance()->getSpritableContext()) { $replace = CssSpritesManager::getFormulaSprite(FoldedContextWatcher::getInstance()->getSpritableContext()->getSpritable(), $formula, array('TeX', $type)); } /* * Если спрайта не нашлось, то заменяем на картинку. */ if (!$replace) { $imgDi = $this->getImgDi($formula); $imgPath = $imgDi ? $imgDi->getRelPath() : null; if ($imgPath) { $replace = PsHtml::img(array('src' => $imgPath, 'class' => "TeX {$type}", 'alt' => '')); } else { $replace = $original; } } } /* * Логирование */ if ($this->LOGGER->isEnabled()) { $this->LOGGER->info(++$this->replaced . ". Replacing {$type} TeX"); $this->LOGGER->info("FULL: {$original}"); $this->LOGGER->info("CONTENT: {$formula}"); $this->LOGGER->info("SAVED: {$formula}"); $this->LOGGER->info("REPLACED: {$replace}"); $this->LOGGER->info("\n"); } return $replace; }
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); }
public static function capture() { $img = PsHtml::img(array('id' => PsConstJs::CAPTCHA_IMG_ID, 'alt' => 'Антибот')); $input = PsHtml::input('text', FORM_PARAM_PSCAPTURE); return self::field(null, $img . '<br />' . $input); }