• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

Горбушка

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

И так, все мы прекрасно знаем о наличии замечательных тегов [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
 
Последнее редактирование:
Горбушка, было бы вообще отлично если какой-нибудь сайтик (или твой блог) был с готовым применением этого и других решений. Когда это можно оценить визуально, совсем другое дело. Это в качестве пожелания... вдруг сделаешь ;)
 
Да, конечно... Такой сайт есть, но руки не дойдут реализовать всё, о чём пишу.
dle.gorbushka.name - тут есть демо по большинству модов, но выглядит всё это просто ужасно.

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

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