![]() |
![]() |
| http://kurepin.ru/php/slang.ru/8/ |
|
Строим сайт Глава 8. Планирование-6: внешний вид Распланировав "внутренности", давайте немного обратимся к оформлению сайта. Сделаем так, чтобы на сайт можно было не только натянуть любой скин (дизайн), но и реализуем возможность работы одновременно с несколькими дизайнами. "Зачем это надо", - спросите вы? Я отвечу - для возможности реализовать на сайте многоязычность. Не верю я во всякие "хитроумные" способы сделать нормальную многоязычность путем подстановки языковых наборов фраз, которые выводятся из массива или базы данных. Как только дело доходит до множественных чисел, склонений и так дальше, так любые "хитрые подходы" начинают сильно хромать. Кроме того, часть текста может быть выведена на графических изображениях оформления, поэтому задача еще больше усложняется. Я предпочитаю иной подход к многоязычности и разнообразию в дизайне. Суть моего подхода я постараюсь постепенно донести до вас в процессе создания сайта slang.ru. Начнем с того, что мысленно разделим сайта на группы страниц по принципу однообразия в оформлении. В 99% случаев это будет одна большая группа изо всех страниц сайта + 1 головная страница, которая иногда сильно отличается от остальных. Теперь договоримся о том, что каждая страница (за некоторыми исключениями) расположена в своей директории на диске. То есть, мы не делаем страницы так: /user_list.php /user_new.php /stat.php а делаем вот так: /user/ /user/list/ /user/new/ /stat/ В каждой директории расположены два файла: index.php и, например stomach.php (stomach - желудок). Для большей элегантности можно добавить в настройки apache (или в файл .htaccess) правило трансляции файла brain.php как индексного файла и пользоваться парой: brain.php (мозг) + stomach.php (желудок). Это просто, достаточно положить в каталог /www файл ".htaccess" со строкой: DirectoryIndex brain.php brain.html brain.htm и обращение к директории "/" будет инициировать выполнение файла brain.php. Почему я их так называю? Потому, что первый будет обдумывать запросы и отдавать команды, а другой - переваривать данные. Ну и, чтобы было не так скучно программировать. Дальше я их так и буду называть для ясности. Файл .htaccess в корень сайта я уже положил. Теперь давайте разберем каждый из этих файлов - поймем их основные функции. brain.php - запускается первым, делает все необходимые проверки и настройки, после чего передает обработку данных другим файлам, путем их подключения к себе (include). stomach.php - вызывается в последнюю очередь из середины файла, в котором описан сам дизайн. Понимаю, что выразился несколько мутновато, поэтому давайте лучше разберем эту ситуацию на примере, отвлекшись на пару минут от планирования. Положим в папку /inc файл main.php - это будет дизайн "морды" сайта. Пока настоящего дизайна у нас нет, файл будет выглядеть весьма схематично. Вот такое мне нарисовалось: highlight_string(' тело страницы низ страницы Теперь чуть-чуть подправим эту страницу: заменим "Untitled" в заголовке на highlight_string('=$title?>');?> а "тело страницы" на highlight_string(' @include($stomach); ?>');?> Получилось вот что: highlight_string(' @include($stomach); ?> низ страницы Просекаете идею? Пока нет? Тогда следите за руками дальше. В файле /www/brain.php пишем следующее: highlight_string(' $title=\'slang.ru - профессиональные словари\'; $stomach=\'stomach.php\'; include(\'../inc/main.php\'); ?>');?> И пишем в желудок /www/stomach.php следующее: highlight_string(' проект slang.ru вот он, желудок! ');?> Открываем и видим... Вот так-то! Теперь притормозите и осмыслите: когда вы обращаетесь к странице "/", apache интерпретирует файл brain.php. В нем присваиваются две переменные - $title и $stomach. В первой содержится заголовок для страницы, а во второй - имя файла, которое должно быть отображено внутри дизайна. Затем идет include страницы с дизайном, где присвоенные переменные и делают свое дело - название страницы и линковка ее "желудка". Соответственно, в "желудке" могут производиться любые вычисления и запросы в базу, которые необходимы в данном конкретном случае. Теперь давайте, определим, чего же хорошего в подобном подходе. Да много чего. 1. Из файла brain.php можно вызвать любое оформление. Например, если надо показать другой язык - линкуется не файл /www/main.php, а, скажем, /www/english/main.php. 2. Если надо показывать авторизованным пользователям и гостям сайта разное содержимое по этому адресу, то подставляется путь к правильному файлу в переменную $stomach. Ну и так дальше. В процессе работы вы привыкните к такому подходу; уверяю вас, это удобно и эффективно. Ну вот, собственно, мы и распланировали нашу визуализацию. Осталось только нарисовать дизайн, нарезать его в html и положить в /inc два файла: main.php и page.php, для начала. Надеюсь, вы еще не отстали от моих мыслей? Тогда поехали дальше! 07.08.04 |
| реклама на сайте |
|
…
|
| copyright ©2000-2002 Ruslan Kurepin |