Хак Автоматическая смена бекграунда и не только

Тема в разделе "DLE", создана пользователем Горбушка, 2 сен 2013.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.038
    Продолжая цикл статей по продвинутому использованию ДЛЕ и использованию недокументированных возможностей, сегодня поговорим об автоматизации замены бекграунда. Конечно, можно использовать и для других целей.

    И так, все мы прекрасно знаем о наличии замечательных тегов [aviable] и [category], но мало кто любит городить туалетную бумагу в шаблоне из перечисления всех возможных категорий и т.д. И правда, разобраться в этом бывает сложно если не уделить на начальном этапе побольше времени.

    Я предлагаю подойти к решению проблемы с всем известного места. Нет, не задницы, а просто с обратной стороны =)

    Открываем index.php и после:
    PHP:
    $tpl->load_template 'main.tpl' );
    Добавляем очень простой код:
    PHP:
    $tpl->set '{bg}',  $category_id );
    Что мы сделали? В шаблон main.tpl добавили тег {bg}, который выводит номер текущей категории.

    Как это можно использовать? К примеру, прописать вот такой код:
    HTML:
    <body style="background: url('background{bg}.jpg')">
    Что нам это даёт: если мы находимся на главной или любой другой странице, кроме новостей - нам показывается бекграунд background.jpg, а на страницах категорий, новостей и т.д. показывается background1.jpg, background2.jpg и т.д., где цифра - номер текущей категории.

    Увы, если Вы используете мульти-категории или подкатегории - то тут выводится сразу несколько цифр. С одной стороны, это даже хорошо. Можно использовать ещё больше картинок, но с другой - нам это не всегда бывает нужно. Лечим:
    PHP:
    $bg explode(','$category_id )
    $tpl->set '{bg}',  $bg[0] );
    Что ещё можно интересного сделать? На самом деле очень много. В ДЛЕ целая серия переменных, которые не задокументированы.
    К примеру, переменная $dle_module используется для тега [aviable] и содержит название текущего раздела.
    Ещё есть волшебная $member_id, которая содержит информацию о пользователе. Благодаря ей можно менять бекграунд по номеру группы. (авторизовался - бг поменялся, оплатил ВИП - опять).
    Текущий номер страницы (постраничная навигация в новостях) можно получить не хитрым методом:
    PHP:
    $page intval($_GET['cstart']);
    Ну а номер текущей статьи и подавно содержится в константе NEWS_ID.
    Константа CLOUDSTAG содержит текущий тег, по которому Вы смотрите статьи (при клике на тег).

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

    Автор: Горбушка
    Только для nulled.cc
     
    Последнее редактирование: 4 сен 2013
    Kurman, t0wer, Шумадан и ещё 1-му нравится это.
  2. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    731
    Симпатии:
    421
    Горбушка, было бы вообще отлично если какой-нибудь сайтик (или твой блог) был с готовым применением этого и других решений. Когда это можно оценить визуально, совсем другое дело. Это в качестве пожелания... вдруг сделаешь ;)
     
    Горбушка нравится это.
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.038
    Да, конечно... Такой сайт есть, но руки не дойдут реализовать всё, о чём пишу.
    dle.gorbushka.name - тут есть демо по большинству модов, но выглядит всё это просто ужасно.

    К сожалению, практика показала, что очень мало людей интересуется этими статьями и моим блогом в целом. Собственно, по этой причине сейчас ушёл в разработку и т.д. Статей пишу мало, видео больше не снимаю, блог почти заброшен.

    Собственно, уже давно предлагал задавать свои вопросы и получать развёрнутые ответы на них в виде статей, самоучителей и т.д. с демо в том числе. Предлагал заказывать модули за совсем не большие деньги (3-5$ за модуль - цена ни о чём), но никто к этому всему не высказал интереса. Если интерес снова появится - готов продолжить всю эту работу и обновлять блог и сайт.
     
    t0wer нравится это.