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

ArtHodorev

  • Новичок
  • 2
  • 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

  • Живу я здесь
  • 1284
  • 142
В файле blog_item.php находите и заменяете код:

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

меняете на

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

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

midav

  • Живу я здесь
  • 927
  • 113
Тогда уж заодно можно вырезать HTML теги .

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

Efanych

  • Группа развития
  • 4317
  • 605
Тогда уже интротекст вообще нафиг не нужен. Обрезайте полный. Заодно и readmore ставить не нужно будет...
Создание сайтов, шаблонов, помощь в решении проблем.
*

ArtHodorev

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

lalalag

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

Serg_

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

Gover

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

Как вывести в конец каждого материала определенный модуль (с кодом html)\?

Автор help-tend

Ответов: 12
Просмотров: 67
Последний ответ 25.09.2017, 15:14:06
от vipiusss
Ошибка при добавлении материала

Автор nosecrets

Ответов: 0
Просмотров: 35
Последний ответ 24.09.2017, 21:12:10
от nosecrets
Количество пользователей

Автор Mick_20

Ответов: 17
Просмотров: 184
Последний ответ 13.09.2017, 11:08:23
от Mick_20
Вывод материалов в блоге категории

Автор kik84

Ответов: 13
Просмотров: 140
Последний ответ 09.09.2017, 22:26:07
от KKAAZZOO
Сохранение данных из элементов формы внутри редактора материала

Автор step-di

Ответов: 0
Просмотров: 40
Последний ответ 01.09.2017, 09:36:56
от step-di