Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » Как тегу test установить limit?

Как тегу test установить limit?


     20.07.2014    limit для тега    Все вопросы » Ламерские вопросы    2256

вопрос
Добрый день.
Пытаюсь реализовать на сайте вывод тега (test) с возможной установкой лимита.
В таблице dle_post есть строка test, в ней находится текст который хочу выводить на сайте, в короткой новости.
Пробовал сделать так, в show.short.php добавить:
$tpl->set( '{test}', $row['test'] );
            
            if ( preg_match( "#\\{test limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
                $count= intval($matches[1]);
    
                $row['test'] = str_replace( "</p><p>", " ", $row['test'] );
                $row['test'] = strip_tags( $row['test'], "<br>" );
                $row['test'] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $row['test'] ) ) ) ));
    
                if( $count AND dle_strlen( $row['test'], $config['charset'] ) > $count ) {
                        
                    $row['test'] = dle_substr( $row['test'], 0, $count, $config['charset'] );
                        
                    if( ($temp_dmax = dle_strrpos( $row['test'], ' ', $config['charset'] )) ) $row['test'] = dle_substr( $row['test'], 0, $temp_dmax, $config['charset'] );
                    
                }
    
                $tpl->set( $matches[0], $row['test'] );
    
            }


Не сработало. Подскажите, в каких файлах (файле) нужно вносить правки? Или может есть у кого готовое решение?

Ответил: oo22maxi


Спасибо за подсказку FastFud.

В show.short.php найти:

$tpl->set( '{full-story}', $row['full_story'] );


Ниже добавить:

$db->query ( "SELECT test FROM " . PREFIX . "_post WHERE news_id='{$row['id']}'" );
$tpl->set( '{test}', $row['test'] );
            
            if ( preg_match( "#\\{test limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
                $count= intval($matches[1]);
    
                $row['test'] = str_replace( "</p><p>", " ", $row['test'] );
                $row['test'] = strip_tags( $row['test'], "<br>" );
                $row['test'] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $row['test'] ) ) ) ));
    
                if( $count AND dle_strlen( $row['test'], $config['charset'] ) > $count ) {
                        
                    $row['test'] = dle_substr( $row['test'], 0, $count, $config['charset'] );
                        
                    if( ($temp_dmax = dle_strrpos( $row['test'], ' ', $config['charset'] )) ) $row['test'] = dle_substr( $row['test'], 0, $temp_dmax, $config['charset'] );
                    
                }
    
                $tpl->set( $matches[0], $row['test'] );
    
            }


Ну и как сказал vitnet:
В engine.php добавить в запросы - p.test

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

FastFud
Юзер

FastFud - 20 июля 2014 14:38 -

А вы запрос наверное забыли написать ))

oo22maxi
Юзер

oo22maxi - 20 июля 2014 15:13 -

Ну да, запрос к бд я не писал не какой =) Сейчас просмотрел файл show.short.php, там есть запрос на обновление favorites ну и все вроде. Его делать надо в файле show.short.php хоть? Можете пример привести?

FastFud
Юзер

FastFud - 20 июля 2014 15:23 -

Могу ошибаться )
$db->query ( "SELECT test FROM " . PREFIX . "_post WHERE news_id='{$row['id']}'" );
ставить перед вашим кодом.

vitnet
PHP-developer

vitnet - 20 июля 2014 17:05 -

engine.php добавьте в запросы p.test,

D0Gmatist
Юзер

D0Gmatist - 20 июля 2014 20:37 -

vitnet, не только p.test но и просто test (вроде в 3-х местах)

oo22maxi
Юзер

oo22maxi - 20 июля 2014 20:58 -

Да, и просто test я тоже проставлял, забыл в ответе указать...

lutskboy
Эксперт

lutskboy - 20 июля 2014 17:54 -

В таблице dle_post есть строка test
только не строка а поле ну или в худшем случае столбец

oo22maxi
Юзер

oo22maxi - 20 июля 2014 19:37 -

FastFud, принцип понял, спасибо, думаю сейчас разберусь.

vitnet, да, это я уже знаю, спасибо =)

lutskboy, я забыл как его называют правильно, вот и назвал строкой )

oo22maxi
Юзер

oo22maxi - 20 июля 2014 20:35 -

Все работает, спасибо всем. Ответ добавил...

vitnet
PHP-developer

vitnet - 20 июля 2014 21:44 -

Вот это здесь лишнее, на каждый пост по лишнему запросу. 10+
$db->query ( "SELECT test FROM " . PREFIX . "_post WHERE news_id='{$row['id']}'" );

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

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

наверх