• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак Лимит символов {title} при выводе новостей при помощи {custom}

Статус
В этой теме нельзя размещать новые ответы.

Doctor_zlo

Хранитель порядка
Регистрация
25 Апр 2008
Сообщения
457
Реакции
1.339
Делаю 1 сайт, где последние новости из категорий выводяться при помощи тега custom
Понадобилось ограничить количество символов пи выводе названия новости.
engine/modules/show.custom.php
после $tpl->set( '{title}', stripslashes( $row['title'] ) ); добавить
PHP:
        $temp = substr( stripslashes( $row['title'] ), 0, 40 );
if (strlen ($temp) == 40 ) $temp .= '...';
$tpl->set( '{title_lim}', $temp);
где 40 кол-во знаков. В шаблоне выводиться тегом {title_lim}
 
Было бы логичнее наверное не
Код:
if (strlen ($temp) == 40 )
а
Код:
if (strlen ($temp) >= 40 )
?
 
Как оно может быть логичнее если на предыдущем шаге $temp обрезана до 40 символов и не может быть больше?
 
Если кодировка сайта в UTF8 то не пойдет. Т.к. strlen возвращает не количество символов, а количество байтов. В UTF8 только первые 128 символов однобайтовые. Так-что что бы было верно значение умножить на 3 где-то.

Не знаю как в ранних версиях, но в 9.6 есть функция с учетом кодировки:
PHP:
if (dle_strlen(текст, $config['charset']) > количества символов ) {
    текст = dle_substr(текст, 0, количество символов,$config['charset']) . "...";
} else {
    текст без изменений
}
 
Док, а не проще через месяц на 9.7 пересесть? Там это будет встроенной функцией.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху