Exemplo n.º 1
0
 /**
  * Метод выполняет фактическую замену 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;
 }