function basePageHref($basePageCode, $image) { $basePage = WebPage::inst($basePageCode); $sprites = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_HEADER, $image, true); $href = $basePage->getHref($sprites . $basePage->getName()); echo PsHtml::html2('li', array('class' => WebPages::getCurPage()->isMyBasePage($basePage) ? 'current' : null), $href); }
public function buildContent() { $RQ = RequestArrayAdapter::inst(); $mode = $RQ->str('mode', self::MODE_SPRITES_LIST); $name = $RQ->str('name'); $navigation = AdminPageNavigation::inst(); $sprites = CssSpritesManager::getAllDirsSptites(); switch ($mode) { case self::MODE_SPRITE: if (!array_key_exists($name, $sprites)) { $mode = self::MODE_SPRITES_LIST; break; } $smartyParams['sprite'] = CssSprite::inst($name)->rebuild(); break; } switch ($mode) { case self::MODE_SPRITES_LIST: $navigation->setCurrent('Список спрайтов'); break; case self::MODE_SPRITE: $navigation->addPath(self::urlSpritesList(), 'Список спрайтов'); $navigation->setCurrent($name); break; } $smartyParams['mode'] = $mode; $smartyParams['name'] = $name; $smartyParams['sprites'] = $sprites; return $this->getFoldedEntity()->fetchTpl($smartyParams); }
/** * Управление постом */ function smarty_modifier_post_header_controls($post) { $post = $post instanceof PostContentProvider ? $post->getPost() : $post; $pp = Handlers::getInstance()->getPostsProcessorByPostType($post->getPostType()); /* * Собираем кнопки управления */ $buttons = array(); $hintClasses = 'hint--top hint--info hint--rounded'; //Печать поста $attrs = array(); $title = 'Версия для печати'; $attrs['href'] = '#print'; $attrs['title'] = $title; $attrs['data'] = array('hint' => $title); $attrs['class'] = $hintClasses; $content = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_ICO, 'print', true); $buttons[] = PsHtml::a($attrs, $content); //Оригинальный вид поста if (PsDefines::isReplaceFormulesWithImages()) { $attrs = array(); $title = 'Просмотр ' . ps_strtolower($pp->postTitle(null, 2)) . ' без замены формул на картинки'; $attrs['href'] = '#originalView'; $attrs['title'] = $title; $attrs['data'] = array('hint' => $title); $attrs['class'] = $hintClasses; $content = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_ICO, 'formula', true); $buttons[] = PsHtml::a($attrs, $content); } //Быстрый просмотр постов (перелистывание) $attrs = array(); $title = 'Предыдущий/следующий ' . ps_strtolower($pp->postTitle(null, 1)); $attrs['href'] = '#prevNextView'; $attrs['title'] = $title; $attrs['data'] = array('hint' => $title); $attrs['class'] = $hintClasses; $content = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_ICO, 'prev_next', true); $buttons[] = PsHtml::a($attrs, $content); //Предыдущий пост $prevPost = $pp->getPrevPost($post->getId(), false); if ($prevPost) { $attrs = array(); $attrs['data']['hint'] = $pp->postTitle($prevPost); $attrs['class'] = $hintClasses; $content = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_ICO, 'prev_s', true); $buttons[] = $pp->postHref($prevPost, $content, null, $attrs); } //Следующий пост $nextPost = $pp->getNextPost($post->getId(), false); if ($nextPost) { $attrs = array(); $attrs['data']['hint'] = $pp->postTitle($nextPost); $attrs['class'] = $hintClasses; $content = CssSpritesManager::getDirSprite(CssSpritesManager::DIR_ICO, 'next_s', true); $buttons[] = $pp->postHref($nextPost, $content, null, $attrs); } return PsHtml::div(array('class' => PsConstJs::POST_HEAD_CONTROLS), implode(' ', $buttons)); }
function smarty_function_sprite($params, Smarty_Internal_Template &$smarty) { /* * Название картинки */ $name = value_Array('name', $params); $group = value_Array(array('gr', 'group'), $params); $group = $group ? $group : CssSpritesManager::DIR_ICO; $withGray = array_key_exists('nc', $params); echo CssSpritesManager::getDirSprite($group, $name, $withGray); }
/** * Метод выполняет фактическую замену 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; }
/** @return CssSprite */ public function getSprite($ident) { return $this->isSpritable() ? CssSpritesManager::getSprite($this->getFoldedEntity($ident)) : null; }
function smarty_function_linkup_sprite($params, Smarty_Internal_Template &$smarty) { echo PsHtml::linkCss(CssSpritesManager::getSprite($params['name'])->getCssDi()); }