DataLife Engine > Версия для печати > Переключение шаблонов shortstory для dle

Установка:

В main.tpl вставить (там где вы хотите видеть свои кнопки либо текстовые переключатели):

[aviable=main]



$(function(){

    if($.cookie('short_template')){

        $(".templtes").removeClass('current');

        $(".templater a[data-template]").removeClass('current').each(function(){

            if($(this).data('template')==$.cookie('short_template')){

                $(this).addClass('current');

                $(".template-"+$.cookie('short_template')).addClass('current');

            }

        });

    }

    $(".templater a[data-template]").click(function(){

        if($(this).hasClass('current')) return false;

        $(this).addClass('current').siblings().removeClass('current');

        $(".templtes").removeClass('current');

        $(".template-"+$(this).data('template')).addClass('current');

        $.cookie('short_template', $(this).data('template'),{path:'/'});

        window.location.href=dle_root+'?short_template'+$(this).data('template');

        return false;

    });

})







    Режим просмотра: Стандарт |  Список | Иконки

    [/aviable]

Открываем любой файл со стилями и добавляем:

.templater .current{color:#c00;}

.templtes{display:none;}

.templtes.current{display:block;}

Качаем архив и подключаем: jquery.cookie.js

Открываем файл engine/modules/show.short.php

Закоментируем строки:

/* if( isset( $view_template ) and $view_template == "rss" ) {

    } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );

    else $tpl->load_template( 'shortstory.tpl' ); */

Вставляем ниже:

$user_short_tpl = array(

'default' => 'shortstory.tpl', //дефолтный шаблон

'list' => 'shortstory_list.tpl', // шаблон списком

'icons' => 'shortstory_icons.tpl' // шаблон картинки

);



$user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $user_short_tpl[$_COOKIE['short_template']] : $user_short_tpl['default'];

$user_tpl = (isset($_GET['short_template']) && isset($user_short_tpl[$_GET['short_template']])) ? $user_short_tpl[$_GET['short_template']] : $user_tpl;

if( isset( $view_template ) and $view_template == "rss" ) {

} elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );

else $tpl->load_template($user_tpl);

Установка закончена.

НЕ забываем создать tpl шаблоны.

Для тех кто хочет на Ajax:

Заменить строку в main.tpl:

window.location.href=dle_root+'?short_template'+$(this).data('template');

На эту:

$.get(dle_root+'?short_template'+$(this).data('template'), function(data){

$("#dle-content").html(data);

});

где dle-content ID дива в котором выводятся все короткие новости.

В файле show.short.php в самом конце

Вставить:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

@header( "Content-type: text/html; charset=" . $config['charset'] );

 echo $tpl->result['content'];

    exit;

}

Подключил данный способ у себя на одном из своих сайтов

Немного лучше чем Вариант от Sandera.

Вернуться назад