Автообрезка длинных блогов. типа хак...

#1 18 марта 2012 в 06:21
Привет Всем!

Решил поделится небольшим но наверное полезным хаком блогов .

Если пользователи создают блоги и случайно (или специально) забывают вставить Разделитель, в связи с чем страничка Последнее в блогах может стать оооччееньь большой…
Тоже самое будет и при просмотре записей выбранного блога ..

Где то на форуме встречал решение, но там полностью убиралась возможность пользователю самостоятельно вставлять CUT и делалось автообрезание по кол-ву символов.

Я решил оставить пользователям обрезалку,
а если они забыли — то пост автоматом обрежется и появится — Читать далее ...

Решение очень простое:

открываем components/blogs/Frontend.php

находим каждую строчку (их должно быть ~3):

  1. $msg = $model->getPostShort($msg, $post['url']);
и вставляем сразу после нее :

  1. $post['cata'] = 1;
далее идем в templates —
com_blog_view_posts.tpl и в com_blog_view.tpl
находим там строчку:
  1. <div class="blog_entry_text">{$post.msg}
и меняем ее на это :

  1.  
  2. {if $post.cata}
  3. <div class="blog_entry_text">{$post.msg}
  4. {else}
  5. <div class="blog_entry_text">{$post.msg|truncate:380}
  6.  
  7.  
  8. <div class="blog_cut_link"><a href="{$post.url}">Читать далее......</a></div>
  9.  
  10. {/if}
  11.  
Ну а цифра — 380 это кол-во символов которое останется в анонсе, если пользователь забыл или не захотел сам разделить пост ..

Все. теперь у админа будет немного поменьше ручной работы ))… smoke

ps Не забудьте сделать резерв перед изменениями!
#2 23 июля 2012 в 00:57
А может лучше добавить в этот текст — и оставить в анонсе не менее 500 символов
или добавить в код проверку флага который если уже нажали то равен 1 а если нет то вставляем автоматом
#3 23 июля 2012 в 01:25

Зачем лишний гемор если режет автомат...

SVD
Вы же написали сами — зачем, чтобы дублежа небыло
#4 23 июля 2012 в 04:28

или добавить в код проверку флага который если уже нажали то равен 1 а если нет то вставляем автоматом

eoleg
так вот же оно :

{if $post.cata}

KS

т.е. если запись не берется через $model->getPostShort
то соответственно и $post.cata будет = false
и автообреза не будет.

А если в записи нет ручного обреза то $post.cata будет = 1 и сработает truncate


Все хорошо работает, вот только есть и минусы…
Визуально все ок, а вот в коде бывают не закрытые теги ..
Редко конечно, но все же ..
Еще не разбирался. Если честно лень )), и так устраивает ))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.