Not-newscount by MSW

Not-newscount by MSW

В DLE 10.1 добавился новый тег для шаблона shortstory.tpl:
newscount=x текст /newscount


который выводит текст указанный в тегах если показывается X новость, где X это число показываемой на странице новости. Но иногда надо наоборот не показывать некоторое содержимое, например для первой новости. Данный хак добавляет такую возможность.

Установка:
1. Открыть engine/modules/functions.php и найти:
function check_newscount( $matches=array() ) {
    global $global_news_count;

    $block = $matches2;

    $counts = explode( ,, $matches1 );
    
    if( !in_array( $global_news_count, $counts ) ) return ;

    return $block;
}

Заменить на:
#****** not-newscount by MSW *** start ******#
function check_newscount( $matches=array() ) {
    global $global_news_count;

    $block = $matches3;
    $counts = explode( ,, $matches2 );
    if( $matches1 == newscount ) {
        if( !in_array( $global_news_count, $counts ) ) return ;
    } else {
        if( in_array( $global_news_count, $counts ) ) return ;
    }
    return $block;
}
#****** not-newscount by MSW *** stop  ******#

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 );
    }

Заменить на:
#****** not-newscount by MSW *** start ******#
        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 );
        }
#****** not-newscount by MSW *** stop  ******#

Применение: в шаблоне shortstory.tpl, а также для шаблонах пользовательского вывода новостей при помощи тега {custom ....}:
newscount=X Выводить текст для Х по счёту новости /newscount
not-newscount=X Не выводить текст для Х по счёту новости /not-newscount

Готово!
 
Версия DLE: 10.1
Автор: MSW
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.