Перейти к содержанию

Отображение текста для определенных новостей в шаблоне main.tpl


VAOZ
 Поделиться


Рекомендованные сообщения

Иногда возникает потребность в том, чтобы какую-то информацию из шаблона main.tpl не отображать для определенной новости.

Данных хак позволит выводить или скрывать текст для конкретных новостей.

Открываем index.php

Найти

$tpl->set ( '{calendar}', $tpl->result['calendar'] );

Добавить ВЫШЕ

if($dle_module == "showfull") {
$news_id = $_GET['newsid'];
  
                if( strpos( $tpl->copy_template, "[not-newsid=" ) !== false ) {
                        $tpl->copy_template = preg_replace( "#\\[not-newsid=(.+?)\\](.*?)\\[/not-newsid\\]#ies", "check_newsid('\\1', '\\2', '{$news_id}', false)", $tpl->copy_template );
                }
                if( strpos( $tpl->copy_template, "[newsid=" ) !== false ) {
                        $tpl->copy_template = preg_replace ( "#\\[newsid=(.+?)\\](.*?)\\[/newsid\\]#ies", "check_newsid('\\1', '\\2', '{$news_id}')", $tpl->copy_template );
                }
                        $tpl->set_block( "'\\[cattext\\](.*?)\\[/cattext\\]'si", "" );
} else {
                        $tpl->set( '[cattext]', "" );
                        $tpl->set( '[/cattext]', "" );
                        $tpl->copy_template = preg_replace ( "#\\[newsid=(.+?)\\](.*?)\\[/newsid\\]#ies", "", $tpl->copy_template );
                        $tpl->copy_template = preg_replace ( "#\\[not-newsid=(.+?)\\](.*?)\\[/not-newsid\\]#ies", "", $tpl->copy_template );
  
}

Открываем engine/modules/functions.php

Найти

function check_category($cats, $block, $category, $action = true) {

Добавить ВЫШЕ

function check_newsid($cats, $block, $category, $action = true) {
  
        $cats = str_replace(" ", "", $cats );   
        $cats = explode( ',', $cats );
        $category = explode( ',', $category );
        $found = false;
         
        foreach ( $category as $element ) {
                 
                if( $action ) {
                         
                        if( in_array( $element, $cats ) ) {
                                 
                                $block = str_replace( '\"', '"', $block );
                                return $block;
                        }
                 
                } else {
                         
                        if( in_array( $element, $cats ) ) {
                                $found = true;
                        }
                 
                }
         
        }
  
        if ( !$action AND !$found ) {   
  
                $block = str_replace( '\"', '"', $block  );
                return $block;
        }
  
        return "";
  
}


В main.tpl можно вставлять комбинации

[newsid=1,2] текст [/newsid]
[not-newsid=3] текст [/not-newsid]

Ссылка на комментарий
Поделиться на других сайтах


Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
 Поделиться


×
×
  • Создать...