Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Шаблоны (TPL) День и Ночь - смена шаблонов на сайте

День и Ночь - смена шаблонов на сайте


     22.04.2012    Шаблоны (TPL)    1971

вопрос
Нашел такой отличный хак, но обнаружился небольшой косяк.
После правки init.php, нельзя назначить на стат. страницу отдельный шаблон...
Может кто подскажет решение? :)
1. Создаем минимум 2 шаблона.
2. Открываем файл /engine/inc/options.php
3. Находим:
showRow($lang['opt_sys_as'], $lang['opt_sys_asd'], makeDropDown($sys_con_skins_arr, "save_con[skin]", "{$config['skin']}"));

4. Заменяем на:
showRow('Шаблон днем', 'Выберите шаблон который будет днем на сайте', makeDropDown($sys_con_skins_arr, "save_con[skin_day]", "{$config['skin_day']}"));
    showRow('Шаблон ночью', 'Выберите шаблон который будет ночью на сайте', makeDropDown($sys_con_skins_arr, "save_con[skin_night]", "{$config['skin_night']}"));
    showRow('День начинается / заканчивается', 'Формат: 0 - 23 часа', "Нач: <input class=edit type=text style=\"text-align: center;\" name='save_con[skin_day_start]' value='{$config['skin_day_start']}' size=3> / Кон: <input class=edit type=text style=\"text-align: center;\" name='save_con[skin_day_end]' value='{$config['skin_day_end']}' size=3> ");

5. Заходим в админку а потом в настройки системы. Выбираем шаблон для дня и ночи и пишем во сколько начинается и заканчивается день (формат часов 0 - 23)
6. Открываем /engine/init.php
Находим:
$tpl = new dle_template;

Добавляем после:
$hour = date("G");
if ($hour > $config['skin_day_start'] and $hour < $config['skin_day_end'])
{
    $config['skin'] = $config['skin_day'];
}
else
{
    $config['skin'] = $config['skin_night'];
}

Ответа пока нет


Комментарии пользователей (9)

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 22 апреля 2012 09:45 - Админ

Я бы сделал подобную вещь на js и css
в зависимости от времени суток яваскрипт будет подгружать разные css файлы, которые и превращают дневной шаблон в ночной.
А вообще по хорошему нужно предоставлять этот выбор пользователю. Может ктото захочет использовать дневной шаблон ночью и наоборот.

Каков вопрос - таков и ответ. Просто помните об этом.

klaf
1

45 | 40

klaf - 22 апреля 2012 13:31 - Юзер

Не не не! :)
Как менять css я уже нашел, и даже тут есть решение! :)
Но нужно именно между шаблонами переключение!

Dimaxa_Demon
2 | 2

Dimaxa_Demon - 23 апреля 2012 01:41 - Юзер

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

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 23 апреля 2012 19:15 - Админ

klaf,
как то так скорее всего
$hour = date("G");
if ($hour > $config['skin_day_start'] and $hour < $config['skin_day_end'])
{
    $config['skin'] = $config['skin_day'];
}
elseif ($static_blablabla)
{
$config['skin'] = $config['skin_static'];
}
else
{
    $config['skin'] = $config['skin_night'];
}

только вместо $static_blablabla и skin_night нужно свои значения ставить.
но это не есть гуд, программисты вам это точно скажут.

Каков вопрос - таков и ответ. Просто помните об этом.

klaf
1

45 | 40

klaf - 24 апреля 2012 00:07 - Юзер

А чего такого плохого? :)

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 24 апреля 2012 09:49 - Админ

А что хорошего в том, что действия, которые должны выполняться на стороне клиента, причём желательно по его усмотрению, выполняются на стороне сервера?

Каков вопрос - таков и ответ. Просто помните об этом.

rashpil
33

232 | 182

rashpil - 24 апреля 2012 11:32 - Эксперт

А то что везде день и ночь наступают по-разному - это х**ня?) У меня например с украиной разница в -5 часов. Когда там только рассвет, у меня уже практически полдень.

+ к тому. Я бы посоветовал сделать на в профиле галочку "Менять шаблоны днём и ночью". Те кому не нравится, могли бы отключить сей девайс. А да, скрипт переключения тут уж лучше выполнять на JS.

Mr. Hyde
5

181 | 183

Mr. Hyde - 24 апреля 2012 13:39 - Юзер

Оптимальный вариант, как уже сказал Паша и rashpil - это JS.

Dimaxa_Demon
2 | 2

Dimaxa_Demon - 24 апреля 2012 15:55 - Юзер

А попробуй вот так:
$hour = date("G");
if( !($static) ){
    if ($hour > $config['skin_day_start'] and $hour < $config['skin_day_end'])
    {
        $config['skin'] = $config['skin_day'];
    }
    else
    {
        $config['skin'] = $config['skin_night'];
    }
}

Ну для статических нужно проверять выставлен ли для них особенный шаблон или нет.. Если нет - то давать шаблон дня или ночи, а если выставлен то впихивать тот что нужно...

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы