Альтернативный вывод блоков

Приветствую.

На своем сайте решил сделать на главной странице НАД топиками вывод случайных фотографий из галереи от benone. Главное- придать блоку свой вид, не такой как на странице в галерее в блоке. Да и как добавить сам блок НАД топиками?

Решение под катом)

Итак. Для начала создадим копию блока случайной картинки.
Скопируем файл block.GalleryImagesRandom.tpl и переименуем к примеру на
block.GalleryImagesRandomTop.tpl

Далее идем в classes/blocks
Так же создаем копию файла BlockGalleryImagesRandom.class.php
и даем название BlockGalleryImagesRandomTop.class.php
Открываем его и находим
class BlockGalleryImagesRandom

Заменяем на
class BlockGalleryImagesRandomTop


Теперь необходимо создать отдельный вывод блоков.
Идем в шаблон и делаем копию файлу sidebar.tpl
Я копию переименовал в sidebart.tpl
Открываем его и находим
{if isset($aBlocks.right)}
	{foreach from=$aBlocks.right item=aBlock}															
		{if $aBlock.type=='block'}
			{insert name="block" block=`$aBlock.name` params=`$aBlock.params`} 
		{/if}
		{if $aBlock.type=='template'}						 
			{include file=`$aBlock.name` params=`$aBlock.params`}
		{/if}					
	{/foreach}			
{/if}

заменяем код на
{if isset($aBlocks.left)}
	{foreach from=$aBlocks.left item=aBlock}															
		{if $aBlock.type=='block'}
			{insert name="block" block=`$aBlock.name` params=`$aBlock.params`} 
		{/if}
		{if $aBlock.type=='template'}						 
			{include file=`$aBlock.name` params=`$aBlock.params`}
		{/if}					
	{/foreach}			
{/if}


Выводим наш блок НАД топиками.
Открываем файл header.tpl и находим в самом низу
{if !$noShowSystemMessage}
	{include file='system_message.tpl'}
{/if}

Ниже добавляем
{if !$bNoSidebar}{include file='sidebart.tpl'}{/if}


С основным закончили.
Теперь подключем вывод в actions. Идем в classes/actions
Открываем ActionIndex.class.php
Находим
$this->Viewer_AddBlocks('right',array('stream','tags','blogs'));

И ниже добавляем
$this->Viewer_AddBlocks('left',array('GalleryImagesRandomTop'));


Все. Т.е. по сути мы просто создали дополнительный sitebar- LEFT

Вот небольшой скрин, как получилось <тынс>

Единственное -стили. Нужно у блока block.GalleryImagesRandomTop.tpl
и файла sitebart.tpl изменить стили на свой.

P.S. я не пробовал проделывать такое на других блоках. Но сама суть добавления описана вроде Правильно и подробно. Поправьте пожалуйста если допустил где ошибку или сделал не верно.
Может можно это дело реализовать с помощью хуков(?) и мороки меньше будет)

3 комментария

avatar
Отлично, спасибо за хак! :)
avatar
Спасибо, все работает! Правда я делал справа под прямым эфиром
  • pskk
  • 0
avatar
А для Ls 0.4.2 последний пункт в конфиге прописывается?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.