VAOZ Posted April 13, 2018 Share Posted April 13, 2018 Иногда возникает потребность в том, чтобы какую-то информацию из шаблона 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] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now