Добавление блока ко всем страницам из плагина

Создал простой плагин

BlockCloud.class.php
class PluginCloud_BlockCloud extends Block {
    public function Exec() {
        $this->Viewer_Assign('aSimilarTopics', 'bla');
    }
}
И шаблон block.cloud.tpl с текстом «тест».

По хуку работает, а когда добавляю в конфинг
'blocks'  => array(
	'right' => array('stream'=>array('priority'=>100),
            'tags'=>array('priority'=>50),
            'cloud'=>array('priority'=>20),
            'blogs'=>array('params'=>array(),'priority'=>1))
	),
то получаю следующее
Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: cloud' in D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php:514 Stack trace: #0 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(429): ModuleViewer->DefineTypeBlock('cloud', NULL) #1 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(624): ModuleViewer->AddBlock('right', 'cloud', Array, 20) #2 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(204): ModuleViewer->BuildBlocks() #3 D:\php\sites\livestreet\engine\classes\Engine.class.php(164): ModuleViewer->Init() #4 D:\php\sites\livestreet\engine\classes\Engine.class.php(394): Engine->LoadModule('ModuleViewer', true) #5 D:\php\sites\livestreet\engine\classes\Engine.class.php(326): Engine->GetModule('Viewer_Assign') #6 D:\php\sites\livestreet\engine\classes\Module.class.php(49): Engine->_CallModule('Viewer_Assign', Array) #7 [internal function]: Module->__call('Viewer_Assign', Array) #8 D:\php\sites\livestreet\engine\modules\lang\Lan in D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php on line 514

7 комментариев

avatar
для блоков плагина необходимо добавлять параметр с именем плагина:
'params'=>array('plugin'=>'cloud')
  • ort
  • +1
avatar
спасибо, получилось
avatar
а можно конфиге плагина или в config.local.php переопределить стандартный набор блоков?
добавляю
$config['block']['rule_index_blog']['blocks'] = array(
        'right' => array('stream'=>array('priority'=>100),
        'cloud'=>array('params'=>array('plugin'=>'cloud'),'priority'=>20),
        'blogs'=>array('params'=>array(),'priority'=>1)
    )
);
при этом все равно выводятся стандартные теги
avatar
разобрался, вопрос снят
avatar
Мог бы и поделится как разобрался )) А то тему создал, вопрос задал, а потом на тебе )) разобрался )). Мне бы вот тоже хотелось бы понять как разобрался ))
Давай, колись ))
avatar
в config.local.php добавил:
$config['block'] = array();
а потом нужные плагины
$config['block']['cloud'] = array(
'blocks' => array(
'right' => array(
'stream'=>array('priority'=>100),
'cloud'=>array('params'=>array('plugin'=>'cloud'),'priority'=>20),
'blogs'=>array('params'=>array(),'priority'=>1)
)
),
'clear' => true
);
avatar
пардон, забыл про тег code :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.