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

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

  • Завсегдатай
  • 1276
  • 148 / 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

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

ArtHodorev

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

lalalag

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

Serg_

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

Gover

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

Кнопка быстрого просмотра материала на сайте

Автор Mick_20

Ответов: 6
Просмотров: 131
Последний ответ 07.12.2017, 10:46:51
от Mick_20
Адрес изображения в модуле при открытии материала в блоге категории меняется

Автор leonid.m

Ответов: 4
Просмотров: 85
Последний ответ 05.12.2017, 01:36:35
от leonid.m
Изменить сортировку в блоге с подкатегориями

Автор Леон

Ответов: 3
Просмотров: 142
Последний ответ 01.12.2017, 23:04:59
от Леон
Автоматическое ограничение количества символов вводного текста

Автор Toxa33

Ответов: 25
Просмотров: 7992
Последний ответ 30.11.2017, 15:50:39
от Леон
Разметка материала

Автор Lepricon

Ответов: 10
Просмотров: 109
Последний ответ 21.11.2017, 21:35:55
от Lepricon