Как правильно делать и вставлять новый блок в шаблон LS.
Несколько дней провел в поисках и экспериментах, некоторые вещи удалось понять, на других просто остановился и не могу двинутся дальше.
Что удалось понять:
1. Надо создать файл в папке templates\skin\new\ block.myblok.tpl где содержится все оформление. Для начало можно обойтись примерно таким.
По идеи здесь просто будет выводится просто Test. Все оформление просто выдернул из готового блока, но для опытов сойдет.
2. В папке classes\blocks\ создаем BlockMyBlock.classю.php. Здесь находится логика работы нового блока, но пока не понял что с этим делать, а шаблоне менять ничего не надо то вполне хватает заглушки которая ничего не будет делать.
Потом придется разбираться, как все работает внутри.
3. Новый блок надо подключить для вывода через конфиг. Основной конфиг config.php изменять не собираюсь, а просто копирую нужные мне фрагменты в пользовательский config.local.php, значения из которого будут при совпадении переписывать основной конфиг.
Вот здесь все застопорилось.
Удалось заставить выводить новый блок при вызове «Персональные» добавив
Как выводить на остальных страницах понять не могу, например на главной или в общем разделе.
4. Мне нужно поднять мой блок в самый верх, насколько понял это делается в этой строке конфига
После того как отредактировал под себя добавив 'myblock'=>array('priority'=>90), в итоге получив
Вывод моего блоке в нужном мне порядке, стал работать хуже того появилась ошибка на всех страницах и разделах, за исключением единственного раздела «Персональные», где удалось настроить вывод блока.
Все выводится до моего блока после чего выбрасываться Fatal error: Class 'BlockMyBlock' not found in E:\server\web\localhost\ls1\engine\modules\viewer\plugs\insert.block.php(62): eval()'d code on line 1 и все блоки ниже не показываться.
Если убрать внесенные мной изменение myblock'=>array('priority'=>90), то все нормально работает.
Объясните мне как правильно вставлять в конфиг свои блоки, как выводить на нужные страницы и как заставить выводить свои блоки в нужном порядке.
Что удалось понять:
1. Надо создать файл в папке templates\skin\new\ block.myblok.tpl где содержится все оформление. Для начало можно обойтись примерно таким.
<div class="block stream">
<div class="tl"><div class="tr"></div></div>
<div class="cl">
<div class="cr">Test</div>
</div>
<div class="bl"><div class="br"></div></div>
</div>
По идеи здесь просто будет выводится просто Test. Все оформление просто выдернул из готового блока, но для опытов сойдет.
2. В папке classes\blocks\ создаем BlockMyBlock.classю.php. Здесь находится логика работы нового блока, но пока не понял что с этим делать, а шаблоне менять ничего не надо то вполне хватает заглушки которая ничего не будет делать.
<?php
class BlockBlogs extends Block {
public function Exec() {
}
}
?>
Потом придется разбираться, как все работает внутри.
3. Новый блок надо подключить для вывода через конфиг. Основной конфиг config.php изменять не собираюсь, а просто копирую нужные мне фрагменты в пользовательский config.local.php, значения из которого будут при совпадении переписывать основной конфиг.
Вот здесь все застопорилось.
Удалось заставить выводить новый блок при вызове «Персональные» добавив
$config['block']['rule_profile'] = array(
'action' => array( 'personal_blog' ),
'blocks' => array( 'right' => array('block.myblock.tpl') ),
);
Как выводить на остальных страницах понять не могу, например на главной или в общем разделе.
4. Мне нужно поднять мой блок в самый верх, насколько понял это делается в этой строке конфига
'blocks' => array(
'right' => array('stream'=>array('priority'=>100), 'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
)
После того как отредактировал под себя добавив 'myblock'=>array('priority'=>90), в итоге получив
'blocks' => array(
'right' => array('stream'=>array('priority'=>100), 'myblock'=>array('priority'=>90), 'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
)
Вывод моего блоке в нужном мне порядке, стал работать хуже того появилась ошибка на всех страницах и разделах, за исключением единственного раздела «Персональные», где удалось настроить вывод блока.
Все выводится до моего блока после чего выбрасываться Fatal error: Class 'BlockMyBlock' not found in E:\server\web\localhost\ls1\engine\modules\viewer\plugs\insert.block.php(62): eval()'d code on line 1 и все блоки ниже не показываться.
Если убрать внесенные мной изменение myblock'=>array('priority'=>90), то все нормально работает.
Объясните мне как правильно вставлять в конфиг свои блоки, как выводить на нужные страницы и как заставить выводить свои блоки в нужном порядке.
5 комментариев
Затупил, когда создавал класс для обработки своего блока его название просто скопировал, а нужно было давать имя по имени блока.
<?php
class
BlockBlogsBlockMyBlock extends Block {public function Exec() {
}
}
?>