Все для DataLife Engine / DLE хаки / Разные навороты, сборник хаков / Хак меняет вид 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качиваний: 81)
  • 80

Комментарии 12

jeka66 от 23 января 2019 10:18
Цитата: dle9.com
Для начало желательно убедиться, что проблема не связана с вашим шаблоном, проверить на стандартном шаблоне


Тестировал на лицензионной версии на локалке
dle9.com от 23 января 2019 10:16
Цитата: jeka66
На версии 13.1 теоретически работает. Достаточно прописать стили, подключить плугин и разделить shortstory.tpl на нужные куски вывода новости...

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

Как это можно подправить?

Для начало желательно убедиться, что проблема не связана с вашим шаблоном, проверить на стандартном шаблоне
jeka66 от 22 января 2019 22:36
На версии 13.1 теоретически работает. Достаточно прописать стили, подключить плугин и разделить shortstory.tpl на нужные куски вывода новости...

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

Как это можно подправить?
dle9.com от 11 октября 2016 19:30
Цитата: davo3919

Сделал как вы сказали кажись все работает переключается даже ,shortstory_list.tpl и shortstory_icons.tpl взял из других шаблонов и кинул на основной шаблон но столкнулся с проблемой с стилями как Сделать что бы например к shortstory_list.tpl подключить свой стиль а то все там налезает друг на друга

ниже вашего сообщения пробовали код добавить в shortstory_list.tpl?
davo3919 от 11 октября 2016 18:24
Цитата: dle9.com
Цитата: reanimator692
Template not found: /templates/site-best-102/shortstory_list.tpl

и привет...Однако надо самому делать файлы shortstory_list.tpl и shortstory_icons.tpl

Цитата: reanimator692
Добавил два пустых файла shortstory_list.tpl и shortstory_icons.tpl в шаблон, хоть стал открываться тестовый сайт без ошибки. В общем конструктор - сделай сам :lol:

Привет,
ну, да то это и был расчет...

Сделал как вы сказали кажись все работает переключается даже ,shortstory_list.tpl и shortstory_icons.tpl взял из других шаблонов и кинул на основной шаблон но столкнулся с проблемой с стилями как Сделать что бы например к shortstory_list.tpl подключить свой стиль а то все там налезает друг на друга
reanimator692 от 9 октября 2014 16:54
И шаблон короткой новости:

<div class="templtes template-default current">
Первый шаблон, я оставил стандартный
</div>
<div class="templtes template-list">
Второй шаблон, в виде списка
</div>
<div class="templtes template-icons" style="float:left;width:25%;">
Третий шаблон, в виде иконок, по 4 в ряд.
</div>
reanimator692 от 9 октября 2014 16:24

Привет,
ну, да то это и был расчет...

Привет,еще бы этот шаблон поковырять от автора Sander!.. smile
Можно бы было и заготовку сочинить
dle9.com от 9 октября 2014 16:04
Цитата: reanimator692
Template not found: /templates/site-best-102/shortstory_list.tpl

и привет...Однако надо самому делать файлы shortstory_list.tpl и shortstory_icons.tpl

Цитата: reanimator692
Добавил два пустых файла shortstory_list.tpl и shortstory_icons.tpl в шаблон, хоть стал открываться тестовый сайт без ошибки. В общем конструктор - сделай сам :lol:

Привет,
ну, да то это и был расчет...
reanimator692 от 9 октября 2014 15:52
Добавил два пустых файла shortstory_list.tpl и shortstory_icons.tpl в шаблон, хоть стал открываться тестовый сайт без ошибки. В общем конструктор - сделай сам :lol:
reanimator692 от 9 октября 2014 15:46
Template not found: /templates/site-best-102/shortstory_list.tpl

и привет...Однако надо самому делать файлы shortstory_list.tpl и shortstory_icons.tpl
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent