Php уроки по созданию cms. Разбираемся с админкой CMS Made Simple. Бесплатная, используется PHP

Итак, учитывая все вышесказанное, я выбрала движок Joomla , и ринулась перерывать Интернет в поисках наиболее подробного, а самое главное наглядного пособия. Я прочла не одну книгу по этому движку и посмотрела кучу видео-уроков.

В итоге, пришла к выводу, что самые лучшие уроки по CMS Joomla - это видео-курс Евгения Попова «Joomla – Профессиональный сайт за один день» . Евгений проделал гигантскую работу, и создал просто уникальный курс, где очень удачно соединил теорию с практикой.

1. Курс состоит из 86 уроков, из них только два теоретических.

2. Весь курс напоминает мне уроки вождения с опытным инструктором. Шаг за шагом вы пройдете весь путь создания сайта на движке Joomla, начиная с установки локального сервера на ваш компьютер и заканчивая переносом сайта на сервер хост-провайдера.

3. Вы создадите самостоятельно четыре самых настоящих, а не абстрактных сайта, т.е. будете учится на реальных примерах.

4. Саму систему Joomla и ее возможности вы будете изучать непосредственно в процессе создания сайтов. Усвоение новой информации в этом случае происходит естественно, а значит знания усваиваются крепче и эффективнее, чем по традиционной схеме.

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

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

7. Между делом, вы сможете изучить HTML и CSS, уроки по этим языкам тоже включены в видео-курс и являются весьма наглядным пособием. Не буду кривить душой, но рано или поздно, вам все-таки придется обратить свой взгляд на HTML и CSS. От этого никуда не денешься и вы сами к этому придете.

8. В дополнительных материалах к курсу прилагается пакет программ, необходимый для создания сайта.

Итак, если Вы начинающий сайтостроитель и хотите изучить CMS Joomla быстро и без особых усилий, то видео-курс Евгения Попова - то, что доктор прописал!!!

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

Главным образом потому, что все течет и все меняется, быстро меняется и сама Joomla, выходят новые релизы, поэтому Евгений постоянно обновляет свой курс, добавляет новую полезную информацию. Если вы хотите иметь подробную грамотную инструкцию по работе с CMS Joomla, созданную опытным веб-мастером - приобретите видео-уроки « Joomla – Профессиональный сайт за один день» , это будет весьма полезная и очень выгодная инвестиция!!!

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

CMS — это аббревиатура первых заглавных английских букв распознается как по английский content management system. По русский переводиться как система управления контентом и предназначена для редактирования и управлением содержание информации на сайте.

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

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

Wordpress

Данная система управления контентом позиционирует себя как ведение сайта блога для простых задач. Большую популярность она несет как работа в блог сфере создание блогов. Но с большим количеством плагинов данная CMS стала очень популярной и на сегодня она становиться многофункциональной. С помощью движка WordPress создаются многофункциональные проекты и интернет магазины. Более подробно как работать CMS WordPress сможете в обучающих видео уроках и курсах.

Joomla

Изначально данный движок предназначался для сайтов для статей. Чтобы повысить функционал приходилось устанавливать дополнительные расширения и переходить на более новый уровень. Сейчас популярность движка очень большая и многие люди обучаясь CMS Joomla создают свои профессиональные сайты. Из уроков и курсов представленных на нашем обучающем портале Вы сможете научиться работать с этим движком.

Видео уроки CMS

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

Как настоящую CMS или только как платформу для блога. К настоящему времени споры улеглись сами собой, так как WordPress проявил свой функционал в достаточно обширном наборе разнообразных веб сайтов, начиная от простых многостраничных брошюр до полноценных социальных сетей (с использованием плагинов, подобных BuddyPress).

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

Сайт на WordPress с помощью плагинов и тем можно превратить в социальную сеть, форум, интернет-магазин, и многое другое. В нем имеется встроенный функционал блога, также возможно построить несколько сайтов, используя единственное ядро системы.

Сильные стороны

  • Обширное сообщество разработчиков с хорошо проработанной документацией и учебными материалами.
  • Бесплатные и коммерческие плагины и темы, которые открывают возможность реализовать практически любую идею сайта.
  • Удобная панель управления содержанием и внешним видом.

Недостатки

  • Cложная система для простых сайтов
  • Стандартная установка уязвима для атак
  • Нет официальной поддержки вне форумов, на которых вы можете и не получить ответа на свой вопрос.

Бесплатная, используется PHP

Используется несколькими известными компаниями в качестве CMS их сайтов, например MTV, Harvard University, и IHOP. Она также подходит в качестве основы для внутренней сети, например, используется в Citibank.

Joomla! имеет длинную историю развития и активное сообщество разработчиков (более 200,000 пользователей и активных участников), поэтому достаточно просто найти информацию и уроки по данной системе. Также существует огромное количество плагинов и дополнений для Joomla!, поэтому расширение функционала обходится без кодирования.

Несмотря на большое количество тем Joomla!, качество большинства из них уступает темам для WordPress.

Сильные стороны

  • Аутентификация пользователей может быть выполнена с помощью OpenID, Google, LDAP, и многих других методов.
  • Более 7000 расширений
  • Активное сообщество пользователей и разработчиков, множество доступной документации.

Недостатки

  • Панель управления не настолько простая, как у других CMS.
  • По сравнению с другими CMS меньшее количество высококачественных тем.

Бесплатная, используется PHP

Еще одна популярная CMS, которая используется известными компаниями, например, New York Observer, Popular Science, MIT, Sony Music, Fast Company. Она имеет большой набор функций для построения внутренних и внешних сайтов, а также огромный инструментарий для организации содержания.

Drupal имеет очень активное сообщество пользователей и разработчиков, доступно большое количество IRC каналов и форумов. Даже проводятся конференции, посвященные Drupal. Также существует постоянно обновляемая и улучшаемая документация, генерируемая сообществом. В ней можно найти ответы на вопросы об установке, построении сайтов и модулей, разработке тем и так далее.

Имеется более 6,000 дополнений (“модулей”), которые облегчают процесс расширения функционала Drupal. Таким образом, вы можете сконцентрироваться на создании дизайна и содержания, а не на кодировании особенных функций.features.

Сильные стороны

  • Отличная поддержка сообществом пользователей и разработчиков, включая IRC каналы и конференции.
  • Более 6,000 модулей облегчающих расширение функционала Drupal.
  • Большое количество компаний, предлагающих коммерческую поддержку сайтов на Drupal.

Слабые стороны

  • Может оказаться чрезмерно сложной для простых сайтов.
  • Недостаточное количество высококачественных бесплатных и коммерческих тем.
  • Структура темы достаточно сложная.

От $99.95 до $299.95 в зависимости от лицензии, используется PHP

Интересный гибрид коммерческого и бесплатного программного обеспечения. Основной код для ядра ExpressionEngine построен на CodeIgniter, который является бесплатной рабочей средой PHP. Но коммерческий аспект CMS означает, что разработчики и техническая поддержка сосредоточены исключительно на ExpressionEngine.

ExpressionEngine не имеет большого количества дополнений и плагинов, как другие CMS. Имеется только 22 модуля и чуть меньше 100 официальных плагинов. Но они покрывают большинство часто используемых функций, таких как wiki, форум, управление пользователями, списки рассылки, электронная коммерция, статистика и другие. Также есть неофициальные плагины, которые расширяют функционал CMS. Но набор встроенных функций в ExpressionEngine впечатляет сам по себе.

Сильные стороны

  • Коммерческая поддержка
  • Сфокусирована на безопасности, отсутствуют большинство проблем в данной сфере.

Недостатки

  • Высокая цена, особенно для коммерческих сайтов.
  • Может оказаться чрезмерно сложной для простых сайтов.
  • Нет интерактивной демонстрации, доступной перед покупкой системы.

Бесплатная, используется PHP

Вероятно является самой обделенной вниманием CMS. TextPattern очень гибкая CMS, хотя ее очень просто использовать как дизайнеру, так и разработчику. Она использует систему тегов для управления содержанием. Для конвертации текста в правильный код XHTML TextPattern использует Textile, что существенно упрощает работу с ней для плохо подготовленных пользователей.

TextPattern не имеет такого огромного количества тем и шаблонов как у WordPress, Drupal, или Joomla!. Есть немногим более 120 доступных тем. Также предлагаются темы для панели администратора, чтобы настроить ее для использования авторами материалов сайта.

Имеет около 700 плагинов и 50 модулей для TextPattern. Категории плагинов включают галереи изображений, навигацию, электронную коммерцию, пользовательские поля, архивы и так далее. Модули и плагины существенно расширяют функционал TextPattern и могут превратить его в более мощную CMS.

Сильные стороны

  • Очень простой интерфейс
  • Отлично подходит для сайтов всех размеров.
  • Отличная документация, включая онлайн руководства.

Недостатки

  • Маленькое сообщество разработчиков
  • Гораздо меньшее количество плагинов, по сравнению с популярными CMS.
  • Небольшое количество высококачественных тем.

Contao (бывшая TYPOlight)

Бесплатная, используется PHP

Имеет интерфейс пользователя, в котором используются функции Ajax и другие фишки Web 2.0 для повышения уровня удобства использования. В нем имеются расширенные функции редактирования содержания, включая редактирование нескольких записей одновременно и откат к предыдущей версии.

Contao также имеет несколько встроенных модулей. Модуль календаря поддерживает несколько календарей с различными событиями и объединением с RSS или Atom. Встроенный модуль рассылок поддерживает форматы писем HTML и обычный текст. Можно импортировать список адресов получателей из файла CSV и персонализировать письма. Встроенный модуль новостей/блога поддерживает категории, архивы, выделенные записи, комментарии и интегрирован с RSS или Atom. Доступно также множество дополнительных модулей, которые существенно расширяют функционал Contao.

Имеется очень мало премиум и свободных тем для Contao. Но такая ситуация не будет помехой для дизайнера, планирующего создать сайт с нуля, так как Contao имеет встроенную библиотеку CSS.

Сильные стороны

  • Нет ограничений на дизайн сайта.
  • Просто освоить для авторов и редакторов содержания.
  • Хорошие встроенные модули.

Недостатки

  • Имеется очень мало тем для CMS.
  • Инструмент настройки достаточно неповоротливый и плохо продуманный.
  • По причине наличия плохого инструмента администрирования, подходит для маленьких сайтов и небольшим количеством страниц.

Бесплатно, используется PHP

CMS с открытым исходным кодом, которая отлично подходит для разработчиков и дизайнеров, хорошо владеющими кодированием. Имеются рецепты и уроки для начинающих разработчиков, большой набор модулей для различных функций (блога, форм, форума и так далее). Дизайнеры могут использовать собственный код HTML и CSS при создании сайтов. Также поддерживаются многостраничные шаблоны.

SilverStripe также является мощным инструментом для управления процессом редактирования содержания сайта. Можно устанавливать собственный процесс одобрения материалов, публиковать и снимать с публикации статьи в определенные даты, устанавливать различные уровни доступа. Такая система может быть очень полезная, если сайт имеет много авторов, для которых доступ ограничен лишь определенными разделами.

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

Сильные стороны

  • Отличная система для разграничения доступа к разделам сайта.
  • Дизайнеры могут использовать HTML и CSS при разработке сайтов.
  • В основу разработки положен открытый исходный код.

Недостатки

  • Не все интуитивно понятно в панели настройки.
  • Имеется только около 150 расширений/модулей.
  • Доступно мало высококачественных тем.

Бесплатна, используется.NET

Дает дизайнеру полный контроль над процессом создания сайта. Есть стартовый набор оболочек, который упрощает процесс освоения системы. Также просто интегрировать Flash Silverlight содержание на сайт. Есть много известных сайтов, построенных на Umbraco, например, сайты компании Heinz и группы ABBA.

Umbraco облегчает процесс управления содержанием с помощью древовидной структуры видов вашего сайта. Поддерживаются номера версий, расписание публикаций и предварительный просмотр материала. Одним из преимуществ Umbraco является отличная работа с содержанием, созданным в Microsoft Word, что может оказаться решающим фактором для пользователей, которые используют в работе Microsoft Office.

Umbraco открытое API, которое позволяет разработчикам легко получать доступ к различным функциям системы.

Сильные стороны

  • Бесплатные и платные уроки для поддержки.
  • Мощная система для веб сайтов и интранет решений.
  • Открытое API

Недостатки

  • Основные дополнения платные.
  • Нет демонстрации работы системы.
  • Нет реально законченных тем для веб сайта.

Бесплатная, используется PHP

Это не только мощная CMS, но и рабочая среда для создания веб приложений. Разработка сайта может быть выполнена на разных уровнях. можно начать с темы и затем изменить стили без затрагивания кода. Или можно создать собственную тему с помощью HTML и CSS. Если нет проблем с редактированием PHP, то можно создать пользовательский шаблон.

Одним из преимуществ concrete5 является контекстный редактор. Разработчики попробовали воспроизвести функционал текстового процессора, который облегчает редактирование страниц при просмотре. Получился очень простой в использовании инструмент, который позволяет далеким от программирования людям управлять содержанием сайта.

Сообщество разработчиков concrete5 растет быстрее других. Имеется много тем и дополнений с поддержкой.

Сильные стороны

  • Простая конвертация сайта на HTML в concrete5.
  • Активное и растущее сообщество пользователей и разработчиков.
  • Имеется хостинг бизнес уровня, который предлагает сопровождение сайтов.

Недостатки

  • Много интересных плагинов стоят дорого.
  • Почти все лучшие темы платные.
  • Платная поддержка дорога, если не использовать их хостинг (от $125).

Как много веселых ребят
И все делают велосипед.
А один из них как-нибудь утром
Придумает порох.
Виктор Цой.

Сначала я хотел написать в раздел «Я пиарюсь» статью о том какой я молодец и какую замечательную штуку сделал но, немного поискав в сети, я без удивления обнаружил, что я совсем не единственный в своем роде. Тогда я решил пойти от обратного: наверное, практически каждый Веб-программист хотя бы раз в своей жизни пытается написать полноценную CMS. При этом, в процессе проектирования (а это процесс, зачастую, наступает уже во время написания кода) у разработчика непременно возникают вопросы. С этими вопросами он обращается к поисковикам и попадает на сайты тех, кто по подобным граблям уже прошествовал.

Итак, я стал смотреть, по каким же запросам попадают ко мне начинающие «разработчики велосипедов», и постарался осветить некоторые вещи, которые для меня самого были неочевидны в начале работ.

1. MVC - наше все!

Где бы не заходил разговор о разработке веб приложений, сразу же всплывает модная аббревиатура MVC (Model-View-Controller). Этот подход гласит, что интерфейс надо отделять от логики, а логику от данных. Не скажу, что я в полной мере проникся этими идеями, но то, что изменения в дизайне (или даже дизайнах) не должны затрагивать логику кода - я готов отстаивать с пеной у рта:)

Вот тут и покоятся грабли номер один: внешний вид надо отделить от логики программы. Как это сделать - каждый решает для себя сам. По этому вопросу копий сломано не мало: тут и различные шаблонизаторы, и xslt преобразования, и просто php+html вынесенные в отдельные файлы. Выбор большой, но «серебряной пули», как водится, не существует: на одной чаше весов лежит гибкость, на другой - понятность. Даже Smarty , с его «программированием для самых маленьких» многим пользователям кажется сложным. Так что если мы ориентируемся на пользователя, который хочет поставить систему «из коробки» и подпилить ее для своих нужд с минимальными знаниями программирования, то тут стоит поломать голову.

Кроме того, дизайны должны быть заменяемые и, возможно, даже «на лету». То есть нужно предусмотреть их удобное хранение и редактирование. И еще одна вещь, которая многими проигнорирована: дизайн должен быть легко редактируем и обновляем. Если вам приходилось адаптировать дизайн какого-нибудь бесплатного форума, состоящего из двух сотен шаблонов, в которых все намертво «прибито» таблицами и откуда-то «из логики» вставляются куски JavaScript, то вы понимаете, что именно видеть не хочется.

Я придумал такую конструкцию: в пользовательском дизайне присутствует только то, чего нет в базовом дизайне. То есть в самом минималистичном случае дизайн состоит из пустого каталога с названием дизайна. Понятно, что в этом случае дизайн будет выглядеть в точности так же как базовый, так как все недостающие части будут позаимствованы от него, но как отправная точка - это очень удобно. Если в дизайне появляется css, то система автоматически переключается на него (при этом html все равно заимствует из базового). Тоже самое и с JS. Что мы получаем при этом: в пользовательском дизайне лежат только те файлы, которые он сам сделал. Пользователю не надо помнить, какой файл он исправлял, а какой попросту скопировал из базового дизайна в начале работы. Так же на сайте отображаются практически все нововведения базового дизайна без правки пользовательского. Мне такая система показалось удобной и логичной, хотя некоторым она кажется несколько неожиданной. Взять ли ее на вооружение или придумать свою - решать вам.

2. Структура сайта

Приступаем к написанию ядра. Что должно делать ядро? А делать оно должно всю «грязную» работу: определять настройки сайта, права и настройки групп пользователей, используемые модули, шаблоны, параметры кэширования, локализации и т.п. То есть, чтобы к тому моменту как начинали работать подключаемые модули, они могли получить все интересующую их информацию от ядра. Звучит жутковато, но все это сравнительно легко пишется и работает, если четко представляешь себе взаимодействие элементов.

Я для себя решил, что сайт будет представлять собой не кучу страниц, сваленных куда-то в БД, а строгую иерархию. В итоге структура сайта древовидная и недостающие части, как и в случае с дизайнами, наследуются от родителей. Структура групп пользователей тоже древовидная - права и настройки так же наследуются от родителей. Файлы локализаций и модули так же имеют простенькую иерархию. Четкая иерархия позволила переложить на движок всякие неприятные вещи типа автоматической генерации карты сайта, различных меню, раздачу прав (да-да: чтобы дать право на что-то нескольким группам, совсем не обязательно редактировать каждую - достаточно определить иерархию) и т.п. Живи да радуйся! И все бы ничего, если бы не грабли:

Грабли первые. Кэширование.
Пока занимался проектированием своего «мегадвижка» было как-то не до кэширования… Да и подумаешь - что там сложного? Поместил страницу в переменную, сохранил ее в файл, а в следующий раз ее оттуда показал. Делов-то… в любой момент можно приделать! Ой… а у нас для зарегистрированных пользователей другая страница… Гм… ну подумаешь - две страницы в кэш сохраним! А еще в шапке надо вывести «привет, Вася»… ну значит этот фрагмент в шапке не кэшировать. и такой же фрагмент в подвале… и в середине… Мда… Я еще бы надо разные части страницы кэшировать на разные сроки… Садимся и переписываем движок и систему кэширования на кэширование блоками - чтобы каждый блок имел свой срок жизни.
Грабли вторые. Кэширование.
Как?! Опять кэширование? Уже ведь сделали все красиво! Ну да… сделали… и оно даже работало, пока не встала задача генерировать контент для каждого пользователя на основе его личных настроек. Размер кэша при этом растет со скоростью реактивного истребителя, а его содержимое устаревает много раньше, чем будет запрошено повторно. Вместо ускорения сайта получаем его замедление, и гигабайты никому не нужных кэшированных страниц… Главным скриптом на сайте становится «его величество» инвалидатор кэша. Мда… переписываем движок снова: на этот раз реализуем кэширование на уровне запросов к БД, так как это самое узкое место в производительности. Переписали… все - нирвана.
Грабли третьи. Кэширование.
Смотришь на свое творение и чувствуешь себя полным идиотом: вместо того чтобы сохранить страницу целиком, каждый раз ее создаю. А ведь кэширование задумывалось с точностью для обратного! Как же я так лопухнул-то?

Результатом в итоге явилось то, что некоторые модули кэшируются блоками, а некоторые - на уровне запросов. Это позволило месяцами хранить в кэше такие редкоизменяемые вещи как, например, меню сайта.

Урок же для себя я вынес такой: систему надо изначально проектировать таким образом, чтобы на определенных этапах исполнения иметь сгруппированные данные, которые можно легко положить в кэш или взять оттуда. Так же система кэширования не должна быть жестко завязана на движок, так как сегодня вполне достаточно хранить кэш в файлах, а завтра (или даже сегодня вечером) уже подавай работу с memcache-сервером.

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

3. Модульность.

Современную систему тяжело представить как «вещь в себе» - она должна иметь интерфейсы для расширения своего функционала. Таким образом, мы переходим к самой вкусной части CMS - написание модулей. Тут тоже полно вопросов: как должен выглядеть модуль, как подключаться к системе и т.п.
В некоторых системах вызов модулей жестко прописан в ядре системы, так что если ты хочешь написать модуль или установить сторонний, то залезайте в исходный код, вооружайтесь мануалом по установке и вписывайте в код соответствующие вызовы. При всем идиотизме подхода, многие системы именно так и функционируют. Есть вариация этого решения: каждый модуль - это отдельный файл в некоем каталоге. В этом случае мы получаем не просто необходимость прописать модуль в ядро, но еще и выполнить его в виде одного файла. Еще встречались варианты с активными шаблонами: то есть вписали в шаблон {module_name} и когда парсер дошел до этого тега - вызывается на исполнение модуль module_name, результат работы которого оказывается на месте тега. Возможно, такой путь и удобен, но в данном случае мы не только не отделили логику от представления, но как раз наоборот - хорошенько их перемешали.

После определенного количества шишек я пришел к системе, которая, возможно, и не является образцом лаконичности и простоты, но мне видится достаточно удобной. Каждый модуль - это отдельный каталог, из которого ядром вызывается всего один файл (index.php). Данный файл может, как выводить «Hello world!», так и подключать файлы управления гиперпространственным квазиизлучателем - это уже как разработчику модуля будет удобно. В том же каталоге лежит xml файл с описанием параметров модуля, возможных настроек и системой прав. Этот файл используется для того, чтобы система могла сама добавлять модули и не перекладывать эту головную боль на пользователя: нажал кнопку «установить модуль» - пожалуйста, получите.

С установкой разобрались. Встает новая проблема - как не позволить пользователю разместить на одной странице, скажем, фотоальбом и, например, форум? К здравому смыслу уповать бесполезно, поэтому нужна типизация модулей. Модуль такого-то типа (я для таких модулей где-то подсмотрел понятие «компонент») может быть на странице только один.

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

Некоторые вводят для этого аналог никсового runlevel, где для каждого модуля надо прописать между какими именно модулями он должен быть подключен. Как пользователя, меня такое решение повергло в прострацию, но как разработчик я придумал почти тоже самое: модули разделены на три больших группы. Одна из групп - уже упоминавшийся «компонент», две других отличаются только тем, что модули одной группы подключаются до компонента, а другой - после. Причем, это разделение от пользователя я скрыл, так что для него остались только «компонент» и «просто модуль».

Итак, модуль спроектировали, с подключением определились… Теперь надо решить как его настраивать и как к нему допускать. А тут как раз все просто: раз уж у нас ядро предназначено для «грязной» работы, то пусть у него голова и болит - модуль в xml выдал список настроек, а ядро пускай его разбирает, хранит и предоставляет по запросу - тут как раз все просто.

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

4. Обновления

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

У меня были идеи относительно двух вариантов: скрипт скачивает обновления во временную директорию, а потом, запросив у пользователя параметры доступа к FTP, обновляет сам себя. Так ему и прав лишних давать не надо, и происходит все автоматически, и обновления гоняются в пределах сервера… вот только придется либо каждый раз запрашивать у пользователя параметры доступа к FTP, либо хранить их тут же на сайте… то есть, все яйца в одной корзине. Поэтому я предпочел другой вариант: пользователь сам скачивает обновления (архивом или через svn), заливает их на сайт, а код на сайте, почувствовав что он стал «новее» вносит необходимые исправления в БД и/или настройки… А первый вариант все же был красивее… но не отважился я.

Это самые запомнившиеся вехи моего «велосипедостроения». Читая это я очень жалею, что в начале работы я не встретил чего-то подобного, а у меня самого было недостаточно опыта и шишек чтобы задать «правильные» вопросы. То что у меня получилось в итоге, вы

Войдите в консоль администратора с адресом http://www.site.com/admin, с использованием данных из шага 4 процесса установки. Все в админке доступно через главное меню в виде визуальных блоков, которое дублируется слева вертикальной навигацией, с раздвижными пунктами, по типу аккордеона. Давайте вкратце рассмотрим, что здесь находится.


После того, как мы ознакомились со всеми пунктами меню панели управления CMSMS, самое время вернуться к разделу Администрирование сайта и разобрать его возможности подробнее.

    • Пункт Общие настройки состоит из нескольких подразделов.
    • Страница по умолчанию. Предоставляет параметры по умолчанию, которые будут применяться ко всем новым страницам в качестве начальных установок, такие как: тип контента по умолчанию, метаданные, значения для дополнительных атрибутов, показывать ли в меню, активная или неактивная (не отображается не только в меню, но и вообще на сайте), использовать ли протокол HTTPS для защищенного соединения, можно ли кэшировать. Никак не влияет на настройки уже существующих страниц.
    • Обслуживание системы. Содержит очень полезные функции, которые могут пригодиться любому вебмастеру.
      Состоит из трех вкладок: База данных, Кэш и Содержание, Изменения. Made Simple позволяет управлять базой данных: оптимизировать и восстанавливать таблицы. В Статусе базы данных указывается количество найденных таблиц, когда проблемы не выявлены отображается сообщение No structural errors were detected in the database.
      Зачастую при внесении каких-либо изменений на сайт приходится очищать кэш. С помощью вкладки Кэш и Содержание это можно легко сделать через админку CMSMS. Подраздел Статус содержимого показывает количество найденных страниц и позволяет обновить позиции иерархии страниц.


      Изменения показывают что нового появилось в последних версиях системы.
    • Информация о системе. Данный раздел собирает сведения об установках CMS Made Simple, таких как «Установленные модули», » Информация о конфигурации», » Информация о PHP » , «Информация о сервере» и «Информация о разрешениях». Основное назначение — помощь при диагностировании возможных проблем, чтобы вы сразу могли видеть все настройки системы.
    • Контроль системы. Основная его функция заключается в поиске файлов, которые, возможно, были изменены при взломе системы или других возникших проблемах. Для начала требуется скачать файл контрольной суммы — это обычно делается непосредственно перед запуском сайта или после любых существенных изменений (обновлений). Нажмите нижний пункт Загрузить контрольную сумму файла. Далее выберите пункт Провести проверку и укажите скачанный файл. Эта функция сравнит контрольные суммы из загруженного файла с файлами текущей установки. Если все в порядке, система выдаст сообщение — Все контрольные суммы совпадают с загруженными файлами.
      Журнал Администратора. Записывает детали действий пользователей, выполняющих задачи по обслуживанию на сайте.