DataLife Engine / Хак меняет вид Shortstory на лету для DLE

Хак меняет вид Shortstory на лету для DLE



Хак меняет вид Shortstory на лету для DLE - это модификация использует скрипт jquery, чтобы переключать оформление шаблона короткой новости при просмотр в DataLife Engine, есть три режима: вывод списком, картинками или стандартным видом.

Это вырезанный кусок кода взятый у автора Sander с новости Переключение шаблонов shortstory.

Установка хака на дле Меняем вид Shortstory на лету:
В main.tpl вставить

[aviable=main]                
<script type="text/javascript">    
$(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;
    });
})        
</script>                             
    <div class="sortn dpad"><div class="sortn"><div class="templater">Режим просмотра: <a href="#" class="current" data-template="default">Стандарт</a> |  <a href="#" data-template="list">Список</a> | <a href="#" data-template="icons">Иконки</a></div></div></div>                        
    [/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);

Вот и всё!

Обновленный хак меняет вид Shortstory на лету для DLE 13.0
Автор обновления пользователь: TeraMoune

От автора:
По поводу самой реализации, думаю нету смысла передавать get параметр и считывать его. Ведь мы при нажатии определили куки и при обновлении система считывает параметр и присваивает переменной её значение.

Есть xml под 13 версию движка. В админку добавил поле где можно перечислять шаблоны. Размещение html разметки осуществляется тегом {sortn} в любом месте main.tpl и дочерних шаблонах.

Поделился хаком на сайте Sander'a в той самой теме, он что-то мне про фильтрацию начал втирать. Я дописал с фильтрацией и еще появился некий предохранитель. Если писать произвольные названия префиксов в куках будет происходить проверка и если у шаблона указанного нету будет грузить дефолт. А сами переключатели видны только там где используется модуль show.short.php. Вот такие не плохие доработки.


В прочем вот сам xml

 Код добавил сюда:


Скачать хаки для dle, как Хак меняет вид Shortstory на лету для DLE исходники:

Menyaem-vid-Shortstory-na-letu.rar [18,59 Kb] (cкачиваний: 127)
6-10-2018, 11:06
Вернуться назад