Список статей блога WebAsyst ShopScript
Список статей блога, честно говоря, в webasyst сделан довольно бестолково. Лично мне больше нравится, как сделано в WordPress — с возможностью убирать часть поста»под кат», т.е. в основном списке публиковать только часть статьи и ссылку «читать дальше» для тех, кто заинтересовался.
Вообще есть один или несколько плагинов, продаваемых умельцами, которые позволяют делать такую ленту с анонсами и даже прикреплять картинку к анонсу. Этот вариант я запомнил и решил, что если быстро ничего не придумаю, то куплю.
Сначала решил, что самое простым решением будет оборачивать часть статьи в DIV и в CSS прописать ему свойство ‘display:none;’. Грубо, но должно получиться. Единственное, что меня остановило — статьи пишу не я, а объяснять как «оборачивать в DIV» мне очень не хочется. И еще контролировать, чтоб вложенность тэгов соблюдалась.
Тогда я обратил внимание, что при написании постов никто не пользуется тэгом HR (горизонтальная линия) и решил, что это будет отличный разделитель. Кнопка для вставки этого тэга есть в стандартном визуальном редакторе, так что проблем у авторов статей возникнуть не должно.
Файл с шаблоном списка статей (/published/SC/html/scripts/templates/news.frontend.list.tpl.html) поменял как-то так: на показ статей там цикл {section}{sectionelse}{/section}. Вот сразу после {section} и добавил пару строк — тут создаются полезные переменные: URL статьи и ссылка «читать дальше».
{assign var=article_url value="?ukey=news&blog_id="|cat:$news_posts[i].NID|set_query_html} {assign var=readmore value="<p class=\"readmore\"><a href=\""|cat:$article_url|cat:"\">Читать полностью »</a></p>"}
а там, где выводится текст новости, т.е. просто показывается переменная $news_posts[i].textToPulication, заменил ее на 2 такие строки:
{assign var=textToPublication value=$news_posts[i].textToPublication|regex_replace:"/[\n\r]/iu":""} {$textToPublication|regex_replace:"/<hr.*>.*/iu":$readmore}
После этого в файле шаблона, который отвечает за показ одной статьи блога (/published/SC/html/scripts/templates/news.frontend.post.tpl.html) добавил код, просто убирающий сам тэг HR. Вместо
{$news_posts[0].textToPublication}
написал вот так:
{$news_posts[0].textToPublication|regex_replace:"/<hr.*>/":""}
Вот и все. Обошлись малой кровью, все довольны, все смеются :)

