Вход Регистрация
Файл: base-sys/base/components/console.php
Строк: 84
<?php

class BASE_CMP_Console extends PEEP_Component
{

    const 
EVENT_NAME 'console.collect_items';

    const 
ALIGN_LEFT = -1;
    const 
ALIGN_RIGHT 0;

    
/**
     * Constructor.
     */
    
public function __construct()
    {
        
parent::__construct();
    }

    public function 
onBeforeRender()
    {
        
parent::onBeforeRender();

        
$event = new BASE_CLASS_ConsoleItemCollector(self::EVENT_NAME);
        
PEEP::getEventManager()->trigger($event);
        
$items $event->getData();

        
$resultItems = array();

        foreach ( 
$items as $item )
        {
            
$itemCmp null;
            
$order self::ALIGN_LEFT;
            if ( 
is_array($item) )
            {
                if ( empty(
$item['item']) )
                {
                    continue;
                }

                
$itemCmp $item['item'];

                
$order = isset($item['order']) ? $item['order'] : self::ALIGN_LEFT;
            }
            else
            {
                
$itemCmp $item;
            }

            if ( 
$order == self::ALIGN_LEFT )
            {
                
$order count($resultItems);
            }

            if ( 
is_subclass_of($itemCmp'PEEP_Renderable') && $itemCmp->isVisible() )
            {
                
$resultItems[] = array(
                    
'item' => $itemCmp->render(),
                    
'order' => $order
                
);
            }
        }

        
usort($resultItems, array($this'_sortItems'));

        
$tplItems = array();

        foreach ( 
$resultItems as $item )
        {
            
$tplItems[] = $item['item'];
        }

        
$this->assign('items'$tplItems);


        
$jsUrl PEEP::getPluginManager()->getPlugin('base')->getStaticJsUrl() . 'console.js';
        
PEEP::getDocument()->addScript($jsUrl);

        
$event = new PEEP_Event(BASE_CTRL_Ping::PING_EVENT '.consoleUpdate');
        
PEEP::getEventManager()->trigger($event);

        
$params = array(
            
'pingInterval' => 30000
        
);

        
$js UTIL_JsGenerator::newInstance();
        
$js->newObject(array('PEEP''Console'), 'PEEP_Console', array($params$event->getData()));

        
PEEP::getDocument()->addOnloadScript($js900);
    }

    public function 
_sortItems$item1$item2 )
    {
        
$a = (int) $item1['order'];
        
$b = (int) $item2['order'];

        if (
$a == $b)
        {
            return 
0;
        }

        return (
$a $b) ? -1;
    }




    
/* Deprecated Block */

    
const DATA_KEY_ICON_CLASS 'icon_class';
    const 
DATA_KEY_URL 'url';
    const 
DATA_KEY_ID 'id';
    const 
DATA_KEY_BLOCK 'block';
    const 
DATA_KEY_BLOCK_ID 'block_id';
    const 
DATA_KEY_ITEMS_LABEL 'block_items_count';
    const 
DATA_KEY_BLOCK_CLASS 'block_class';
    const 
DATA_KEY_TITLE 'title';
    const 
DATA_KEY_HIDDEN_CONTENT 'hidden_content';

    const 
VALUE_BLOCK_CLASS_GREEN 'peep_mild_green';
    const 
VALUE_BLOCK_CLASS_RED 'peep_mild_red';

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