Облачный сервис для Joomla сайтов
Навигация: Главная Форум

Добро пожаловать, Гость
Пожалуйста Вход или Регистрация.    Забыли пароль?

Вступительный текст материала
(1 чел.) (1) Гость
ВнизСтраница: 1
Сообщения темы: Вступительный текст материала
#10638
Вступительный текст материала 3 г., 2 мес. назад Репутация: 0
Как сделать чтобы вступительный текст материала был строго определенное количество знаков. Нужно чтобы система автоматически после определенного количества знаков разрывала страницу и появлялась кнопка "подробнее" для прочтения полного текста. Кто может что-то посоветовать?
sagara4
Постов: 1
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться
 
#10639
Вступительный текст материала 3 г., 2 мес. назад Репутация: 26
это делается по средствам php. Такие фишки вставляют в модуля.

Лично я всегда пользуюсь easyblog и в нём по умолчанию обрезание параграфами словами или символами. Плюс от рокетов есть замечательный компонент sprocket для вывода материала с easy blog.




Обрезка текста средствами php

Обрезать текст можно по-разному. Самая простая функция-это substr.
Этой функции нужно передать 3 аргумента. Первый-сама строка,второй-с какого символа начать обрезать текст(нумерация начинается с нуля), и третий-сколько символов обрезать.
$a = 'English Message';
$b = substr($a, 0, 7);
echo $b;//Выведет 'English'
$c = substr($a,8,7);
echo $c;//Выведет 'Message'

С русским текстом такая функция не всегда прокатит, поэтому нужно использовать mb_substr. Работает она точно также.
$a = 'Сама строка,которую нужно обрезать.';
$b = mb_substr($a, 0, 4);
echo $b;//Выведет 'Сама'
$c = mb_substr($a, 5, 6);
echo $c;//Выведет 'строка'

Если мы хотим добавить многоточие в том случае, когда строка обрезана - то нужно сравнить длину строки с длинной обрезаемого текста.
$a = 'Сама строка,которую нужно обрезать.';
$lenght = 5;
$b = mb_substr($a, 0, $lenght);
if (mb_strlen($a) > $lenght) {
$b .= '...';
}
echo $b;

Где $lenght - длинна обрезаемого текста.
Или просто сравнить исходную строку и обрезанную. Но это частный случай.
$a = 'Сама строка,которую нужно обрезать.';
$b = mb_substr($a, 0, 10);
if ($a != $b) {
$b .= '...';
}
echo $b;

Чтобы обрезать по пробелу, то есть взять например 5 первых слов-то строку следует разделить по пробелам и взять первые 5 элементов.Вот так:
$str='Этот текст имеет большое количество
пробелов и состоит из нескольких слов';

//разбиваем на массив
$arr_str = explode(" ", $str);
//берем первые 6 элементов
$arr = array_slice($arr_str, 0, 6);
//превращаем в строку
$new_str = implode(" ", $arr);

// Если необходимо добавить многоточие
if (count($arr_str) > 6) {
$new_str .= '...';
}

echo $new_str;//Выведет 'Этот текст имеет большое количество пробелов и...'
Ну и чтоб просто добавить в конце любой строки многоточие-можно дописать точки так:
$str = 'My string';
$str .= '...';
echo $str;//Выведет 'My string...'
zloy_pozitiv
Постов: 359
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
webkudesnik.com Страна, город: Украина, Киев День рождения: 06/16
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться
 
#10646
Вступительный текст материала 3 г., 1 мес. назад Репутация: 46
Отличный плагин который надо один раз настроить и забыть, www.masterswebsolutions.com/joomla-extensions/masters-auto-read-more
Nikolia
ой мл... как жить хорошо!!!
Модератор
Постов: 569
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
конечно есть Пол: Мужской есть Страна, город: Россия
Не поленись поставить плюсик за ответ!
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться
 
ВверхСтраница: 1
Модераторы: Fidelity, Nikolia, cvetercom, Xemreht, mr.Hi-End
получить последние сообщения прямо на Ваш рабочий стол
Баннер