energine
[ class tree: energine ] [ index: energine ] [ all elements ]

Source for file Transformer.class.php

Documentation is available at Transformer.class.php

  1. <?php
  2.  
  3. /**
  4.  * Класс Transformer.
  5.  *
  6.  * @package energine
  7.  * @subpackage core
  8.  * @author dr.Pavka
  9.  * @copyright Energine 2006
  10.  * @version $Id$
  11.  */
  12.  
  13. //require_once('core/framework/SystemConfig.class.php');
  14.  
  15. /**
  16.  * Трансформер XML-документа страницы.
  17.  *
  18.  * @package energine
  19.  * @subpackage core
  20.  * @author dr.Pavka
  21.  */
  22. class Transformer extends Object {
  23.  
  24.     /**
  25.      * Директория, где находится основной трансформер
  26.      */
  27.     const MAIN_TRANSFORMER_DIR = 'site/transformers/';
  28.  
  29.     private $fileName;
  30.  
  31.     /**
  32.      * Конструктор класса.
  33.      *
  34.      * @access public
  35.      * @return void 
  36.      */
  37.     public function __construct({
  38.         parent::__construct();
  39.         $this->setFileName($this->getConfigValue('document.transformer'));
  40.     }
  41.     /**
  42.      * Устанавливает имя основного файла трансформации
  43.      * 
  44.      * @param string 
  45.      * @return void 
  46.      */
  47.     public function setFileName($transformerFilename){
  48.         $transformerFilename self::MAIN_TRANSFORMER_DIR.$transformerFilename;
  49.         if (!file_exists($transformerFilename)) {
  50.             throw new SystemException('ERR_DEV_NO_MAIN_TRANSFORMER'SystemException::ERR_DEVELOPER$transformerFilename);
  51.         }
  52.         $this->fileName = $transformerFilename;
  53.     }
  54.  
  55.     /**
  56.      * Трансформирует XML-документ страницы в выходной формат.
  57.      *
  58.      * @param DOMDocument 
  59.      * @param string 
  60.      * @return string 
  61.      * @access public
  62.      */
  63.     public function transform($document$transformerFilename null{
  64.         $xsltProc new XSLTProcessor;
  65.         if (!is_null($transformerFilename)) {
  66.             $this->setFileName($transformerFilename);
  67.         }
  68.         $xsltDoc new DOMDocument('1.0''UTF-8');
  69.         if (!@$xsltDoc->load($this->fileName)) {
  70.             throw new SystemException('ERR_DEV_NOT_WELL_FORMED_XSLT'SystemException::ERR_DEVELOPER);
  71.         }
  72.         $xsltProc->importStylesheet($xsltDoc);
  73.         $result $xsltProc->transformToXml($document);
  74.         return $result;
  75.     }
  76. }
В создании документации нам помог: phpDocumentor