Перейти к содержимому


Фотография
- - - - -

Ограничение количества символов


Лучший Ответ Sliapy , 16 March 2014 - 11:55

И чего вы хотите добавиться в итоге? Что будут видеть поисковые системы? Что будут видеть пользователи с отключенным js?

 

Обрезку лучше делать через PHP. Замените вывод позиции, в которую Вы выводите текст в шаблоне teaser.php на

 

$desc = JString::trim(strip_tags($this->renderPosition('*позиция с текстом*')));


$descArr = explode(' ', $desc);
$descArr_tmp = array();


foreach ($descArr as $word) {
    $word = JString::trim($word);


    if ($word) {
        $descArr_tmp[] = $word;
    }


}


if (count($descArr_tmp) > 30) {
    $descArr_tmp = array_slice($descArr_tmp, 0, 30);
    echo implode(' ', $descArr_tmp) . ' ...';


} else {
    echo implode(' ', $descArr_tmp);
}

30 - кол-во слов, по которым текст будет обрезан.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 runyugin

runyugin

Отправлено 16 March 2014 - 11:27

Использую в тизере скрипт

(function () {
	var node = document.getElementById( "long_text" ),
	need = 50;
	if ( node.innerHTML.length > need ) {
		node.innerHTML = node.innerHTML.slice( 0, need ) + "…";
	}
})();

но он работает только с первой статьей, остальные не обрабатывает

Прикрепленные изображения

  • Хендбайкеры 2014-03-16 14-27-05.png

  • 0

#2 Sliapy

Sliapy

Отправлено 16 March 2014 - 11:55   Лучший Ответ

И чего вы хотите добавиться в итоге? Что будут видеть поисковые системы? Что будут видеть пользователи с отключенным js?

 

Обрезку лучше делать через PHP. Замените вывод позиции, в которую Вы выводите текст в шаблоне teaser.php на

 

$desc = JString::trim(strip_tags($this->renderPosition('*позиция с текстом*')));


$descArr = explode(' ', $desc);
$descArr_tmp = array();


foreach ($descArr as $word) {
    $word = JString::trim($word);


    if ($word) {
        $descArr_tmp[] = $word;
    }


}


if (count($descArr_tmp) > 30) {
    $descArr_tmp = array_slice($descArr_tmp, 0, 30);
    echo implode(' ', $descArr_tmp) . ' ...';


} else {
    echo implode(' ', $descArr_tmp);
}

30 - кол-во слов, по которым текст будет обрезан.


  • 2
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 runyugin

runyugin

Отправлено 16 March 2014 - 12:54

спасибо все получилось


Сообщение отредактировал runyugin: 16 March 2014 - 13:04

  • 0

#4 SmetDenis

SmetDenis

Отправлено 17 March 2014 - 16:22

Для справки

Альтернативный упрощенный вариант, будете работать в последних версиях
echo $this->app->jbstring->cutByWords($this->renderPosition('<ИМЯ_ПОЗИЦИИ>'), 250);

  • 2
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!