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

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

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

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

меняете на

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

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

midav

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

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

Efanych

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

ArtHodorev

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

lalalag

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

Serg_

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

Gover

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

Избранное для материала

Автор bantell

Ответов: 8
Просмотров: 170
Последний ответ 23.02.2018, 21:53:52
от beliyadm
Отображение автора изменения материала

Автор Ret32

Ответов: 9
Просмотров: 151
Последний ответ 16.02.2018, 13:04:25
от Ret32
Прямая загрузка изображений материала (в один клик)

Автор bantell

Ответов: 7
Просмотров: 87
Последний ответ 08.02.2018, 12:49:40
от bantell
Нет отступа в блоге

Автор phvsfpgs

Ответов: 16
Просмотров: 120
Последний ответ 01.02.2018, 12:14:45
от kern.USR
Не видно самого материала на любой странице

Автор genzhi

Ответов: 1
Просмотров: 112
Последний ответ 18.01.2018, 12:32:43
от genzhi