Теория двигателей
Вебмастер, обновляющий страницы сайта вручную (не имеет значения каким редактором — ФронтПейджем или Блокнотом), напоминает Папу Карло, скрючившегося в своей каморке и строгающего тысячного Буратино. При добавлении нового материала на сайт ему нужно отформатировать текст в HTML, открыть файл с оглавлением раздела, найти нужный кусок кода, отредактировать его; открыть файл страницы «Новости», найти нужный кусок кода, отредактировать его; открыть файл главной страницы, найти нужный кусок кода, отредактировать его… И все это — только при самой простой структуре сайта. В сложном проекте публикация нового материала может потребовать гораздо более сложных манипуляций.
Потребность изменить структуру сайта ставит под угрозу само его существование. При более-менее сложном проекте бывает легче полностью переделать сайт заново, чем долго и занудно копаться в его «внутренностях».
Рано или поздно такая ситуация надоедает. Хочется, чтобы обновление сайта было простой операцией, а не напоминало по своим масштабам запуск «шаттла». Хочется, чтобы при изменении структуры сайта все его страницы автоматически менялись точно так же, как обновляются формулы в Exсel'е у тети Зины из бухгалтерии, когда она меняет курс доллара в одной ячейке. В конце концов, хочется вообще забыть про веб-редакторы и публиковать на сайте обычный текст, не заботясь о том, каким образом он превратится в HTML.
Единственный эффективный путь решения проблемы — применение «движка», обеспечивающего легкое и непринужденное обновление сайта.
Основной принцип работы такого программного механизма — это, во-первых, разделение структуры сайта, его контента (содержания) и оформления, а во-вторых, организация взаимосвязи между ними. В этом случае легко добиться того, чтобы при изменении какого-то элемента сайта все остальные элементы также менялись. Если же дизайн сайта и его содержание свалены в кучу (а так и бывает, если страницы создаются вручную в веб-редакторе), а структура вообще не зафиксирована где-либо (то есть просто на диске веб-сервера вебмастером созданы соответствующие каталоги и в них записаны файлы), то создать надежно работающий программный «движок», который мог бы четко «понять», как именно нужно переделать сайт в связи с изменением одного из элементов, попросту невозможно.
Кто-то из читателей, возможно скажет: «Так ведь можно сделать так: «шапка» и «подвал» страниц хранятся в отдельных файлах и просто вставляются в страницы с помощью SSI-инструкций. Таким образом, получается, что дизайн и содержание отделены друг от друга без всяких движков!»
Все не так просто. Во-первых, полного разделения дизайна и контента в данном случае не происходит: текст материалов все равно форматируется с помощью HTML. Можно, конечно, форматировать текст с помощью SSI-инструкций, но тогда писать текст будет слишком утомительно (помните, запуск «шаттла»?). Во-вторых, не происходит фиксации структуры сайта: файлы веб-страниц по-прежнему лежат в созданных для них каталогах, и для добавления нового материала нужно создать новый файл, прописать в него SSI-инструкции, а затем править файлы index.html для разделов сайта и главной страницы — в общем, все те же игры в Папу Карло.
Итак, если попытаться построить обобщенный «портрет» «движка» для веб-сайта, то получится такая картина.
Структура сайта (список разделов и список содержащихся в них материалов), шаблоны дизайна и текст материалов сайта содержатся в базе данных, размещенной на веб-сервере. Файлы изображений и другие двоичные файлы могут также храниться в базе данных, а могут размещаться просто в отдельных каталогах на диске сервера.
Для изменения структуры сайта и его содержания обычно предусматривается специальный веб-интерфейс. С помощью него, например, можно добавлять новые разделы и изменять или удалять уже существующие. Для добавления нового материала нужно ввести в поля формы его название, выбрать раздел сайта, к которому он будет относиться, и сделать copy+paste текста нового материала в форму. Веб-интерфейсы некоторых «движков» позволяют, помимо ввода текста, просто загрузить соответствующий текстовый файл на сервер и затем уже сами извлекают из него всю нужную информацию.
После того, как в базе данных произведены изменения (например, отредактирована структура сайта или добавлен новый материал), вебмастер нажимает соответствующую кнопку, запускающую программу (скрипт) обновления, перегенерирующую страницы сайта. Как вариант, программа обновления может запускаться веб-сервером автоматически, через определенные промежутки времени. Это может быть полезно, если содержание сайта обновляется постоянно, и не только веб-мастером проекта, но и посетителями (например, всевозможные каталоги — ссылок, программ, вакансий, объявлений и т.п.).
Скрипт обновления читает информацию из базы данных, анализирует структуру сайта, создает на диске сервера каталоги (если они не были созданы ранее) для разделов и генерирует в них страницы, собранные из текста материалов и шаблонов дизайна, хранящихся в базе данных. В некоторых «движках» скрипт не создает файлы на диске, а генерирует страницы «на лету» по запросам посетителей: в этих случаях URL'ы страниц выглядят не как www.site.ru/razdel/material.html, а примерно как www.site.ru/index.php3?section=razdel&page=material. Не слишком «красиво», но это уж как решат разработчики и их заказчики.
Хранение структуры, шаблонов дизайна и текстов в базе данных позволяет легко оснастить сайт функцией поиска, картой разделов (так называемая «карта сайта»), а также, например, дает возможность нагенерировать сколько угодно версий сайта: различного оформления — текстовую, для тех, кто смотрит сайт на экране сотового телефона, стандартную, flash-версию; различной ширины — стопроцентной, фиксированной; оптимизированные под разные браузеры — последнюю бета-версию Microsoft Internet Explorer, Netscape Navigator 1.0 и т.д. Без проблем решается вопрос альтернативного представления информации, например, в виде «версий для печати». В базе данных можно хранить не только текст материалов сайта, но и записи гостевых книг и форумов, результаты опросов, статистику посещений и т.п., легко интегрируя их в информационное наполнение сайта.
В следующей заметке я расскажу о двух совершенно разных практических реализациях «движков» для веб-сайтов: универсальной и очень мощной разработке профессиональной дизайн-студии и простом, но эффективном механизме для небольших контент-проектов.
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Большинство людей, стремящихся к цели, способны скорее сделать одно большое усилие, чем упорно идти избранной дорогой; из-за лени и непостоянства они часто утрачивают плоды лучших своих начинаний и дают обогнать себя тем, кто отправился в путь позднее, чем они, и шел медленней, но зато безостановочно Лабрюйер Жан де (1645-1696) - французский писатель, мастер афористической публицистики |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.