22 мар


Автор: MSW
Версия DLE: 8.*-9.8
Сайт поддержки: https://0-web.ru/

Хак ShortBanners v1.0 даёт возможность более гибко управлять рекламными материалами на сайте, позволяет указать после какой по счёту новости выводить баннер при просмотре кратких новостей.

Особенности:
- автоматическое формирование списка после какой по счёту новости выводить баннер, в зависимости от количества новостей для вывода на главной странице;
- уменьшенное количество логических операций, по сравнению со стандартной функцией ДЛЕ по управлению баннерами между краткими новостями

Инструкция:
=====================================================
Модуль: ShortBanners
Версия: 1.0
-----------------------------------------------------
Автор: MSW
Сайт:  http://0-web.ru/
-----------------------------------------------------
Copyright (c) 2012 MSW
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: ShortBanners.txt
=====================================================


1. Файл: /engine/inc/banners.php
Найти:
=====================================================
echo makeDropDown( array ("0" => $lang['banners_s_0'], "1" => $lang['banners_s_1'], "2" => $lang['banners_s_2'], "3" => $lang['banners_s_3'], "4" => $lang['banners_s_4'], "5" => $lang['banners_s_5'], "6" => $lang['banners_s_6'], "7" => $lang['banners_s_7'] ), "short_place", $short_place );
=====================================================

Заменить на:
=====================================================
#****** ShortBanners *** by MSW ******#
    $banners_s = array("0" => $lang['banners_s_0']);
    for($i=1; $i<=$config['news_number']; $i++) {
        $banners_s[$i] = "После {$i}";
    }
    echo makeDropDown( $banners_s, "short_place", $short_place );
#****** ShortBanners *** by MSW ******#
=====================================================


2. Файл: /engine/modules/banners.php
Найти:
=====================================================
                switch ($value['short_place']) //выбираем расположение баннера
                {
                    case 1 : //вверх
                        $ban_short['top'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 2 : //центр
                        $ban_short['cen'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 3 : //низ
                        $ban_short['down'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 4 : //вверх,низ
                        $ban_short['top'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        $ban_short['down'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 5 : //центр,низ
                        $ban_short['cen'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        $ban_short['down'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 6 : //Вверх,центр
                        $ban_short['cen'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        $ban_short['top'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                    
                    case 7 : //вверх,центр,низ
                        $ban_short['cen'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        $ban_short['top'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        $ban_short['down'][] = array ("text" => $value['code'], "zakr" => $value['bstick'] );
                        break;
                }
=====================================================

Заменить на:
=====================================================
#****** ShortBanners *** by MSW ******#
                if($value['short_place']>0) $ban_short[$value['short_place']][] = $value['code'];
#****** ShortBanners *** by MSW ******#
=====================================================


3. Файл: /engine/modules/show.short.php
Удалить:
=====================================================
        if( isset( $ban_short ) ) {
            for($indx = 0, $max = sizeof( $ban_short['top'] ), $banners_topz = ''; $indx < $max; $indx ++)
                if( $ban_short['top'][$indx]['zakr'] ) {
                    $banners_topz .= $ban_short['top'][$indx]['text'];
                    unset( $ban_short['top'][$indx] );
                }
            
            for($indx = 0, $max = sizeof( $ban_short['cen'] ), $banners_cenz = ''; $indx < $max; $indx ++)
                if( $ban_short['cen'][$indx]['zakr'] ) {
                    $banners_cenz .= $ban_short['cen'][$indx]['text'];
                    unset( $ban_short['cen'][$indx] );
                }
            
            for($indx = 0, $max = sizeof( $ban_short['down'] ), $banners_downz = ''; $indx < $max; $indx ++)
                if( $ban_short['down'][$indx]['zakr'] ) {
                    $banners_downz .= $ban_short['down'][$indx]['text'];
                    unset( $ban_short['down'][$indx] );
                }
            
            $middle = floor( $config['news_number'] / 2 );
            $middle_s = floor( ($middle - 1) / 2 );
            $middle_e = floor( $middle + (($config['news_number'] - $middle) / 2) + 1 );
        }
=====================================================

Найти:
=====================================================
        if( isset( $middle ) ) {
            
            if( $news_c == $middle_s ) {
                $tpl->copy_template .= bannermass( $banners_topz, $ban_short['top'] );
            } else if( $news_c == $middle ) {
                $tpl->copy_template .= bannermass( $banners_cenz, $ban_short['cen'] );
            } else if( $news_c == $middle_e ) {
                $tpl->copy_template .= bannermass( $banners_downz, $ban_short['down'] );
            }
            $news_c ++;
        }
=====================================================

Заменить на:
=====================================================
#****** ShortBanners *** by MSW ******#
        if($ban_short[$news_c]) {
            $banner_rand = array_rand($ban_short[$news_c]);
            $tpl->copy_template .= $ban_short[$news_c][$banner_rand];
        }
        $news_c ++;
#****** ShortBanners *** by MSW ******#
=====================================================


Тоже самое в txt-файле:
54
1,2 Kb
shortbanners.txt.zip
Загружен: 22-03-2012, 23:33 / MD5: 33027b3113f94e0c69396cd70d4859c0

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.