Все для 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качиваний: 141)
  • 80

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

dle9.com от 9 мая 2020 09:23
Цитата: Vitaly


Файл в установленном шаблоне находится, комменты почитал там нет решения моей проблемы.
Суть в том, что тег {change_short_template} ничего не выводит.
Я же правильно понимаю, что задача была только подключить куки, воткнуть тег {change_short_template}, установить xml и в настройках системы прописать шаблоны?
JS код, и css никуда втыкать больше не нужно? У меня есть ощущение недоделанного действия. Напишите пожалуйста инструкцию еще раз, хотя я ее уже читал и сделал всё как там.

Стили не указано, есть вероятность, может нужно разрешить смену пользователям шаблон или скин Главная Настройка параметров скрипта (используйте навигацию для доступа к разделам) Разрешить посетителям смену скина на сайте

Если в месте, где должны выходит переключатели отсутствую что-либо, значить отключены эти функции системой DLE и дело не в стилях. Откройте в браузере через кнопками Ctrl+U и сморите

Насколько вижу сама инструкция и есть XML файл, доп инструкция в файле Change-shortstory-templat.zip/README.md больше ничего не предусмотрено...

А вот описание причины проблемы на сайте автора Sander'а
Vitaly от 9 мая 2020 09:08
Цитата: dle9.com
Цитата: Vitaly
Скачал архив, установил плагин, в main.tpl подцепил куки <script type="text/j&#1072;vascript" src="{THEME}/js/cookie.js"></script> там же прописал {change_short_template} в том месте где нужно отобразить переключалку стиля. Добавил в Настройку системы -> Новости список шаблонов, но ничего не изменилось. Где-то я что-то не доделал.


Перечитайте комментарии ниже может поможет, и файл cookie.js должен находиться в установленном шаблоне по умолчанию в папке /js/

Файл в установленном шаблоне находится, комменты почитал там нет решения моей проблемы.
Суть в том, что тег {change_short_template} ничего не выводит.
Я же правильно понимаю, что задача была только подключить куки, воткнуть тег {change_short_template}, установить xml и в настройках системы прописать шаблоны?
JS код, и css никуда втыкать больше не нужно? У меня есть ощущение недоделанного действия. Напишите пожалуйста инструкцию еще раз, хотя я ее уже читал и сделал всё как там.
dle9.com от 9 мая 2020 08:37
Цитата: Vitaly
Скачал архив, установил плагин, в main.tpl подцепил куки <script type="text/j&#1072;vascript" src="{THEME}/js/cookie.js"></script> там же прописал {change_short_template} в том месте где нужно отобразить переключалку стиля. Добавил в Настройку системы -> Новости список шаблонов, но ничего не изменилось. Где-то я что-то не доделал.


Перечитайте комментарии ниже может поможет, и файл cookie.js должен находиться в установленном шаблоне по умолчанию в папке /js/
Vitaly от 9 мая 2020 08:23
Скачал архив, установил плагин, в main.tpl подцепил куки <script type="text/jаvascript" src="{THEME}/js/cookie.js"></script> там же прописал {change_short_template} в том месте где нужно отобразить переключалку стиля. Добавил в Настройку системы -> Новости список шаблонов, но ничего не изменилось. Где-то я что-то недоделал.
dle9.com от 9 мая 2020 07:48
Цитата: Vitaly
Через XML пробовали ставить??? Вариант с готовым файлом]Вариант с готовым файлом
Ссылка не рабочая.
Нет, не пробовал, я не знаю как через XML ставить.

Поправил ссылку, теперь работает..
загружаете плагин в соответствующем разделе и всё.
Админ панель Управление плагинами Список плагинов
Vitaly от 9 мая 2020 07:33
Через XML пробовали ставить??? Вариант с готовым файлом]Вариант с готовым файлом
Ссылка не рабочая.
Нет, не пробовал, я не знаю как через XML ставить.
dle9.com от 9 мая 2020 07:24
Цитата: Vitaly
Цитата: dle9.com
Цитата: Vitaly
engine/cache/system/plugins/ab6a5ed6ad5b0aee4501446100f96421.php on line 1369

ошибка в кеше, перед установкой почистить кеш и попробовать..

Ясное дело, я в принципе когда меняю код в show.short.php чтобы он применился, чищу кэш. Так что проблема может быть и в кэшэ, но его очистка не помогает.

Через XML пробовали ставить??? Вариант с готовым файлом.
Vitaly от 9 мая 2020 06:14
Цитата: dle9.com
Цитата: Vitaly
engine/cache/system/plugins/ab6a5ed6ad5b0aee4501446100f96421.php on line 1369

ошибка в кеше, перед установкой почистить кеш и попробовать..

Ясное дело, я в принципе когда меняю код в show.short.php чтобы он применился, чищу кэш. Так что проблема может быть и в кэшэ, но его очистка не помогает.
dle9.com от 8 мая 2020 21:29
Цитата: Vitaly
engine/cache/system/plugins/ab6a5ed6ad5b0aee4501446100f96421.php on line 1369

ошибка в кеше, перед установкой почистить кеш и попробовать..
Vitaly от 8 мая 2020 19:03
engine/cache/system/plugins/ab6a5ed6ad5b0aee4501446100f96421.php on line 1369
Добавить комментарий

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

    • 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