Сниппет Truncate

Опубликовано: 24 Авг 2014

Взято отсюда.

Сниппет обрежет текст до определенного количества символов не обрезая слова и добавит в конце три точки.

Применять его можно для создания анонсов новостей, когда по какой-либо причине нет возможности вручную заполнять соответствующее поле.

Создаем сниппет с именем truncate:

<?php

$len= isset($len) ? $len: 50;

$text= isset($text) ? $text: '';

$text= strip_tags($text);  // удаление тегов html

$order = array("\r\n", "\n", "\r"); 

$replace = '<br />';

$what = str_replace($order, $replace, $text);

if (strlen($what) > $len) {

$what = preg_replace('/^(.{' . $len. ',}? ).*$/is', '$1', $what) . '...';

}

return $what;

?>

В итоге получаем следующий код вызова.

[ [truncate? &text=`[+content+]` &len=`100`]]

Вместо [+content+] можно использовать любой другой плейсхолдер, к примеру [+introtext+] или непосредственно текст. 

Не забываем заменить [+content+] на [*content*] если выводим материал без использования ditto.

Для примера выполним сниппет:

[ [truncate? &text=`Очень полезный сниппет truncate всегда поможет сделать краткий анонс взяв из основного текста первые слова` &len=`50`]]

Вот такой результат получается:
Очень полезный сниппет truncate ...

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: