Автоматический разделитель в блогах (Читать далее...)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Как сделать автоматическую обрезку поста в блоге

#1 18 октября 2011 в 10:45
Вопрос: Как сделать автоматическую обрезку поста в блоге (автоматический разделитель "читать далее", cut, автоматический анонс, ограничение длины поста).
Мои пользователи не умеют пользоваться редактором в блогах.

Смотрела здесь (http://instantcms.ru/blogs/idei-i-problemy/kak-ploho-bez-knopki-chitat-dalee.html) — старый пост. Ни одна ссылка не работает. здесь — старый пост без ответа.

Может уже придумали — не могу найти. Подскажите.
Спасибо.
#2 18 октября 2011 в 11:05

Мои пользователи не умеют пользоваться редактором в блогах.

Katerina
Печально ..., но попытаться научить нужно…
#3 18 октября 2011 в 15:13
Я каждый день пишу кучу писем с ссылкой на объяснение с картинками и красными стрелочками "Жми сюда". Но каждый день регистрируются новые пользователи, которым нужно объяснять заново. 40% моих посетителей из области, которые не знают как сохранить картинку на компьютер. Я вообще, не знаю как они умудряются попасть на мой сайт, потому как многие и поиском пользоваться не умеют. "Как сделать, чтобы слова были синенькими" — стандартный вопрос у нас на сайте (про ссылки).
С объявлением нового конкурса в блогах, благодаря новому модулю от Max, появятся еще сотня новых блогов.
Я просто опухну...
Можно, конечно плюнуть, и не заморачиваться с разделителем, но писать пользователи могут много, посты бывают более 3000 знаков.
#4 18 октября 2011 в 15:35
Katerina, сделать как в статьях — отдельное поле анонс, отдельное поле основной пост, при сохранении склеивать.
#5 18 октября 2011 в 16:22
Спасибо большое за предложение. Сначала хотела согласится, потом подумала и проанализировав ситуацию, говорю НЕТ, это не выход из моей ситуации.

Объясню. Из десяти статей, висящих в данный момент на модерации в админке (от 10 разных пользователей) только в двух написан анонс. Причем, первый анонс состоит из двух слов и дублирует название. Второй анонс — это первое предложение из полного текста. Лента блогов будет не ахти смотреться.
Мне бы автоматом…
#6 18 октября 2011 в 16:49
Хорошо.
А если пойти от обратного: Разделитель из блогов вообще убрать. Но в ленте блогов прописать, чтобы выводились первые 300 знаков из каждого поста.
#7 18 октября 2011 в 17:01


Хорошо.
А если пойти от обратного: Разделитель из блогов вообще убрать. Но в ленте блогов прописать, чтобы выводились первые 300 знаков из каждого поста.

Katerina

Вам нужно готовое решение или просто описание как сделать ?

если описание то

ищем в файле www\components\blogs\model.php фукцию " public function getPostShort"
перепишем регулярное выражение чо бы он брал все, а не только текст из тега cut, и далее прописываем функцию по обрезке первых Нных количества символов, а в файле шаблона дописываем ссылку на читать далее.

П.С. непробовал но на сколько понимаю такой способ будет неочень выгоден если в этих первых символах окажется фото и его код обрежется.
#8 18 октября 2011 в 17:25
Задача автоматической разбивки осложняется тем, что отсчитав нужное количество символов мы можем попасть на середину какого-нибудь тега. Например в этом месте автор вставлял рисунок, цитату или код.
#9 18 октября 2011 в 17:30
Это понятно. Но символов не так много: url /url, IMG /IMG, b /b…
Нельзя прописать так, чтобы они читались целиком?
#10 18 октября 2011 в 17:38

Но символов не так много: url /url, IMG /IMG, b /b…

Katerina
Пара десятков,
причем большинство из них могут содержать в себе по несколько строк теста.
#11 18 октября 2011 в 17:44
Я имела ввиду в коде: Если встретится url, то выводить до конца /url и считать это за 1 символ. Или так не делается? Могу тупить.

Хотя, таким способом можно будет 300 фото в ленту вывести, если они все за один знак будут считаться :)Надо как-то по другому.
#12 18 октября 2011 в 17:56
… а еще этот /url может вместе со всем предложением быть обернуть кодом B которое вместе со всем абзацам выровнено по центру align'ом

В общем задача нетривиальная
#13 18 октября 2011 в 18:10
По хорошему, нужны только картинки, причем одна! Все остальное игнорировать. Если картинка обернута другим кодом — пусть код ее тоже игнорируют. Не велика потеря.
#14 20 октября 2011 в 16:34
Мда…
Просто подсказать ни у кого не получается. Каждый решил поумничать, пишет свой способ решения, но только не тот, о котором спрашивает ТС.
Katerina, вот решение:
Откройте файл ../templates/_default_/components/com_blog_view_posts.tpl

Найдите строку с кодом (для версии 1.8 это 60 строка)
  1. <div class="blog_entry_text">{$post.msg}</div>
Замените ту строку на этот код
  1.  
  2. <div class="blog_entry_text">{$post.msg|truncate:300}</div>
  3. <a href="{$post.url}">Читать далее...</a><br />
  4.  
Цифру 300 замените на то кол-во символов, которое вам нужно.

Удачи! Всем.
#15 20 октября 2011 в 17:02
А работает!
Картинки не обрезает. Просто выкидывает их за кат целиком и все.

Спасибо большое, Александр.

Только у меня еще вопрос. В некоторых записях появились "читать далее" 2 раза.

В основном это короткие записи такого плана:
1. 2 слова, кат (поставленный пользователем), потом ссылка на сторонний ресурс.
2. картинка, кат (поставленный пользователем), картинка.
Здесь видимо срабатывает кат (поставленный пользователем), а потом кат автоматический.


Можно от них как-нибудь избавится от автоматического ката, если запись менее 300 знаков?
Заранее спасибо.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.