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

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


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

вопрос
Здравствуйте ! Вроде бы банальная вещь, но ввиду не особого знания 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
Юзер

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

{title limit="50"}...

Morse
Юзер

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

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

Morse
Юзер

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

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

NikitoS3000
Юзер

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

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

Sander
Эксперт

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
Юзер

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

Тоже в show.short.php?

Sander
Эксперт

Sander - 17 января 2015 16:06 -

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

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

ICQ: 404-037-556
Skype: Sander8804

NikitoS3000
Юзер

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

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

NikitoS3000
Юзер

NikitoS3000 - 17 января 2015 16:16 -

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

Олеся92
Юзер

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

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

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

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

наверх