Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

На пути создания X-Двигателя сайтов Структура сайта


«На пути создания Х-двигателя сайтов»
Автор рассылки: Хусамов Сухроб
 
Выпуск № 8
28 февраля 2006
«Структура сайта»
Приветствую!

То ли ваши письма до меня доходят, то ли погода неважная. Пишет только ОДИН человек из 64-ех. Короче, я решил реорганизовать рассылку, о чем извещу скоро. Итак, поговорим сегодня о структуре сайта. Раз уж никто темы не поднимает толком.

 

Напоминаю! Эта рассылка предназначена как для НЕСПЕЦИАЛИСТОВ в области веб-технологий, так и для прочих гуру, которые заинтересованы в создании качественно-нового двигателя сайтов.

Начну с письма Стаса (написал и подумал, у меня что, тут куча писем:).

Привет.
Представлюсь зовут меня Стас, фамилия не важна.

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

Сайт представляет из себя набор виртуальных страниц содержащих функции. То есть нет блока новости, нет блока статьи и тд.

Примитивно структура такая: есть обработчик который ловит запрос mod_rewrite (любой, типа?req=/abc/cbd/dba/) Затем обращается к древовидной базе типа:

<data>
    <level id="0" label="Компания XXX" type="tpl" path="main">
        <level id="1" label="О компании" path="about" file="about.xml" transform="default_text_page.xsl">
            <level id="2" label="Люди" path="about/people" file="people.xml" transform="default_text_content.xsl">
                <level id="3" label="Вася" path="about/people/vas" file="people_base.xml" transform="select_people.xsl"/>
            </level>
            <level id="2" label="История" path="about/histoty" file="hist.xml" transform="default_text_content.xsl"/>
        </level>
        <level id="1" label="Услуги" path="services" file="services.xml" transform="default_cat.xsl">
    </level>
</data>


Откуда получает необходимую ветку xml-файл с текстом и функциями и xsl-файл с дизайном.

Лично мне нравиться такой подход полной универсальностью любая страница может быть чем угодно и содержать что угодно. Это если очень кратко. В полноценную CMS мне это преобразовать не удалось, нехватает ни знаний, ни времени.

Я так понял что вы хотите опубликовать свою разработку. Когда это произойдёт ?

---

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

По поводу скорости работы я пока затрудняюсь вообще говорить. Весь мой двигатель, к примеру, построен с весьма интенсивным использованием XML. И пока тормозов не наблюдалось. Да, работает медленнее, но тормозов нету. Думаю, понятно о чем я.

Теперь о недостатках вышеприведенного примера. Вот берет владелец сайта и начинает рисовать структуру. Создает он раздел новостей. И что в него он вложит? В примере пока абстрактный xml-файл. А пользователю нужны новости. То есть нужно к разделам сайта прикреплять ФУНКЦИИ! Понимаете? Строим дерево из разделов и к каждому разделу назначаем функцию: новости, каталог товаров, раздел статей, раздел вакансий. Почему? Обычный пользователь xml-файл с нужным ему содержимым не напишет. Ему проще будет, и эффективней все создать визуально на понятных ему терминах.

Кстати, не надо стесняться, если вам кажется, что ваш способ удобный, то так и говорите. Вот видите своими глазами, что есть еще такой человек, то есть я, который не только считает вышеназванный способ удобным, я считаю его САМЫМ удобным и самым эффективным. Я его пытался и так и сяк перекраивать. Все равно прихожу к одной и той же схеме. То есть это я к тому, что не надо стесняться своих бредовых мыслей. Надо стесняться их не высказывать. Чаще так и бывает, что самые гениальные идеи и есть на вид самые бредовые. Но потом,.. в общем мы потом летаем на самолетах, хотя кто-то на полном серьезе говорил что не полетит.

Это было лирическое отступление. Итак, про свою разработку скажу, что опубликую в скорейшем времени. Дату не назову, просто оповещу в рассылке.

Резюме такое, движок должен обрабатывать запрос и определять к какому разделу он обращается. Далее вызывается главная функция этого раздела. Функция выдает данные, основываясь на запросе и генерирует поток XML-данных. Последние оформляются в HTML или еще во что там нужно при помощи стилей XSL.

Что можно добавить? Надо подумать, как прикреплять несколько функций к одному разделу и понять зачем это нужно. Также понять как ввести мультисайтовость (чтобы один движок обрабатывал запросы для разных сайтов - то есть разных доменов). И еще нужно понять как сделать, чтобы запросы выглядели, например, так: /news/2005/02/12/, вместо такого /news/?year=2005&month=02&day=12. Причем без использования mod_rewrite, только средствами движка. Я это уже придумал, но хочу услышать сначала ваше мнение. Тут нюанс получается такой, запрос /news/ есть запрос к разделу news, а запрос /news/2005/02/ есть запрос к тому же разделу news, но с параметром 2005/02. Чуете о чем я? Если нет, объясню в следующем выпуске.

Еще раз напоминаю: ПИШИТЕ ПИСЬМА! Пишите о себе и отвечайте на вопрос "Зачем подписались?", пишите о требованиях к CMS (системе управления сайтом), пишите о концепциях ваших двигателей, если есть.

Всего доброго!
С вами был Хусамов Сухроб.
Пишите по адресу: xpower@suhrob.spb.ru

Внимание! Любое письмо может быть опубликовано полностью или частично, если не будет указано, что публиковать нельзя. Адреса публиковаться не будут, если вы специально об этом не попросите.

«На пути создания Х-двигателя сайтов»

В избранное