Создание плагинов с блоками в LiveStreet 1.0
Здравствуйте, пробую сейчас обновить свой старый плагин до совместимости с v1.0
Возникла проблема с блоком который должен отображаться на главной странице.
В старом конфиге было так:
Сейчас если запускаю его, то вываливается ошибка, о том что невозможно найти шаблон.
Но когда я перенес шаблон в папку blocks — то ошибка осталась, потому что ЛС хочет загрузить блок с предыдущего места.
А если шаблон блока есть только в templates/skin/default/blocks то выдается ошибка
Это проблема у меня в плагине\конфиге? Если да, то где?.. Спасибо
Возникла проблема с блоком который должен отображаться на главной странице.
В старом конфиге было так:
Config::Set('block.rule_index_blog.blocks.right.myplugin',array('params'=>array('plugin'=>'myplugin')));и сам шаблон блока размещался в папке templates/skin/default
Сейчас если запускаю его, то вываливается ошибка, о том что невозможно найти шаблон.
Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: myplugin'Это и понятно потому как новшество v1.0 — пернесение шаблонов блоков в подпапку blocks.
Но когда я перенес шаблон в папку blocks — то ошибка осталась, потому что ЛС хочет загрузить блок с предыдущего места.
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file '...........plugins/myplugin/templates/skin/default/block.myplugin.tpl'Получаеться что для того чтобы отобразить блок, необходимо разместить шаблон блока в 2-х местах templates/skin/default/blocks и templates/skin/default потому что если нет шаблона блока в templates/skin/default/blocks то выдается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: myplugin'
А если шаблон блока есть только в templates/skin/default/blocks то выдается ошибка
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file '...........plugins/myplugin/templates/skin/default/block.myplugin.tpl'
Это проблема у меня в плагине\конфиге? Если да, то где?.. Спасибо
12 комментариев
class PluginCategory_BlockNewall extends Block {
public function Exec()
{
$iPage = 1;
$aResult=$this->Topic_GetTopicsNewAll($iPage, 10);
$aTopics = $aResult['collection'];
//Передаем данные уже в глобальный объект вида
$this->Viewer_Assign('aTopics',$aTopics);
}
}
Конфиг:
$config['block']['rule_sidebar'] = array(
'path' => array(
'^___path.root.web___/*'
),
'blocks' => array(
'sidebar' => array('newall'=>array('priority'=>100))
),
'clear' => false,
);
Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: newall' in C:\Inetpub\LS\engine\modules\viewer\Viewer.class.php:586 Stack trace:
#0 C:\Inetpub\LS\plugins\aceadminpanel\classes\modules\viewer\Viewer.class.php(484): ModuleViewer->DefineTypeBlock('newall', NULL)
#1 C:\Inetpub\LS\engine\modules\viewer\Viewer.class.php(487): PluginAceadminpanel_ModuleViewer->DefineTypeBlock('newall', NULL)
#2 C:\Inetpub\LS\plugins\aceadminpanel\classes\modules\viewer\Viewer.class.php(463): ModuleViewer->AddBlock('sidebar', 'newall', Array, 5)
#3 C:\Inetpub\LS\engine\modules\viewer\Viewer.class.php(706): PluginAceadminpanel_ModuleViewer->AddBlock('sidebar', 'newall', Array, 5)
#4 C:\Inetpub\LS\engine\modules\viewer\Viewer.class.php(1408): ModuleViewer->BuildBlocks()
#5 C:\Inetpub\LS\engine\classes\Engine.class.php(355): ModuleViewer->Shutdown()
#6 C:\Inetpub\LS\engine\classes\Engine.class.php(266): Engine->ShutdownModules()
#7 C:\Inetpub\LS\engine\classes\Router.class.php(136): Engine->Shutdown()
#8 in C:\Inetpub\LS\engine\modules\viewer\Viewer.class.php on line 586
Путь до класса блока — c:\Inetpub\LS\plugins\category\classes\blocks\BlockNewall.class.php
Наверно, я не до конца понимаю как работает конфиг для блоков или не там\не правильно прописаны настроки (сейчас они в глобальном конфиге, не в кофиге плагина — тут ошибки нет и вывода блока тоже). Если я меняю в конфиге блока
'sidebar' => array('newall'=>array('priority'=>100))
на
'sidebar' => array('tags'=>array('priority'=>100))
то теги выводятся.
Кажется, что LS не находит обработчик блока newall или ничего о нем не знает. Случаем, его в плагине нигде не надо регистрировать?
$config['block']['rule_sidebar'] = array(
'action' => array(
'index'
),
'path' => array(
'^___path.root.web___/*',
),
'blocks' => array(
'sidebar' => array('newall'=>array('priority'=>50, 'params'=>array('plugin'=>'category')))
),
'clear' => false,
);