Короткие заголовки у комментариев

Главные вкладки

Аватар пользователя andrews andrews 8 декабря 2007 в 18:18

Очень часто на друпаловских сайтах вижу статьи к комментариями, заголовки у которых обрезаны очень неприлично. Например, если комментарий начинается с "Хочу поделиться опытом", то в заголовке остается только "Хочу". Конечно, если только автор оставляет заголовок пустым. Если он ввел заголовок - все нормально.

Сегодня у меня появилось желание и время разобраться с этим, и полез в код. Заголовок автоматически формируется друпалом с помощью функции truncate_utf8 из файла unicode.inc. Там выходная строка формируется методами, которые не приемлимы для юникодных строк. Решил переписать эту функцию и увековечить ее на страницах интернета. Вот что у меня получилось:

<?php
function truncate_utf8($string, $len, $wordsafe = FALSE, $dots = FALSE) {

$string = drupal_substr($string, 0, $len - ($dots ? 4 : 0));

if ($wordsafe && ($last_space=mb_strrpos($string, ' ')))
$string = drupal_substr($string, 0, $last_space);

if ($dots)
$string .= ' ...';

return $string;
}
?>

Если у кого-то появится желание потестировать, буду очень рад.

Комментарии

Аватар пользователя Гость Гость (не проверено) 9 декабря 2007 в 5:02

Очень часто на друпаловских сайтах вижу статьи к комментариями, заголовки у которых обрезаны очень неприлично. Например, если комментарий начинается с "Хочу поделиться опытом", то в заголовке остается только "Хочу".

5 баллов! Сразу обращает внимание, что если бы это был комментарий то он был бы обрезан так: "Короткие". Только "Хочу" с многоточием по-моему неприличнее… Smile

В смысле спасибо за код, пригодится конечно.

Аватар пользователя andrews andrews 10 декабря 2007 в 13:04

Не нужно ничего помещать в template.php!
Надо в файле include/unicode.inc удалить функцию truncate_utf8 и вместо нее вставить функцию truncate_utf8, приведенную выше.

Аватар пользователя НовичОК НовичОК 10 декабря 2007 в 23:01

Андрей. СПАСИБО ОГРОМНОЕ ЗА ВАШ КОД!!! ЭТО ТО, ЧТО НУЖНО БЫЛО МНЕ УЖЕ БОЛЬШЕ ГОДА. СПАСИБО!

Sad модули писать совсем не умею.