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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>     <title>Untitled</title> </head> <body> <center> заголовок страницы<br> <br> тело страницы<br> <br> низ страницы<br> <br> </center> </body> </html>

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

<?=$title?>

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

<? @include($stomach); ?>

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>     <title><?=$title?></title> </head> <body> <center> заголовок страницы<br> <br> <? @include($stomach); ?><br> <br> низ страницы<br> <br> </center> </body> </html>

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

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

<?   $title='slang.ru - профессиональные словари';  $stomach='stomach.php';  include('../inc/main.php'); ?>

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

проект <b>slang.ru</b> <br><br><br><br><br><br><br><br><br> вот он, желудок!<br> <br><br><br><br><br><br><br><br><br>

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

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





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



copyright ©2000-2017 Ruslan Kurepin