Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Дизайн в зависимости от времени года


Автор: Aliance 15.12.2006, 01:47
Хочу сделать дизайн динамический, он будет состоять из 2 частей: временносуточной и сезонной.
Тоесть будет максимум 8 вариантов - день лета, ночь лета, день весны, ночь весны, день зимы, ночь зимы, день очениЮ, ночь осени. Возможно, что-то из этого будет упущено (например не будет дизайна для ночи лета). Соотв. это все будет реализовываться в скрипте.

Так вот, пока у меня в мыслях только банальная конструкция switch, отталкиваясь от времени дня и сезона. Может у кого есть более продвинутые мысли?

Автор: Rock 15.12.2006, 02:06
сделать таблицу в БД, в которой указываются данные шаблона: id_шаблона, директория шаблонов,  CSS файл, дир. картинок, и т.п., в зависимости от того, что хочется делать; а также промежуток, с которого по который работает этот шаблон - разные поля для даты, и времени суток.

Узнаем текущую дату, ищем какому шаблону она соотвествует, и подгружаем его, если не находим ни одного шаблона - подгружаем шаблон по-умолчанию. Можно устанавливать шаблоны для любых дат, не только для сезонов, но и для праздников, или "праздничных сезонов" например новогодние дни.

например, для зимы-ночи, будет так: 
промежуток даты: с 1.12 по 31.02 промежуток дня с 00:00 по 06:00

ЗЫ: я не представляю, как можно будет редактировать такое большое кол-во шаблонов, поэтому вариант "каждому сезону по шаблону" я отбрасываю. Хотя в описанной схеме такое можно реализовать - меняя директорию шаблона. 
Мне бы было достаточно менять только CSS файл и(или) набор картинок. Хотя для например для определенных дат, такие как новый год, можно было бы менять и директорию шаблонов, чтобы поменять всё что угодно. 

Структура таблицы примерно следующая:
id | directory | cssfile |img_dir | date_from | date_to | time_from | time_to | description | is_default |

Автор: Aliance 19.12.2006, 17:57
Спасибо, вот что в итоге получилось:
Код

CREATE TABLE `templates` (
`tid` TINYINT( 2 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`css_dir` VARCHAR( 255 ) NULL ,
`js_dir` VARCHAR( 255 ) NULL ,
`img_dir` VARCHAR( 255 ) NULL ,
`default` BOOL NOT NULL ,
`start_date` VARCHAR( 5 ) NULL ,
`start_time` TIME NULL ,
`end_date` VARCHAR( 5 ) NULL ,
`end_time` TIME NULL ,
INDEX ( `start_date` , `start_time` , `end_date` , `end_time` ) ,
UNIQUE (
`title` 
)
) TYPE = MYISAM ;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)