А это клавиатура, с помощью которой я творю...
http://kurepin.ru/php/slang.ru/8/
Rambler's Top100
Строим сайт slang.ru, глава 8

Строим сайт slang.ru

Глава 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 - это будет дизайн "морды" сайта. Пока настоящего дизайна у нас нет, файл будет выглядеть весьма схематично. Вот такое мне нарисовалось:

Untitled
заголовок страницы

тело страницы

низ страницы

');?>

Теперь чуть-чуть подправим эту страницу: заменим "Untitled" в заголовке на

');?>

а "тело страницы" на

');?>

Получилось вот что:

<?=$title?>
заголовок страницы



низ страницы

');?>

Просекаете идею? Пока нет? Тогда следите за руками дальше.

В файле /www/brain.php пишем следующее:

');?>

И пишем в желудок /www/stomach.php следующее:

slang.ru








вот он, желудок!









');?>

Открываем 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, для начала.

Надеюсь, вы еще не отстали от моих мыслей? Тогда поехали дальше!





[шаг назад] [печатать] [в начало сайта]


person:
Ru Kurepin
COPi-number:
0000 0021 / atos
Business card

реклама на сайте
copyright ©2000-2002 Ruslan Kurepin