LsBlocks: Как вывести публикации из определенных блогов в разные места в шаблоне
19

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, // указывает не выводить данные публикации в Прямом эфире (чтобы не получалось масло-масленное)
- 0
- 01 сентября 2010, 19:06
- B1gBossss
Помогите, всё делаю по инструкции, плагин lsnlocks соит, все стандартные модули этого плагина работает, но как только в настройках добавляю строчку
Выводится ошибка:
'Relizs'=>array('params'=>array('plugin'=>'lsblocks'), 'priority'=>60),Выводится ошибка:
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 13 at /var/www/virtual/planetsecurity.org.ua/htdocs/ls/plugins/lsblocks/classes/modules/unit/mapper/Unit.mapper.class.php line 54
Array ( [code] => 1064 [message] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 13 [query] => SELECT topic_id FROM livestreet_topic WHERE topic_publish = 1 AND topic_date_add >= '1915-04-01 19:00:00' AND topic_rating >= 0 ORDER BY topic_id DESC LIMIT 0, NULL [context] => /var/www/virtual/planetsecurity.org.ua/htdocs/ls/plugins/lsblocks/classes/modules/unit/mapper/Unit.mapper.class.php line 54 )
Комментарии (10)
RSS свернуть / развернуть