예제 #1
0
 /**
  *
  * @dataProvider providerTestAddBlock
  * @param unknown_type $name
  * @param unknown_type $viewBlock
  */
 public function testAddBlock($name, $viewBlock)
 {
     $obj = new Miao_Office_TemplatesEngine_PhpNative('/qqqq', false);
     $obj->addBlock($name, $viewBlock);
     $actual = $obj->getBlock($name);
     $expected = $viewBlock;
     $this->assertEquals($expected, $actual);
 }
예제 #2
0
 /**
  * Добавить описание создаваемого блока
  *
  * @param string $name
  *        	Имя блока, при помощи него вызывается нужный блок
  * @param
  *        	string or array $class_name Имя класса блока. Если массив, то
  *        	первый элемент - это имя класса, второй обязательно массив с
  *        	параметрами, которые будут использованы как аргументы функции
  *        	process() блока
  * @param array $templates
  *        	Шаблоны блока
  */
 protected function _addBlock($name, $className, $templates = array('index.tpl'))
 {
     $block_class_process_params = array();
     if (empty($className)) {
         $block_class_name = 'Miao_Office_ViewBlock_SharedBlocks';
     } else {
         if (is_string($className)) {
             $block_class_name = $className;
         } else {
             if (is_array($className)) {
                 $block_class_name = $className[0];
                 $block_class_process_params = $className[1];
                 if (!is_array($block_class_process_params)) {
                     $block_class_process_params = array($block_class_process_params);
                 }
             }
         }
     }
     $viewBlock = new $block_class_name($name, $templates, $block_class_process_params);
     $viewBlock->setTemplates($templates);
     $viewBlock->setProcessParams($block_class_process_params);
     $this->_templatesObj->addBlock($name, $viewBlock);
 }
예제 #3
0
파일: View.class.php 프로젝트: theratg/miao
 /**
  * Добавить описание создаваемого блока
  *
  * @param string $name
  *        	Имя блока, при помощи него вызывается нужный блок
  * @param
  *        	string or array $class_name Имя класса блока. Если массив, то
  *        	первый элемент - это имя класса, второй обязательно массив с
  *        	параметрами, которые будут использованы как аргументы функции
  *        	process() блока
  * @param array $templates
  *        	Шаблоны блока
  */
 protected function _initBlock($name, $className = '', $templates = array('index.tpl'))
 {
     $block_class_process_params = array();
     if (empty($className)) {
         $className = $name;
     }
     if (is_string($className)) {
         $block_class_name = $className;
         if (!Miao_Autoload::getFilenameByClassName($block_class_name)) {
             $block_class_name = $this->_defaultViewBlockPrefix . '_ViewBlock_' . $className;
         }
     } else {
         if (is_array($className)) {
             $block_class_name = $className[0];
             $block_class_process_params = isset($className[1]) ? $className[1] : null;
             if (!is_array($block_class_process_params)) {
                 $block_class_process_params = array($block_class_process_params);
             }
         }
     }
     $viewBlock = new $block_class_name($name, $templates, $block_class_process_params);
     $viewBlock->setOffice($this->getOffice());
     $this->_templatesObj->addBlock($name, $viewBlock);
 }