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

+11
1.75K
Многие, наверное, заметили, что в модуле последних объявлений выводится только заголовок и страна с датой. А как быть, если мы хотим, чтобы в модуле также выводился и текст объявления?
В файле mod_latestboard.tpl имем следующий код:
  1. {if $is_items}
  2. <ul class="new_board_items">
  3. {foreach key=tid item=item from=$items}
  4. <li {if $item.is_vip}class="vip"{/if}>
  5. <a href="/board/read{$item.id}.html">{$item.title}</a>{$item.pubdate} {if $cfg.showcity}- <span class="board_city">{$item.city}</span>{/if}
  6. </li>
  7. {/foreach}
  8. </ul>
  9. {else}
  10. <p>{$LANG.LATESTBOARD_NOT_ADV}</p>
  11. {/if}
В нем есть смарти разметка:
{$item.title} — Заголовок объявления
{$item.pubdate} — Дата публикации
{$item.city} — Город
В стандартном шаблоне не выводится тект объявления. Для того, чтоб это поправить вживим уже имеющийся смарти тег:
{$item.content} — Переменная содержит полный текст объявления.
Все бы хорошо, да не очень, если учесть, что объявления могут быть очень большими по длине текста, поэтому его нужно обрезать. Конечно, для этого потребуется организация функции обрезки текста. И в смати она имеется!
{$item.content|truncate:х}, где х — любое целое число, если не вводить параметр {$item.content|truncate}, то за х будет принято 80 символов.
Измененный модуль может выглядеть так:
  1. {if $is_items}
  2. <ul class="new_board_items">
  3. {foreach key=tid item=item from=$items}
  4. <li {if $item.is_vip}class="vip"{/if}>
  5. <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}
  6. </li>
  7. {/foreach}
  8. </ul>
  9. {else}
  10. <p>{$LANG.LATESTBOARD_NOT_ADV}</p>
  11. {/if}
DIV лучше оформить под свой шаблон, в truncate указать свой параметр длинны строки в символах.
Данная запись не является чем-то сверхординарным и предназначена тем, кто плохо разбирается как в двиге, так и в кодинге.
0
bondar bondar 12 лет назад #
не знаете как сделать превью в версии 1.7, то что тут выкладывали не работает в 1.7
0
Telema93 Telema93 12 лет назад #
Выкладываю для актуальной верси 1.8
Зачем превью, когда и так ясно?
0
bondar bondar 12 лет назад #
нууу... а зачем текст если он в модуле будет обрезан и там будет символов 30-50 , и практически будет не читабелен, когда в принципе по титлу будет всё ясно, и если заинтересует пользователя то в любом случае ему надо перейти к полному объявлению?? (а если не обрезать , то я думаю мало кто захочет чтоб на главной было весь текст объявления, например продажа компа - все описать , все детали, это пол главной займет только одно объявление, а если три?) Тут так к половине хаков и модулей можно придраться....
0
Telema93 Telema93 12 лет назад #
делал для одного ресурса, там на главной странице именно модуль объявлений, как стандартная страница. поэтому потребовался вывод в виде строки в 140 символов. вот и выложил решение. мож кому нужно будет.
0
bondar bondar 12 лет назад #
да я понял, любые хаки это отлично))) просто вы сами ответили для одного портала , но таких будет мало - у каждого портала свои замыслы. Превью вообще никакой смысловой нагрузки не дает, только для красоты и не более, но для моего пригодилось бы. Вот поэтому я спросил возможно вы знаете))) Так что если задел чем то , то извиняйте )
0
Telema93 Telema93 12 лет назад #
а! я вас не понял, превью картинки объявления! <img class="bd_image_small" src="/images/board/small/{$con.file}" alt="{$con.title}"/> это в компоненте <img class="bd_image_small" src="/images/board/small/{$item.file}" alt="{$item.title}"/> по идее должно быть в модуле, но не уверен, что смарти прописан для него
+1
Евгений Фоменко Евгений Фоменко 12 лет назад #
Привет. Спасибо за подсказки по смарти - из поста и объявлений уже можно что-то сварганить )))
Спасибо, на досуге подумаю о удобной для себя реализации данного хака.

Где бы почитать о всех функциях, реализованных в двиге на уровне тегов смарти?
0
Telema93 Telema93 12 лет назад #
на русском ничего толкового не встречал, или много воды, или сухо до ужаса

Еще от автора

[Хак] ICQ чат на сайте
Помнится, был раньше такой мессенджер Multul (http://instantcms.ru/blogs/tanatognozija/plagin-mesedzher.html), который скончался.
IP Cloudflare и решение на PHP
Нашел другие файлы, где заменить также!!! Извиняюсь, не досмотрел... Есть такой замечательный CDN сервис - Cloudflare.
Хак - Новое в блогах (mod_latestblogs) - вывод части текста записи в модуле
Мне не очень нравился вывод в модуле Новое в блогах (mod_latestblogs) только названия записи, количества комментариев, автора и названия блога, поэтом
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.