Хак модуля последних объявлений

1061
Многие, наверное, заметили, что в модуле последних объявлений выводится только заголовок и страна с датой. А как быть, если мы хотим, чтобы в модуле также выводился и текст объявления?
В файле mod_latestboard.tpl имем следующий код:
Код PHP:
{if $is_items}
<ul class="new_board_items">
	{foreach key=tid item=item from=$items}
		<li {if $item.is_vip}class="vip"{/if}>
            <a href="/board/read{$item.id}.html">{$item.title}</a> — {$item.pubdate} {if $cfg.showcity}- <span class="board_city">{$item.city}</span>{/if}
		</li>
	{/foreach}
</ul>
{else}
<p>{$LANG.LATESTBOARD_NOT_ADV}</p>
{/if}
В нем есть смарти разметка:
{$item.title} - Заголовок объявления
{$item.pubdate} - Дата публикации
{$item.city} - Город
В стандартном шаблоне не выводится тект объявления. Для того, чтоб это поправить вживим уже имеющийся смарти тег:
{$item.content} - Переменная содержит полный текст объявления.
Все бы хорошо, да не очень, если учесть, что объявления могут быть очень большими по длине текста, поэтому его нужно обрезать. Конечно, для этого потребуется организация функции обрезки текста. И в смати она имеется!
{$item.content|truncate:х}, где х - любое целое число, если не вводить параметр {$item.content|truncate}, то за х будет принято 80 символов.
Измененный модуль может выглядеть так:
Код PHP:
{if $is_items}
<ul class="new_board_items">
	{foreach key=tid item=item from=$items}
		<li {if $item.is_vip}class="vip"{/if}>
            <a href="/board/read{$item.id}.html">{$item.title}</a> — {$item.pubdate} <div>{$item.content|truncate}</div>{if $cfg.showcity}- <span class="board_city">{$item.city}</span>{/if}
		</li>
	{/foreach}
</ul>
{else}
<p>{$LANG.LATESTBOARD_NOT_ADV}</p>
{/if}
DIV лучше оформить под свой шаблон, в truncate указать свой параметр длинны строки в символах.
Данная запись не является чем-то сверхординарным и предназначена тем, кто плохо разбирается как в двиге, так и в кодинге.
Табы комментирования через сайт, через контакт и фейсбук | Хак фотоальбома - добавляем демотиватор!
Комментарии (9)
krz 26 октября 2011 в 17:02 0
не знаете как сделать превью в версии 1.7, то что тут выкладывали не работает в 1.7
Telema93 26 октября 2011 в 17:06 0
Выкладываю для актуальной верси 1.8
Зачем превью, когда и так ясно?
krz 26 октября 2011 в 18:07 0
нууу... а зачем текст если он в модуле будет обрезан и там будет символов 30-50 , и практически будет не читабелен, когда в принципе по титлу будет всё ясно, и если заинтересует пользователя то в любом случае ему надо перейти к полному объявлению?? (а если не обрезать , то я думаю мало кто захочет чтоб на главной было весь текст объявления, например продажа компа - все описать , все детали, это пол главной займет только одно объявление, а если три?) Тут так к половине хаков и модулей можно придраться....
Telema93 26 октября 2011 в 18:18 0
делал для одного ресурса, там на главной странице именно модуль объявлений, как стандартная страница. поэтому потребовался вывод в виде строки в 140 символов. вот и выложил решение. мож кому нужно будет.
krz 26 октября 2011 в 18:36 0
да я понял, любые хаки это отлично))) просто вы сами ответили для одного портала , но таких будет мало - у каждого портала свои замыслы. Превью вообще никакой смысловой нагрузки не дает, только для красоты и не более, но для моего пригодилось бы. Вот поэтому я спросил возможно вы знаете))) Так что если задел чем то , то извиняйте )
Telema93 26 октября 2011 в 19:40 0
а! я вас не понял, превью картинки объявления! <img class="bd_image_small" src="/images/board/small/{$con.file}" border="0" alt="{$con.title}"/> это в компоненте <img class="bd_image_small" src="/images/board/small/{$item.file}" border="0" alt="{$item.title}"/> по идее должно быть в модуле, но не уверен, что смарти прописан для него
Евгений Фоменко 27 октября 2011 в 20:53 +1
Привет. Спасибо за подсказки по смарти - из поста и объявлений уже можно что-то сварганить )))
Спасибо, на досуге подумаю о удобной для себя реализации данного хака.

Где бы почитать о всех функциях, реализованных в двиге на уровне тегов смарти?
Telema93 27 октября 2011 в 23:27 0
на русском ничего толкового не встречал, или много воды, или сухо до ужаса
Maximov 28 октября 2011 в 00:05 +1