Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Постраничный фильтр by Sander.
Скачать бесплатно Постраничный фильтр by Sander.
Этот хак позволяет скрывать информацию в шаблонах на определенных страницах. Работает по аналогии с [aviable= и [category=, но основывается на страницах навигации.
где x:
1|3|5|6|7|20 - перечисляем номера страниц;
1-50 - указываем диапазон страниц;
Например если вы хотите чтобы информация выводилась только на 5й странице пишем:
Чтобы выводилась только на главной, везде кроме первых 3 страниц:
Установка:
Открыть файл /engine/classes/templates.class.php
Найти строку:
После нее вставить:
Найти строку:
После нее вставить:
Найти строку:
ПЕРЕД ней вставить:
Версия DLE: старше 7.5
На случай, если всеядный парсер съел слеши или кавычки:
С Уважением,
Олег Александрович a.k.a Sander
[page=x]..[/page]
вывод информации на указанных страницах навигации[not-page=x]...[/not-page]
вывод информации на всех страницах навигации кроме указанныхгде x:
1|3|5|6|7|20 - перечисляем номера страниц;
1-50 - указываем диапазон страниц;
Например если вы хотите чтобы информация выводилась только на 5й странице пишем:
[page=5]Текст выводимый на 5й странице[/page]
Чтобы выводилась только на главной, везде кроме первых 3 страниц:
[aviable=main][not-page=1-3]тут выводимый текст[/not-page][/aviable]
Установка:
Открыть файл /engine/classes/templates.class.php
Найти строку:
$this->template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После нее вставить:
if (strpos ( $this->template, "[page=" ) !== false) $this->template = preg_replace ( "#\\[page=(.+?)\\](.*?)\\[/page\\]#ies", "\$this->check_page('\\1', '\\2')", $this->template );
if (strpos ( $this->template, "[not-page=" ) !== false) $this->template = preg_replace ( "#\\[not-page=(.+?)\\](.*?)\\[/not-page\\]#ies", "\$this->check_page('\\1', '\\2', false)", $this->template );
if (strpos ( $this->template, "[not-page=" ) !== false) $this->template = preg_replace ( "#\\[not-page=(.+?)\\](.*?)\\[/not-page\\]#ies", "\$this->check_page('\\1', '\\2', false)", $this->template );
Найти строку:
$template = file_get_contents( $this->dir . DIRECTORY_SEPARATOR . $tpl_name );
После нее вставить:
if (strpos ( $template, "[page=" ) !== false) $template = preg_replace ( "#\\[page=(.+?)\\](.*?)\\[/page\\]#ies", "\$this->check_page('\\1', '\\2')", $template );
if (strpos ( $template, "[not-page=" ) !== false) $template = preg_replace ( "#\\[not-page=(.+?)\\](.*?)\\[/not-page\\]#ies", "\$this->check_page('\\1', '\\2', false)", $template );
if (strpos ( $template, "[not-page=" ) !== false) $template = preg_replace ( "#\\[not-page=(.+?)\\](.*?)\\[/not-page\\]#ies", "\$this->check_page('\\1', '\\2', false)", $template );
Найти строку:
function check_module($aviable, $block, $action = true) {
ПЕРЕД ней вставить:
function check_page($pages, $block, $action = true) {
$cstart = intval($_GET['cstart']);
if($cstart<1) $cstart=1;
if(strpos($pages, "-") !== false){
$pages_arr = explode( '-', $pages );
$pages = array();
for($i=$pages_arr[0];$i<=$pages_arr[1];$i++) $pages[] = $i;
}else $pages = explode( '|', $pages );
$block = str_replace( '\"', '"', $block );
if( $action ) {
if( ! (in_array( $cstart, $pages )) ) return "";
else return $block;
} else {
if( (in_array( $cstart, $pages )) ) return "";
else return $block;
}
}
$cstart = intval($_GET['cstart']);
if($cstart<1) $cstart=1;
if(strpos($pages, "-") !== false){
$pages_arr = explode( '-', $pages );
$pages = array();
for($i=$pages_arr[0];$i<=$pages_arr[1];$i++) $pages[] = $i;
}else $pages = explode( '|', $pages );
$block = str_replace( '\"', '"', $block );
if( $action ) {
if( ! (in_array( $cstart, $pages )) ) return "";
else return $block;
} else {
if( (in_array( $cstart, $pages )) ) return "";
else return $block;
}
}
Версия DLE: старше 7.5
На случай, если всеядный парсер съел слеши или кавычки:
page-filter [728 b] (cкачиваний: 113)
MD5: f798e3a329ef0bbf9d56357387e7bb84
MD5: f798e3a329ef0bbf9d56357387e7bb84
С Уважением,
Олег Александрович a.k.a Sander