О новом теге not-newscount

  • Автор темы mtrolik
  • Дата начала
mtrolik
Участник
Сообщения
26
Реакции
1
В новую версию движка добавился новый тег для шаблона shortstory.tpl
Код:
[newscount=x] текст [/newscount]
который выводит текст указанный в тегах если показывается X новость, где X это число показываемой на странице новости. Но иногда надо наоборот не показывать некоторое содержимое, например для первой новости. Данный хак добавляет такую возможность!

Установка:
1. Файл: /engine/modules/functions.php
Найти:
Код:
function check_newscount( $matches=array() ) {
    global $global_news_count;
    $block = $matches[2];
    $counts = explode( ',', $matches[1] );
    if( !in_array( $global_news_count, $counts ) ) return "";
    return $block;
}
Меняем на
Код:
function check_newscount( $matches=array() ) {
    global $global_news_count;
    $block = $matches[3];
    $counts = explode( ',', $matches[2] );
    if( $matches[1] == "newscount" ) {
        if( !in_array( $global_news_count, $counts ) ) return "";
    } else {
        if( in_array( $global_news_count, $counts ) ) return "";
    }
    return $block;
}
2. Файлы:
- /engine/modules/show.short.php
- /engine/modules/show.custom.php
Найти:
Код:
  if (strpos ( $tpl->copy_template, "[newscount=" ) !== false) {
        $tpl->copy_template = preg_replace_callback ( "#\[newscount=(.+?)\](.*?)\[/newscount\]#is", "check_newscount", $tpl->copy_template );
    }
Заменить на
Код:
if (strpos ( $tpl->copy_template, "[newscount=" ) !== false) {
            $tpl->copy_template = preg_replace_callback ( "#\[(newscount)=(.+?)\](.*?)\[/newscount\]#is", "check_newscount", $tpl->copy_template );
        }
        if (strpos ( $tpl->copy_template, "[not-newscount=" ) !== false) {
            $tpl->copy_template = preg_replace_callback ( "#\[(not-newscount)=(.+?)\](.*?)\[/not-newscount\]#is", "check_newscount", $tpl->copy_template );
        }
Применение:
В шаблоне shortstory.tpl, а также для шаблонах пользовательского вывода новостей при помощи тега {custom ....}:
Код:
[newscount=X] Выводить текст для Х по счёту новости [/newscount]
[not-newscount=X] Не выводить текст для Х по счёту новости [/not-newscount]
 
Сверху