Создание нового блока в LS0.4+

Как я понимаю, для того, чтобы добавить новый блок в LS0.4+ необходимо выполнить следующее:

1) Добавить файл типа BlockNewblock.class.php в папку classes/blocks
2) Добавить файл блока типа block.newblock.tpl в папку templates/skin/new
3) Настроить вывод блока в конфиге
4) Вставить вывод блока в экшенах шаблона, где требуется.

Правильно ли я понял и что необходимо вписать в п.1 в файл BlockNewblock.class.php?

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

avatar
блоки бывают двух видов:
1. обычный шаблон (указывается в конфиге полное имя шаблона), для него достаточно пункта 2 и 3
2. шаблон с обработчиком, для него нужно 1,2 и 3
  • ort
  • 0
avatar
Не подскажите как осуществить п. 3?
avatar
по аналогии с тем, как выводятся в конфиге существующие блоки, т.е. вот пример:
$config['block']['rule_personal_blog'] = array(
	'action'  => array( 'personal_blog' ),
	'blocks'  => array( 'right' => array('stream','tags') ),
);
$config['block']['rule_profile'] = array(
	'action'  => array( 'profile' ),
	'blocks'  => array( 'right' => array('actions/ActionProfile/sidebar.tpl') ),
);

здесь в первой части указываем, что на страницах персональных блогов должны выводиться блоки прямого эфира и тегов (блоки вида 1 — см. коммент выше), во второй части указываем, что к страницам профиля должен подключаться файл actions/ActionProfile/sidebar.tpl в котором прописаны блоки (блоки вида 1).
avatar
А что вписать если я хочу добавить пустой блок с названием block.ads.tpl (для вставки рекламы)?
Я пробовал написать такое, но ничего не отображается. Будто его и нету.

$config['block']['rule_ads'] = array(
	'action'  => array( 'ads' ),
);
avatar
Это смотря где его необходимо выводить, к примеру так он должен выводиться на страницах персональных блогов:
$config['block']['rule_profile'] = array(
        'action'  => array( 'personal_blog' ),
        'blocks'  => array( 'right' => array('block.ads.tpl') ),
);


можно еще просто в sidebar.tpl что-нибудь типа этого добавить (для шаблона new):
{if !$oUserCurrent}	
				<div class="block blogs about">
					<div class="tl"><div class="tr"></div></div>
					<div class="cl"><div class="cr">
						<center>
							/*Реклама*/
						</center>
					</div></div>
					<div class="bl"><div class="br"></div></div>
				</div>
			{/if}

тогда блок будет вывадиться на всех страницах сайта и только для гостей.
avatar
Спасибо! Мне понравился 1й вариант. Только скажите, как выводить этот блок на всех страницах пользуясь 1м вариантом?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.