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

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

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

 (Прочитано 504 раз)
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
Живу я здесь
******

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

Сообщений: 1250


« Ответ #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
Живу я здесь
******

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

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



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

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

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

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

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



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

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

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

Сообщений: 2


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

fbr
Спасибо большое, все получилось. Небольшой вопрос: после текста теперь появляется многоточие и при чем на новой строке. Само многоточие меня не парит, но было бы здорово загнать его сразу после последнего символа без перевода на новую строку. Это возможно сделать?
Записан
Страниц: [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