Свой блок 4.2 на примере блока популярных записей

Это лишь пример того, что нужно сделать, чтобы добавить свой блок в 4.2

config.php
$config['block']['rule_tops'] = array(
	'action'  => array('index','top'),
	'blocks'  => array( 'topper' => array('avas'=>array('priority'=>1000))),
);


block.avas.tpl
{if count($aAvas)>0}	

<div style="background:#FFFFFF;padding:10px;">

	<ul>
	{foreach from=$aAvas item=oTopic}
	
		{assign var="oBlog" value=$oTopic->getBlog()} 
		{assign var="oUser" value=$oTopic->getUser()} 
		{assign var="oVote" value=$oTopic->getVote()} 


		<li><a href="{$oTopic->getUrl()}" class="stream-topic">{$oTopic->getTitle()|escape:'html'}</a>, рейтинг: {$oTopic->getRating()})</li>

	{/foreach}
	</ul>
</div>
{/if}


BlockAvas.class.php
class BlockAvas extends Block {

	public function Exec() {

    		if ($aResult = $this->Topic_GetTopicsRatingByDate(date("Y-m-d H:00:00", time()-(60*60*24*350*100)), 5)) {
    			$this->Viewer_Assign('aAvas', $aResult);
    		}
	}
}


Если нужно — могу объяснить более подробно.

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

avatar
Нужно, а иначе этот топик сто лет не нужен, так как бесполезен!
avatar
Хорошо. На днях распишу более подробно. Как вы заметили, в config.php указано расположение «topper» — это вручную созданное нестандартное место в шаблоне для вывода блоков. Также я опишу и этот момент, там все очень просто.
avatar
Жду :)
avatar
Всё верно. Так оно и работает ещё со времён 0.3.1.
avatar
К этому я пришел благодаря отрывкам из топиков на этом сайте и собственным «исследованиям». Например, момент с вызовом в config.php своего блока, который использует собственный класс (array('avas')...), нигде не был явно описан. Обычно описывали, как вызвать сам .tpl файл блока. Пусть суть и на поверхности, но человеку неискушенному не совсем ясно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.