Обработка текста на уровне классов, как расширение функционала - как?
Приветствую!
На сайте (LS 0.4) делаю дополнительный блок, в котором вывожу 6 последних постов.
И уже в самом шаблоне block_list6.tpl занимаюсь обработкой текста, а именно из$oTopic->getTextSource() получаю две формализованные сущности:
1) Первую картинку по тексту (если есть в составе первых 500 символов) и
2) Текст не более 500 символов.
Картинку из текста я получаю через самописный модификатор Smarty — render_anonce.
А обрезку текста я сделал через стандартный модификатор truncate
Мне кажется это не совсем красивый и правильный способ, может подскажете как сделать более изящней и правильнее? Я бы сделал такую обработку на уровне класса и возвращал уже в шаблон готовые данные, только как? Документации и примеров по LS я что то не нашел.
P.S. И как бы еще на этом уровне поставить фильтр, чтоб выводились только посты (не ссылки и не опросы)
Спасибо!
На сайте (LS 0.4) делаю дополнительный блок, в котором вывожу 6 последних постов.
class BlockStream2 extends Block {
public function Exec() {
if ($oTopics=$this->Topic_GetTopicsLast(6)) {
$this->Viewer_Assign('oTopics',$oTopics);
$sTextResult=$this->Viewer_Fetch("block_list6.tpl");
$this->Viewer_Assign('sStreamTopics',$sTextResult);
}
}
}
И уже в самом шаблоне block_list6.tpl занимаюсь обработкой текста, а именно из
1) Первую картинку по тексту (если есть в составе первых 500 символов) и
2) Текст не более 500 символов.
{foreach from=$oTopics item=oTopic name="cmt"}
{assign var="oUser" value=$oTopic->getUser()}
{assign var="oBlog" value=$oTopic->getBlog()}
<p>1) {$oTopic->getTextSource()|truncate:500|render_anonce:true}</p>
<p>2) {$oTopic->getTextSource()|truncate:500|strip_tags:false|nl2br}</p>
{/foreach}
Картинку из текста я получаю через самописный модификатор Smarty — render_anonce.
А обрезку текста я сделал через стандартный модификатор truncate
Мне кажется это не совсем красивый и правильный способ, может подскажете как сделать более изящней и правильнее? Я бы сделал такую обработку на уровне класса и возвращал уже в шаблон готовые данные, только как? Документации и примеров по LS я что то не нашел.
P.S. И как бы еще на этом уровне поставить фильтр, чтоб выводились только посты (не ссылки и не опросы)
Спасибо!
0 комментариев