0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 1240 Просмотров
*

ArtHodorev

  • Новичок
  • 2
  • 0 / 0
Здравствуйте все. Столкнулся с ситуацией, в которой мне необходимо сократить слова или символы интротекста в блоге категории до определенного количества.
Выводится анонс, на сколько я понял, в файле "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

  • Завсегдатай
  • 1329
  • 157 / 6
В файле blog_item.php находите и заменяете код:

Код: php
<?php echo $this->item->introtext; ?>

меняете на

<?php echo JHtml::_('string.truncate', ($this->item->introtext), 200); ?>

где 200 - нужное количество символов
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Тогда уж заодно можно вырезать HTML теги .

Код: php
<?php echo JHtml::_('string.truncate', ($this->item->introtext), 200, true, false); ?>
Ответы на вопросы по CSS . Откройте для себя Firebug
*

Efanych

  • Глобальный модератор
  • 4646
  • 638 / 0
  • Меняю свою жизнь на 360°!
Тогда уже интротекст вообще нафиг не нужен. Обрезайте полный. Заодно и readmore ставить не нужно будет...
Создание сайтов, шаблонов, помощь в решении проблем.
*

ArtHodorev

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

lalalag

  • Захожу иногда
  • 162
  • 0 / 3
а плагин какой то есть? ато не хочется пилить это каждый раз после обновлений
*

Serg_

  • Захожу иногда
  • 170
  • 24 / 1
  • Skype: smile_bot (Запорожье)
Цитировать
не хочется пилить это каждый раз после обновлений
Почитайте про переопределения Joomla.
Вы очень сильно себе упростите дальнейшую работу с ней.
К примеру, можно в папку шаблона скопировать com_content/category/blog_item.php отредактировать его и обновляться спокойненько.
*

Gover

  • Захожу иногда
  • 197
  • 3 / 0
Может проще воспользоваться специальным плагином http://gruz.org.ua/en/extensions/autoreadmore-plugin-for-joomla.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавить div в структуру материала

Автор Pryan

Ответов: 3
Просмотров: 138
Последний ответ 15.09.2018, 15:41:08
от lexxbry
Дата создания материала с фронтенда

Автор Invictus

Ответов: 0
Просмотров: 76
Последний ответ 05.09.2018, 09:25:07
от Invictus
Резко выросло число просмотров материала

Автор Евгений Кононов

Ответов: 3
Просмотров: 145
Последний ответ 01.09.2018, 13:50:16
от dmitry_stas
Как добавить alias категории материала к классу элемента?

Автор timofe

Ответов: 18
Просмотров: 285
Последний ответ 09.08.2018, 17:47:53
от lexxbry
Метки (теги) в блоге категорий. Как вывести?

Автор timofe

Ответов: 3
Просмотров: 128
Последний ответ 09.08.2018, 09:23:21
от lexxbry