Форум русской поддержки Joomla!® CMS
29.07.2017, 15:48:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как сократить количество символов или слов анонса материала в блоге?

 (Прочитано 808 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ArtHodorev
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« : 26.08.2015, 15:11:17 »

Здравствуйте все. Столкнулся с ситуацией, в которой мне необходимо сократить слова или символы интротекста в блоге категории до определенного количества.
Выводится анонс, на сколько я понял, в файле "blog_item.php" вот в этом месте:
Код:
<?php if (!$params->get('show_intro')) : ?>
<?php echo $this->item->event->afterDisplayTitle; ?>
<?php endif; ?>
<?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->item->introtext; ?>

Я нашел в сети пару примеров решения подобной проблемы, но моих знаний в php не достаточно, чтобы адаптировать эти решения под свои нужды.
Решение с сокращением вывода анонса посимвольно:
Код:
<? $gij=mb_substr($product->short_description, 0, 300). '...';?>
            <?php echo $gij;?>
Но тут, по всей видимости, исправлялся какой-то модуль интернет-магазина (переменная $product меня надолкнула на эту мысль).

И второе решение. Уже по сокращению слов:
Код:
<?$str=($product->short_description);
            //разбиваем на массив
             $arr_str = explode(" ", $str);
            //берем первые 6 элементов
            $arr = array_slice($arr_str, 0, 12);
            //превращаем в строку
            $new_str = implode(" ", $arr);
 
           // Если необходимо добавить многоточие
            if (count($arr_str) > 12) {
            $new_str .= '...';
            }
            echo $new_str;//Выведет 'Этот текст имеет большое количество пробелов и...'?>

Мне подойдет любой вариант выхода из ситуации. Помогите пожалуйста.
Записан
fbr
Живу я здесь
******

Репутация: +145/-6
Offline Offline

Сообщений: 1316


« Ответ #1 : 26.08.2015, 16:13:34 »

В файле blog_item.php находите и заменяете код:

Код
<?php echo $this->item->introtext; ?>
 
меняете на
 
<?php echo JHtml::_('string.truncate', ($this->item->introtext), 200); ?>

где 200 - нужное количество символов
Записан
midav
Живу я здесь
******

Репутация: +114/-1
Offline Offline

Пол: Мужской
Сообщений: 961



« Ответ #2 : 26.08.2015, 20:11:29 »

Тогда уж заодно можно вырезать HTML теги .

Код
<?php echo JHtml::_('string.truncate', ($this->item->introtext), 200, true, false); ?>
 
Записан
Efanych
Группа развития
*****

Репутация: +605/-0
Offline Offline

Пол: Мужской
Сообщений: 4373



« Ответ #3 : 26.08.2015, 20:21:39 »

Тогда уже интротекст вообще нафиг не нужен. Обрезайте полный. Заодно и readmore ставить не нужно будет...
Записан
ArtHodorev
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #4 : 27.08.2015, 10:20:14 »

fbr
Спасибо большое, все получилось. Небольшой вопрос: после текста теперь появляется многоточие и при чем на новой строке. Само многоточие меня не парит, но было бы здорово загнать его сразу после последнего символа без перевода на новую строку. Это возможно сделать?
Записан
lalalag
Осваиваюсь на форуме
***

Репутация: +0/-3
Offline Offline

Сообщений: 136


« Ответ #5 : 02.06.2017, 12:09:46 »

а плагин какой то есть? ато не хочется пилить это каждый раз после обновлений
Записан
Serg_
Осваиваюсь на форуме
***

Репутация: +24/-1
Offline Offline

Пол: Мужской
Сообщений: 175


Skype: smile_bot (Запорожье)


« Ответ #6 : 03.06.2017, 01:21:08 »

Цитировать
не хочется пилить это каждый раз после обновлений
Почитайте про переопределения Joomla.
Вы очень сильно себе упростите дальнейшую работу с ней.
К примеру, можно в папку шаблона скопировать com_content/category/blog_item.php отредактировать его и обновляться спокойненько.
Записан
Gover
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 184



« Ответ #7 : 04.06.2017, 15:46:10 »

Может проще воспользоваться специальным плагином http://gruz.org.ua/en/extensions/autoreadmore-plugin-for-joomla.html
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet