示例#1
0
 /**
  * 渲染指定的视图文件
  *
  * 渲染时,视图要使用的数据保存在控件的 $view 属性中。
  *
  * @param string $viewname
  * @param boolean $return
  *
  * @return string
  */
 protected function _renderBlock($viewname, $return = false)
 {
     if (!is_object($this->_view_adapter)) {
         $adapter_class = is_null($this->_view_adapter_class) ? $this->context->getIni('view_adapter') : $this->_view_adapter_class;
         $adapter_obj_id = "webcontrols_{$adapter_class}";
         if (Q::isRegistered($adapter_obj_id)) {
             /**
              * @var QView_Adapter_Abstract
              */
             $adapter = Q::registry($adapter_obj_id);
         } else {
             /**
              * @var QView_Adapter_Abstract
              */
             $adapter = new $adapter_class($this->context);
             Q::register($adapter, $adapter_obj_id);
         }
     } else {
         $adapter = $this->_view_adapter;
     }
     $adapter->clear();
     $adapter->assign($this->view);
     $adapter->assign('_ctx', $this->context);
     $filename = QView::getControlViewFilename($this->context, $adapter, $viewname, $this->_controls_view_dir);
     if ($return) {
         return $adapter->fetch($filename);
     } else {
         return $adapter->display($filename);
     }
 }
示例#2
0
 /**
  * 输出一个元素
  */
 function element($element)
 {
     $dir = QView::getExtraViewDir($this->context, '_elements', 'elements_view_dir');
     $filename = "{$element}_element{$this->tpl_file_ext}";
     if ($this->context->getIni('view_config/flat_dir') > 0) {
         $filename = '_' . $filename;
     }
     $_ctx = $this->context;
     include "{$dir}/{$filename}";
 }
示例#3
0
文件: qform.php 项目: fchaose/qeephp
 /**
  * 渲染表单
  *
  * @param QContext $context
  * @param boolean $return
  *
  * @return string
  */
 function render(QContext $context, $return = false)
 {
     $this->_event(self::BEFORE_RENDER_FORM, $this);
     if (!is_object($this->_view_adapter)) {
         $adapter_class = is_null($this->_view_adapter_class) ? $context->getIni('view_adapter') : $this->_view_adapter_class;
         $adapter_obj_id = "form_{$adapter_class}";
         if (Q::isRegistered($adapter_obj_id)) {
             $adapter = Q::registry($adapter_obj_id);
         } else {
             $adapter = new $adapter_class($context);
             Q::register($adapter, $adapter_obj_id);
         }
     } else {
         $adapter = $this->_view_adapter;
     }
     /* @var $adapter QView_Adapter_Abstract */
     $viewname = !empty($this->_viewname) ? $this->_viewname : 'form';
     $filename = QView::getViewLayoutsFilename($adapter->context, $adapter, $viewname);
     $adapter->clear();
     $adapter->assign('form', $this);
     $adapter->assign('_ctx', $context);
     $output = $adapter->fetch($filename);
     $this->_event(self::AFTER_RENDER_FORM, $this);
     if (!$return) {
         echo $output;
         $output = null;
     }
     return $output;
 }