Создание интернет-проекта. Часть 1

Создание собственного интернет-ресурса — дело достаточно хлопотное, но очень интересное. Я бы даже сказал, что лучшего занятия вечером, после работы не найти. Конечно, я не говорю о новостном портале или каком-то другом проекте, требующем много времени и постоянных ежедневных обновлений. Нет, скорее речь идет о развлекательном, тематическом ресурсе, который, как правило, создается «для души» и для единомышленников.

В большинстве случаев те, кто хочет создать что-то «для души», создают блоги. Проблем в этой сфере, благо, нет. Хочешь — используй бесплатные сервисы, такие как лайв-журнал или blogs.tut.by, или же сервис блогов от google, хочешь — купи хостинг, поставь движок и создай что-то уникальное не только по своему содержанию, но и по дизайну, компоновке и т.д.

В этой статье речь пойдет именно о создании своего проекта. Материал предназначен как для тех, кто хочет сотворить что-то маленькое и личное, так и для тех, у кого есть идея и он желает стартовать сразу с масштабного ресурса. Я расскажу поэтапно, что и как предстоит делать начинающему веб-мастеру. Материал опирается на опыт, который был накоплен в ходе развития ресурсов SASecurity group, а это почти 5 лет успехов и ошибок. Что ж, давайте приступим и создадим что-то уникальное (:. Я не буду привязываться ни к какой конкретной тематике, речь будет идти, так сказать, в общем о работе над интернет-сайтом.

Структура проекта

В первую очередь необходимо продумать структуру проекта. Делается это не за 5 минут и не стоит считать, что по ходу создания вы все придумаете. Если не иметь четкого плана строения сайта, то при работе вы будете то удалять компоненты, то возвращать их на место, по мере появления каких-то идей. Поэтому не пожалейте недельки, чтобы вечерами за листком бумаги порисовать блок-схемы. В процессе вы сами убедитесь, что идеи, которые еще вчера казались идеальными, сегодня будут иметь абсолютно другой вид.

Также полезно будет изучить примеры уже созданных и успешных проектов – это поможет узнать о каких-то примочках, о которых вы бы не додумались сами, и направить ход мысли в нужное русло. Вот только когда будете продумывать дизайн проекта, не стоит опираться на результаты ваших исследований Сети, потому что в итоге получится «шаблонное» расположение компонентов. В этом случае стоит импровизировать и располагать информационные блоки в самых интересных местах страницы, однако не стоит забывать про «эргономику» сайта. Например, посетителю будет не очень удобно, если для прочтения новостей вашего проекта ему придется прокручивать страницу вниз.

После того как начальная схема ресурса составлена, можно приступать к моменту весьма ответственному. Что это за момент? Смотрим дальше…

Система управления контентом

Контент (англ. content – содержание) – это информация, которая и будет находиться на сайте.

Система управления содержимым/контентом (англ. Content management system, CMS) помогает наполнять ресурс свежей информацией и позволяет ее упорядочить, производить с текстом различные операции. Раньше для подобных действий вам понадобился бы блокнот и отличное знание html. Однако прогресс делает свое дело, и теперь html-код генерируют скрипты. Впрочем, об этом ниже.

Существуют CMS трех типов. Обратимся к википедии:

1. Генерация страниц по запросу. Системы такого типа работают на основе связки «Модуль редактирования >>> База данных >>> Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создает
дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах.

2. Генерация страниц при редактировании. Системы этого типа суть программы для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта.

3. Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путем кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечении некоторого срока времени или при внесении изменений в определенные разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определенных информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем.

Сейчас в основном используются CMS третьего типа, поскольку это самый оптимальный способ исключить недостатки, указанные в первых двух.
Простота CMS заключается в том, что вся информация хранится в базе данных (БД) и предоставляется скрипту при запросе страницы, а скрипт уже генерирует обычный html с тем контентом, который передала ему БД. В администраторской панели, которая в народе называется просто админкой, вся информация представлена в удобном для редактирования виде, со всеми необходимыми инструментами.

Итак, каким образом быстро пополнять ресурс новой информацией, мы разобрались, теперь осталось только выбрать CMS. «Ха! Что может быть проще?» - скажете вы и будете абсолютно неправы.

Выбор CMS (движка)

Являясь в большинстве своем пользователями нашего народного интернет-провайдера РУП «Белтелеком», который предоставляет жителям нашей страны доступ в Сеть по технологии ADSL под торговой маркой ByFly, вы непременно пользовались и, скорее всего, еще пользуетесь гостевым доступом. По сути, это никакой не Интернет, а просто большая локальная сеть. Все ресурсы, к которым вы имеете доступ по гостю, находятся в пределах Беларуси, и только. Так вот, являясь пользователями всего этого, держу пари, что вы насмотрелись на те порталы, которые растут нынче как грибы после летнего дождика. Естественно, учитывая, что все они поголовно работают на движке DLE и дизайн у них шаблонный, после такого может и вкус испортиться =). DLE – движок наиболее простой в установке и полностью готовый к использованию после подключения к БД. Но мы делаем что-то действительно классное, а не унылую обыденность. Поэтому стоит обратить внимание на те движки, которые существуют кроме вышеуказанного.
Если вы наивно полагаете, что CMS очень мало, то я вас удивлю – их очень много. Сейчас я рассмотрю несколько наиболее популярных контент менеджеров, а вот про остальные можно без проблем прочитать на сайт - на этом ресурсе вы уж точно подберете что-то подходящее для своего проекта.

Начнем наш небольшой обзор CMS с моего любимого движка – wordpress. Это блогерный движок, и многие, услышав то, что я люблю его использовать при выполнении любых задач (будь то новостной сайт, развлекательный, личный блог или архив статей, и т.д.), кривятся и начинают высказывать свое мнение о «неудобстве» и «неприспособленности». На самом же деле все зависит исключительно от того, какой скин вы сверстаете или закажете у дизингера. Хочу заметить, что это правило относится к абсолютному большинству CMS. Поэтому — движок блогерный исключительно потому, что в дефолтном состоянии он отображает контент «в стиле блога», так сказать, а в остальном все зависит от веб-мастера.

Wordpress

Как я уже сказал – это движок для блогов, однако он отлично подходит и для любого другого проекта. Еще стоит учесть и то, что он достаточно часто обновляется, что положительно сказывается на безопасности ресурсов (о которой многие забывают, кстати говоря). Давайте рассмотрим особенности этот системы управления контентом:

. моментальная публикация;
. простота установки, настройки;
. поддержка веб-стандартов (XHTML, CSS);
. поддержка RSS, Atom, trackback, pingback;
. подключаемые модули (плагины) с уникальной простой системой их взаимодействия с кодом;
. поддержка так называемых «тем», позволяющих легко менять как внешний вид, так и способы вывода данных;
. «темы» реализованы как наборы файлов-шаблонов на php, что положительно сказывается на скорости и гибкости;
. громадные библиотеки «тем» и «плагинов»;
. заложенный потенциал архитектуры позволяет легко реализовывать сложные решения;
. наличие ЧПУ (Человеко-Понятный URL);
. наличие русских официальных и неофициальных переводов.

Отдельно хочу отметить пункт про плагины, потому, что для вордпресса можно найти практически любой плагин: встроенный форум, опросы, версия для печати, рейтинг постов и многие другие.

Работать над оформлением wordpress действительно очень просто. Тема оформления состоит из отдельных модулей - index, header, footer, sidebar и т.п.

Drupal

Еще одна очень хорошая система управления контентом. В последнее время друпал стал набирать обороты в популярности очень стремительно, я вам скажу. А количество конференций, посвященных этой CMS, радует глаз (и в Беларуси недавно была конференция, посвященная Drupal, по-моему, на базе БАТУ).

Давайте обратимся к CMS magazine и рассмотрим подробнее этот движок:

Drupal (от голл. druppel — капля) — система управления сайтом, написанная на языке PHP и использующая в качестве хранилища содержания реляционную базу данных (поддерживаются MySQL, PostgreSQL, а также любые СУБД, поддерживаемые библиотекой PEAR). Drupal является свободным программным обеспечением, защищенным лицензией GPL, и создается усилиями энтузиастов со всего мира. Начал разработку голландец Dries Buytaert, который и поныне является руководителем проекта.

Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов до информационных архивов или сайтов новостей. Функциональность обеспечивается подключаемыми модулями, обращающимися к общему API Drupal. Стандартный набор модулей включает, например, такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и др. Большое количество дополнительных модулей, значительно расширяющих базовые функции, можно скачать с официального сайта.

Наиболее важные функции, предоставляемые модулями, входящими в поставку Drupal:

. единая категоризация всех видов содержимого - от форумных сообщений до блогов и новостных статей;
. вложенность категорий любой глубины;
. поиск по содержимому сайта;
. разграничение доступа пользователей к документам (ролевая модель);
. динамическое построение меню;
. поддержка XML-форматов:
1. вывод документов в RDF/RSS;
2. агрегация материалов с других сайтов;
3. BlogAPI для публикации материалов с помощью внешних приложений;
. поддержка общей авторизации между сайтами на Drupal ("сайты-партнеры");
. короткие URL;
. поддержка сменных тем оформления сайта с предоставлением нескольких готовых вариантов;
. поддержка переводов интерфейса сайта на разные языки;
. возможность создания сайтов с пересекающимся содержимым (например, общей базой пользователей или общими настройками);
. раздельные конфигурации сайта для различных виртуальных хостов (в том числе собственные наборы модулей и тем оформления для каждого подсайта);
. механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей).

Дополнительные модули, размещенные в репозитории на drupal.org, позволяют значительно расширить функциональность системы. Несколько примеров:
Banner - баннерная система.
BBCode - поддержка форматирования BBCode для содержимого сайта.
Breadcrumbs - вывод иерархии страниц ("хлебных крошек").
Captcha - защитный механизм картинок "captcha", используемый при регистрации.
CCK – создание новых типов контента или добавление новых полей к уже существующим.
Clean URLs – «чистые ссылки» (без ?=& и т.д.).
Collapsible Text, Collapsiblock - возможность создания блоков и секций сворачивающегося текста.
DHTML Menu – меню с использованием JavaScript.
Ecommerce - электронный магазин.
External Links – подсветка почтовых и внешних ссылок.
Fckeditor - графический редактор для ввода контента.
Fivestar, JRating – возможность оценки материала.
Gallery - интеграция с галереей изображений Gallery2.
Image – возможность объединения изображений в галереи, контроль их параметров, преобразование изображений и т.д.
IMCE - модуль для работы с файлами.
Listhandler - интеграция с почтовыми рассылками.
Locale - возможность перевода интерфейса на множество языков.
Meta Tags – управление метаданными сайта и отдельных страниц.
Mollom, Akismet – эффективный антиспам для сайта.
OpenID - возможность авторизации по OpenID.
Pathauto – автоматическое формирование URL из заголовка.
Project – багтрекер.
SPAM - блокировка спама на основе алгоритма Байеса.
Tagadelic - создание облаков тегов.
Taxonomy – таксономия (категоризация содержимого с помощью словарей и терминов).
Thickbox, Lightbox, Shadowbox – предпросмотр картинок без перезагрузки страниц.
TinyMCE – HTML-редактор.
Token – сервис по использованию лексем для других модулей.
Upgrade Status - отслеживание доступных обновлений.
Views – гибкий метод отображения и сортировки информации.
XML Sitemap - создание удобной для поисковиков карты сайта.

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

Joomla

Еще одна популярная CMS. К сожалению, не могу поделиться личными впечатлениями, т.к. этим движком я не пользовался. Могу только припомнить мои обзоры уязвимостей в кодах, которые публиковались в КГ. И насколько я помню, у Joomla достаточно много уязвимостей. Настолько много, что это меня наталкивает на мысли о плохом коде, а не естественной правке багов.

Но все же, стоит ей отдать должное – CMS весьма распространенная и пользуется спросом неплохо. На CMS magazine ее рейтинг 4,2 из 5. Делайте выводы сами.

NetCat

Это система управления контентом, которую я выбрал для этого обзора, просто ткнув пальцем в небо. И, как оказалось, ткнул удачно. На аналитическом портале CMS magazine рейтинг NetCat составляет 5 из 5. Этот движок уже для проектов посерьезнее, которыми мы тоже интересуемся, если помните(;. Давайте рассмотрим некоторые ее возможности.

Профессиональная система управления сайтами NetCat является одной из ведущих систем управления контентом (CMS, Content Management System) на российском рынке. Первая версия системы была разработана в 1999 году. Согласно исследованию российского рынка CMS, проведенного интернет- изданием Webinform, система NetCat является самым продаваемым универсальным средством управления сайтами в России.

Система рассчитана на использование для следующих видов сайтов:

. корпоративные представительства;
. интернет-серверы портального типа;
. библиотеки данных, файл-архивы;
. интернет-издания, СМИ;
. электронные магазины
. и прочее, в т.ч. сложные интерактивные веб-системы.

Система администрирования в NetCat разделена на две части: интерфейс пользователя и интерфейс разработчика. Для использования системы не требуется знание интернет-технологий, языков программирования и разметки. Интерфейс системы прост и интуитивно понятен для пользователя, имеющего опыт работы на компьютере.

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

Профессиональная система управления сайтами NetCat постоянно улучшается, дополняется новыми возможностями. В процессе доработки обязательно учитываются пожелания наших клиентов, а также все новые веяния в среде интернет-разработчиков.

На этом все, что я хотел сегодня рассказать. В следующей части статьи мы займемся отладкой движка на локальной машине и, собственно, настройкой средств, которые необходимы для этой задачи.

Евгений Кучук q@sa-sec.org SASecurity gr.


Компьютерная газета. Статья была опубликована в номере 31 за 2009 год в рубрике интернет

©1997-2022 Компьютерная газета