Красивое формирование текстовых анонсов

Данная функция предназначена для создания аккуратных анонсов для длинных текстов — например, для колонки новостей на главной странице.
вставьте в /netcat/modules/default/function.inc.php нижеприведенный код

function welpis_texttrunc($string, $length = 40, $etc = '...',
                                  $break_words = false, $middle = false)
{
    if ($length == 0)
        return '';

    if (mb_strlen($string,'UTF-8') > $length) {
        $length -= mb_strlen($etc,'UTF-8');
        if (!$break_words && !$middle) {
            $string = preg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1,'UTF-8'));
        }
        if(!$middle) {
            return mb_substr($string, 0, $length,'UTF-8').$etc;
        } else {
            return mb_substr($string, 0, $length/2,'UTF-8') . $etc . substr($string, -$length/2,NULL,'UTF-8');
        }
    } else {
        return $string;
    }
}

В компоненте или макете дизайна в нужном месте вставьте вызов добавленной функции.
Вызов:
welpis_texttrunc(строка, длина_анонса, строка-суффикс, разрывать_ли_слова, показывать_ли_начало_и_конец)
Первый параметр — строка, собственно исходный текст, подлежащий сокращению (текст должен быть в UTF-8 кодировке)
Второй параметр — целое число, до скольки знаков сокращать текст. По умолчанию 40 знаков
Третий параметр — строка, по умолчанию «…» (будет дописываться к анонсу)
Четвертый параметр — логическое значение: резать ли слова посередине
Пятый параметр — логическое значение. Если поставить true, то обрезаться у основного текста будет не окончание, а середина (например: «Во саду ли …. собачка.»).

Например при вызове поля text

<?= welpis_texttrunc($f_text,100 ) ?>

Спасибо источнику



Добавить комментарий