LsBlocks: Как вывести публикации из определенных блогов в разные места в шаблоне
1.Создать файл BlockRelizs.class.php в /classes/lsblocks/(где Relizs, можете вставить свое название, меняйте во всех файлах слова Relizs или relizs) с кодом
<?php
/*---------------------------------------------------------------------------
* author: k2fl
* LiveStreet version: 0.4.1
* plugin: LsBlocks
* version: 1.1
* http://livestreet.ru/profile/k2fl/
* license: GNU GPL v2, http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*--------------------------------------------------------------------------*/
/*
* Блок: Релизы
*/
class PluginLsblocks_BlockRelizs extends Block {
public function Exec() {
$mTime = Config::Get('plugin.lsblocks.relizs.time');
if ($aRelizs = $this->PluginLsblocks_Unit_GetLastTopicsByBlogs(date("Y-m-d H:00:00", time()-($mTime > 0 ? $mTime : 60*60*24*350*100)), Config::Get('plugin.lsblocks.relizs.blogs'), Config::Get('plugin.lsblocks.relizs.count'))) {
$this->Viewer_Assign('aRelizs', $aRelizs);
}
}
}
?>
2.В config.php добавить
$config['relizs'] = array(
'count' => 7, // кол-во выводимых публикаций
'time' => 0, // Время в минутах, за которое выбираются топики. Если не задано, то топики выводятся за все время.
'blogs' => array(62), // список id-и блогов из которых выводить публикации
);
и
'Relizs'=>array('params'=>array('plugin'=>'lsblocks'), 'priority'=>60),
3.Создать файл block.Relizs.tpl в /templates/skin/default/ с кодом
<div class="block blogs">
<div class="tl"><div class="tr"></div></div>
<div class="cl"><div class="cr">
<h1 style="background:url(/templates/skin/new/images/dota.gif) no-repeat right 5px">Гайды</h1>
<div class="block-content">
<ul class="list">
{foreach from=$aRelizs item=oTopic name="lst"}
{assign var="oUser" value=$oTopic->getUser()}
{assign var="oBlog" value=$oTopic->getBlog()}
<li><div class="total">{$oTopic->getCountRead()}</div><a href="{$oTopic->getUrl()}" class="stream-topic">{$oTopic->getTitle()}</a></li>
{/foreach}
</ul>
</div>
<div class="right"><a href="{router page='blog/gaid'}">Все гайды</a> | <a href="{router page='rss'}blog/gaid/">RSS</a></div>
</div></div>
<div class="bl"><div class="br"></div></div>
</div>
— Можно так создать несколько выводов и раскидать их по блокам
1.В config.php добавить
'top' => array(
'Relizs'=>array('params'=>array('plugin'=>'lsblocks'), 'priority'=>60),
),
2.В шаблоне (где вы хотите вывести) вставить
{if isset($aBlocks.top)}
{foreach from=$aBlocks.top item=oBlock}
{if $oBlock.type == 'block'}
{insert name="block" block=`$oBlock.name` params=`$oBlock.params`}
{/if}
{if $oBlock.type == 'template'}
{include file=`$oBlock.name` params=`$oBlock.params`}
{/if}
{/foreach}
{/if}
{/if}
p.s. не проверял работает ли, если это делать блокировка, которая не позволяет выводить эти топики в прямой эфир, а именно
'hide_in_stream' => true, // указывает не выводить данные публикации в Прямом эфире (чтобы не получалось масло-масленное)
10 комментариев
Выводится ошибка:
оставте только те блоки, которые вам нужны.