Вход Регистрация
Файл: protected/extensions/yii2-debug/panels/Yii2ViewPanel.php
Строк: 69
<?php

/**
 * @author Roman Zhuravlev <zhuravljov@gmail.com>
 * @package Yii2Debug
 * @since 1.1.13
 */
class Yii2ViewPanel extends Yii2DebugPanel
{
    public function 
getName()
    {
        return 
'Views';
    }

    public function 
__construct($owner$id)
    {
        
parent::__construct($owner$id);
        
$renderer Yii::app()->getComponent('viewRenderer');
        
Yii::app()->setComponent('viewRenderer'null);
        
Yii::app()->setComponents(array(
            
'viewRenderer' => array(
                
'class' => 'Yii2DebugViewRenderer',
                
'instance' => $renderer,
            ),
        ), 
false);
    }

    public function 
getSummary()
    {
        if (
$count count($this->data)) {
            return 
$this->render(dirname(__FILE__) . '/../views/panels/view_bar.php', array(
                
'count' => $count,
            ));
        }
        return 
'';
    }

    public function 
getDetail()
    {
        
$data $this->getData();
        
$base dirname(Yii::app()->getBasePath()) . DIRECTORY_SEPARATOR;
        foreach (
$data as &$item) {
            
$item['view'] = str_replace($base''$item['view']);
            
$item['view'] = str_replace('\', '/', $item['view']);
        }
        unset($item);
        return $this->render(dirname(__FILE__) . '
/../views/panels/view.php', array(
            '
data' => $data,
        ));
    }


    public function save()
    {
        $renderer = Yii::app()->getComponent('
viewRenderer');
        if ($renderer instanceof Yii2DebugViewRenderer) {
            return Yii2Debug::prepareData($renderer->getStack());
        }
        return null;
    }

    protected function prepareData($data)
    {
        $result = array();
        if (is_array($data)) {
            foreach ($data as $key => $value) {
                $result[$key] = $this->prepareData($value);
            }
        } elseif (is_object($data)) {
            $result['
class'] = get_class($data);
            if ($data instanceof CActiveRecord) {
                foreach ($data->attributes as $field => $value) {
                    $result[$field] = $value;
                }
            }
            foreach (get_object_vars($data) as $key => $value) {
                $result[$key] = $this->prepareData($value);
            }
        } else {
            $result = $data;
        }
        return $result;
    }

}
Онлайн: 0
Реклама