Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как добавить "..." в {title limit=""} ?

Как добавить "..." в {title limit=""} ?


     16.01.2015    Общие вопросы, Общие вопросы по PHP    1514

вопрос
Здравствуйте ! Вроде бы банальная вещь, но ввиду не особого знания php, не могу реализовать простую функцию. Нужно сделать так, что когда обрезается по количеству символов название, добавлялось "...".
Вот код из show.short.php:
if ( preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
                $count= intval($matches[1]);
                $row['title'] = strip_tags( $row['title'] );

                if( $count AND dle_strlen( $row['title'], $config['charset'] ) > $count ) {
                        
                    $row['title'] = dle_substr( $row['title'], 0, $count, $config['charset'] );
                        
                    if( ($temp_dmax = dle_strrpos( $row['title'], ' ', $config['charset'] )) ) $row['title'] = dle_substr( $row['title'], 0, $temp_dmax, $config['charset'] );
                    
                }

                $tpl->set( $matches[0], $row['title'] );

        
            }

Ответил: Sander


if ( preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
                $count= intval($matches[1]);
                $row['title'] = strip_tags( $row['title'] );

                if( $count AND dle_strlen( $row['title'], $config['charset'] ) > $count ) {
                        
                    $row['title'] = dle_substr( $row['title'], 0, $count, $config['charset'] );
                        
                    if( ($temp_dmax = dle_strrpos( $row['title'], ' ', $config['charset'] )) ) $row['title'] = dle_substr( $row['title'], 0, $temp_dmax, $config['charset'] )."...";
                    
                }

                $tpl->set( $matches[0], $row['title'] );

        
            }

Комментарии пользователей (10)

FastFud
50

1599 | 588

FastFud - 16 января 2015 20:08 - Юзер

{title limit="50"}...

Morse
17

75 | 37

Morse - 16 января 2015 20:23 - Юзер

FastFud, но если текст допустим 30 символов, т.е. заголовок не обрезается, то тогда тоже будет "..." показывать, а мне нужно показывать только тогда, когда текст обрезается !

Morse
17

75 | 37

Morse - 16 января 2015 20:31 - Юзер

Sander, Все работает на ура, то что нужно. Спасибо !

NikitoS3000
15

NikitoS3000 - 16 января 2015 23:47 - Юзер

А как мне в relatednews это добавить? Вроде в php во все файлы, где можно, многоточие добавил, в шаблоне limit поставил, а всё равно нет - просто обрезает текст, без многоточия.

Sander
1126

1637 | 1204

Sander - 17 января 2015 16:03 - Эксперт

Тут:
if( ($temp_dmax = dle_strrpos( $related['short_story'], ' ', $config['charset'] )) ) $related['short_story'] = dle_substr( $related['short_story'], 0, $temp_dmax, $config['charset'] );


if( ($temp_dmax = dle_strrpos( $related['short_story'], ' ', $config['charset'] )) ) $related['short_story'] = dle_substr( $related['short_story'], 0, $temp_dmax, $config['charset'] )."...";

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

NikitoS3000
15

NikitoS3000 - 17 января 2015 16:06 - Юзер

Тоже в show.short.php?

Sander
1126

1637 | 1204

Sander - 17 января 2015 16:06 - Эксперт

Похожие новости выводятся только в полной новости, это файл show.full.php

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

NikitoS3000
15

NikitoS3000 - 17 января 2015 16:08 - Юзер

Понял, благодарю!

NikitoS3000
15

NikitoS3000 - 17 января 2015 16:16 - Юзер

Странно. Всё равно не работает...

Олеся92
5

Олеся92 - 23 декабря 2015 06:16 - Юзер

А вот у меня и код для короткой новости почему-то не работает. Просто обрезает, а троеточие не ставит. В самой короткой новости стоит {title limit="50"}. Что же делать?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы