BcBaserHelper::getElement PHP Method

getElement() public method

エレメントテンプレートのレンダリング結果を取得する
public getElement ( string $name, array $data = [], array $options = [] ) : string
$name string エレメント名
$data array エレメントで参照するデータ
$options array オプションのパラメータ `subDir` (boolean) エレメントのパスについてプレフィックスによるサブディレクトリを追加するかどうか ※ その他のパラメータについては、View::element() を参照
return string エレメントのレンダリング結果
    public function getElement($name, $data = array(), $options = array())
    {
        $options = array_merge(array('subDir' => true), $options);
        if (isset($options['plugin']) && !$options['plugin']) {
            unset($options['plugin']);
        }
        /*** beforeElement ***/
        $event = $this->dispatchEvent('beforeElement', array('name' => $name, 'data' => $data, 'options' => $options), array('layer' => 'View', 'class' => '', 'plugin' => ''));
        if ($event !== false) {
            $options = $event->result === null || $event->result === true ? $event->data['options'] : $event->result;
        }
        /*** Controller.beforeElement ***/
        $event = $this->dispatchEvent('beforeElement', array('name' => $name, 'data' => $data, 'options' => $options), array('layer' => 'View', 'class' => $this->_View->name));
        if ($event !== false) {
            $options = $event->result === null || $event->result === true ? $event->data['options'] : $event->result;
        }
        if ($options['subDir'] === false) {
            if (!$this->_subDir && $this->_View->subDir) {
                $this->_subDir = $this->_View->subDir;
            }
            $this->_View->subDir = null;
        } else {
            if ($this->_subDir) {
                $this->_View->subDir = $this->_subDir;
            }
        }
        $out = $this->_View->element($name, $data, $options);
        /*** afterElement ***/
        $event = $this->dispatchEvent('afterElement', array('name' => $name, 'out' => $out), array('layer' => 'View', 'class' => '', 'plugin' => ''));
        if ($event !== false) {
            $out = $event->result === null || $event->result === true ? $event->data['out'] : $event->result;
        }
        /*** Controller.afterElement ***/
        $event = $this->dispatchEvent('afterElement', array('name' => $name, 'out' => $out), array('layer' => 'View', 'class' => $this->_View->name));
        if ($event !== false) {
            $out = $event->result === null || $event->result === true ? $event->data['out'] : $event->result;
        }
        return $out;
    }