Технический сбой

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

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


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

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

        
            }

11 комментариев

FastFud
Юзер

FastFud - -

{title limit="50"}...

Morse
Юзер

Morse - -

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

Morse
Юзер

Morse - -

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

NikitoS3000
Юзер

NikitoS3000 - -

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

Sander
PHP-developer

Sander - -

Тут:
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 - мой блог.

Telegram: @sandev
Skype: Sander8804

NikitoS3000
Юзер

NikitoS3000 - -

Тоже в show.short.php?

Sander
PHP-developer

Sander - -

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

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

Telegram: @sandev
Skype: Sander8804

NikitoS3000
Юзер

NikitoS3000 - -

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

NikitoS3000
Юзер

NikitoS3000 - -

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

Олеся92
Юзер

Олеся92 - -

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

ebokbak
Юзер

ebokbak - -

{title limit="50"}...

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

наверх