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

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

Голосов: 1
Иногда возникает потребность в том, чтобы какую-то информацию из шаблона 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]
  • Название: Отображение текста для определенных новостей в шаблоне main.tpl
  • Версия CMS: dle 10.1, dle 10dle 9.8, dle 9.7
  • Автор: Snake
  • Сайт поддержки:

Информация о статье

Добавить комментарий

Имя:*
E-Mail:
Полужирный Наклонный текст Подчёркнутый текст Зачёркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищённой ссылки Картинка Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите код: *