Similar: Вывод похожих публикаций под топиком
17
1.В /templates/skin/default/block.similarTopics.tpl заменит код на
{if $aSimilarTopics|@count}
<div class="block stream" style="padding-left:40px;padding-bottom:15px;">
<span style="font-weight:bold;color:#66b746;">
{$aLang.block_similar_articles_title}</span>
<div class="block-content">
<ul class="stream-content">
{foreach from=$aSimilarTopics item=oTopic name="cmt"}
{assign var="oBlog" value=$oTopic->getBlog()}
{assign var="oUser" value=$oTopic->getUser()}
<li {if $smarty.foreach.cmt.iteration % 2 == 1}class="even"{/if}>
<a href="{$oUser->getUserWebPath()}" class="stream-author">{$oUser->getLogin()}</a> →
<a href="{$oTopic->getUrl()}" class="stream-topic">{$oTopic->getTitle()|escape:'html'}</a>
<span> ({$oTopic->getCountComment()})</span> РІ <a href="{$oBlog->getUrlFull()}" class="stream-blog">{$oBlog->getTitle()|escape:'html'}</a>
</li>
{/foreach}
</ul>
</div>
</div>
{/if}
2.Меняем на этот код все в файле HookSimilar.class.php
<?php
/**
* Хук для плагина Similar
*/
class PluginSimilar_HookSimilar extends Hook {
/**
* Регистрируем хук на topic_show
*
* @return void
*/
public function RegisterHook() {
$this->AddHook("topic_show", "topicShowed", __CLASS__);
}
/**
* Получаем список похожих топиков, передаем их в Viewer и добавляем нужный блок в сайдбар
*
* @param array $aVars
*/
function topicShowed($aVars) {
if(isset($aVars['oTopic'])) {
$this->Viewer_AddBlock(
'left',
'similarTopics',
array('plugin' => 'similar', 'oTopic' => $aVars['oTopic']),
Config::Get('plugin.similar.topics_block_priority')
);
}
}
}3.В topic.tpl после
{hook run='topic_show_end' topic=$oTopic}
</div>добавить
<div>
{if isset($aBlocks.left)}
{foreach from=$aBlocks.left 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}
</div>
- 0
- 01 сентября 2010, 19:33
- B1gBossss
Так templates/skin/default/block.similarTopics.tpl нету же вроде такой папки default. А в том же developer нету такого файла block.similarTopics.tpl
чуток не дописал оказывается, меняем все в файле /classes/hooks/HookSimilar.php на этот код
<?php
/**
* Хук для плагина Similar
*/
class PluginSimilar_HookSimilar extends Hook {
/**
* Регистрируем хук на topic_show
*
* @return void
*/
public function RegisterHook() {
$this->AddHook("topic_show", "topicShowed", __CLASS__);
}
/**
* Получаем список похожих топиков, передаем их в Viewer и добавляем нужный блок в сайдбар
*
* @param array $aVars
*/
function topicShowed($aVars) {
if(isset($aVars['oTopic'])) {
$this->Viewer_AddBlock(
'left',
'similarTopics',
array('plugin' => 'similar', 'oTopic' => $aVars['oTopic']),
Config::Get('plugin.similar.topics_block_priority')
);
}
}
}
А можно так-же сделать с облаком тегов? Ну то есть, чтобы под постом был, после похожих?
А можно чтобы описание блога было над постом (в полном посте)?
Если да, то сколько это будет стоить?
А можно чтобы описание блога было над постом (в полном посте)?
Если да, то сколько это будет стоить?
из config.cfg в
удалите
облако пропадет из сайдбара
а есчли в самый низ нужно, то
вставте в footer.tpl куда понравится, к примеру после
'blocks' => array(
'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
),удалите
'tags'=>array('priority'=>50),облако пропадет из сайдбара
а есчли в самый низ нужно, то
{insert name="block" block=tags}вставте в footer.tpl куда понравится, к примеру после
{hook run='content_end'}
Если вбить в поиск, то первый же ответ приведет в каталог на страницу для скачивания: livestreet.ru/addons/140/
А как осуществлять вывод данного блока под публикацией? Как будет выглядеть код вызова, скажем, в aceBlockManager? Что-то у меня постоянно ошибки вываливаются про невозможность найти шаблон для этого модуля :(
Поясню в чем проблема:
добавил следующий код в конфиг модуля блоков
Выводится ошибка, но часть сайта грузится (до места, где должны топики выводиться):
Если что-то другое писать в конфиге — вообще сайт не грузит и один большой Фатал еррор.
добавил следующий код в конфиг модуля блоков
$config['blocks'][]=array(
'block'=>'similarTopics', // название блока
'position'=>'left', // позиционирование блока
'params'=>array(
'plugin'=>'similar',
),
);Выводится ошибка, но часть сайта грузится (до места, где должны топики выводиться):
Catchable fatal error: Argument 1 passed to PluginSimilar_ModuleSimilar::setCurrentTopic() must be an instance of ModuleTopic_EntityTopic, null given in /home/ххх/http/plugins/similar/classes/modules/similar/Similar.class.php on line 34Если что-то другое писать в конфиге — вообще сайт не грузит и один большой Фатал еррор.
Установил по инструкции на LS 0.5
Работает правда потупил немного прежде чем заработало.
Для тех кто плохо знает LS (т.е. таких как я) ) Очень подробно:
П.1
определяем стиль отображения блока
В /plugins/similar/templates/skin/ваш_шаблон/block.similarTopics.tpl (если такого файла нет, то создайте его) заменить код на:
П.2
Прописываем Hook
Заменить содержимое /plugins/similar/classes/hooks/HookSimilar.class.php на:
П.3
Определяем местоположение блока в шаблоне
В /templates/skin/ваш-шаблон/topic.tpl в нужное место, а в шаблоне default после:
Заменить на:
Код отличается от кода автора, отсутствием некоторых кавычек (с ними у меня не работало отображение похожих записей)
Работает правда потупил немного прежде чем заработало.
Для тех кто плохо знает LS (т.е. таких как я) ) Очень подробно:
П.1
определяем стиль отображения блока
В /plugins/similar/templates/skin/ваш_шаблон/block.similarTopics.tpl (если такого файла нет, то создайте его) заменить код на:
{if $aSimilarTopics|@count}
<div class="block stream" style="padding-left:40px;padding-bottom:15px;">
<span style="font-weight:bold;color:#66b746;">
{$aLang.block_similar_articles_title}</span>
<div class="block-content">
<ul class="stream-content">
{foreach from=$aSimilarTopics item=oTopic name="cmt"}
{assign var="oBlog" value=$oTopic->getBlog()}
{assign var="oUser" value=$oTopic->getUser()}
<li {if $smarty.foreach.cmt.iteration % 2 == 1}class="even"{/if}>
<a href="{$oUser->getUserWebPath()}" class="stream-author">{$oUser->getLogin()}</a> →
<a href="{$oTopic->getUrl()}" class="stream-topic">{$oTopic->getTitle()|escape:'html'}</a>
<span> ({$oTopic->getCountComment()})</span> РІ <a href="{$oBlog->getUrlFull()}" class="stream-blog">{$oBlog->getTitle()|escape:'html'}</a>
</li>
{/foreach}
</ul>
</div>
</div>
{/if}П.2
Прописываем Hook
Заменить содержимое /plugins/similar/classes/hooks/HookSimilar.class.php на:
<?php
/**
* Хук для плагина Similar
*/
class PluginSimilar_HookSimilar extends Hook {
/**
* Регистрируем хук на topic_show
*
* @return void
*/
public function RegisterHook() {
$this->AddHook("topic_show", "topicShowed", __CLASS__);
}
/**
* Получаем список похожих топиков, передаем их в Viewer и добавляем нужный блок в сайдбар
*
* @param array $aVars
*/
function topicShowed($aVars) {
if(isset($aVars['oTopic'])) {
$this->Viewer_AddBlock(
'left',
'similarTopics',
array('plugin' => 'similar', 'oTopic' => $aVars['oTopic']),
Config::Get('plugin.similar.topics_block_priority')
);
}
}
}П.3
Определяем местоположение блока в шаблоне
В /templates/skin/ваш-шаблон/topic.tpl в нужное место, а в шаблоне default после:
{hook run='topic_show_end' topic=$oTopic}
</div>Заменить на:
Код отличается от кода автора, отсутствием некоторых кавычек (с ними у меня не работало отображение похожих записей)
<div>
{if isset($aBlocks.left)}
{foreach from=$aBlocks.left 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}
</div>
Комментарии (25)
RSS свернуть / развернуть