Технические особенности CMS Cotonti

Прежде, чем начать рассказ про все «изюминки» CMS, отметим, что называть ее новой не совсем верно. Cotonti является преемником Seditio CMS, которая была создана на базе системы Land Down Under, а значит Cotonti - наследник более чем семилетнего опыта работы над качеством и стабильностью. В Cotonti мы стремимся реализовать основные течения web программирования, при этом сохранив все самое лучшее старой школы программирования.

#1. Процедуры и функции

Возможно, вы уже готовы заявить, что данный подход устарел и должен принадлежать истории, что сейчас панацеей является ООП (объектно-ориентированное программирование). Если это так, то вам стоит присмотреться к другим системам управления сайтами, например: Joomla, Xoops, e107 и другим.

Мы, команда разработчиков Cotonti, приняли осознанно данный выбор, основываясь на следующих причинах:
  • Код должен быть простым и легким для понимания
  • Используя «процедурный подход» мы опережаем остальные системы в скорости обработки запросов
  • Данный подход отличает нашу систему от других, которые высказывают «полностью ООП», «Настоящий Web 2.0» и другие громкие лозунги, от которых больше шума, нежели практической пользы.
С другой стороны, мы не настолько стары и консервативны, как Вы могли бы уже представить. Основной код системы управления основан на процедурном API, но определенные части фреймворка основаны на классах и библиотеках классов. Таким образом, наша система воплощает все самое лучшее этих концепций программирования.

#2. Модель-представление-контроллер (Model-View-Controller или MVC)

Cotonti следует шаблону проектирования MVC, который свойственен для большинства интернет приложений. Суть данной концепции заключается в делении всей инфраструктуры сайта на 3 части:
  • Данные. Вся информация хранится в БД, вывод данных осуществляется посредством специального API. В настоящее время Cotonti поддерживает только СУБД MySQL. Поддержки других баз не планируется, так как MySQL является самой популярной и наиболее оптимальной для веб-приложений. Хотя, при необходимости возможно написание специального адаптера для других СУБД.
  • Представление (вид). Это непосредственно сам дизайн сайта, то, как посетитель вашего сайта его увидит. В Cotonti дизайн отделен от кода посредством шаблонов. Любой веб-дизайнер может быстро и без дополнительных усилий освоить работу с шаблонами. В качестве шаблонизатора (системы, которая обеспечивает поддержку шаблонов) мы использовали XTemplate, который является весьма гибким и очень простым в использовании.
  • Контроллер. Это сам код движка, который связует все звенья воедино и обеспечивает работу сайта.

#3. Модульная архитектура

«Сердцем» данной системы является набор библиотек, которые необходимы для работы всего сайта. Этот набор библиотек называют ядром или CMF (Content Management Framework). В целом, это набор файлов, в которых находятся функции и классы, обеспечивающие работу модулей и плагинов.

Основные части сайта представлены модулями, т.е. скриптами, которые отвечают за работу основных областей сайта: форума, страниц, личных сообщений, опросов и т.д.
Гибкость модулей обеспечивается плагинами, небольшими скриптами, которые внедряются в модули, тем самым расширяя функциональность последних. Это внедрение позволяет получить необходимый результат, не прибегая к изменению ядра. Плагины могут быть полностью автономными, в виде всплывающих окон или ajax частей.

Макеты всех модулей и плагинов находятся в шаблонах. Из шаблонов формируется тема (скин) сайта. Каждый скин может иметь несколько вариантов оформления.

#4. Интернационализация

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

В Cotonti изначально включена поддержка Unicode и по умолчанию используется UTF-8.
Интерфейс системы поддерживает интернационализацию посредством языковых файлов. Все языковые файлы делятся на файлы: ядра, модулей, плагинов, тем оформления. Если по какой-то причине нет необходимого вам перевода системы, Вы можете сделать его самостоятельно или при помощи переводчика. Наше сообщество предоставит Вам необходимую помощь.

#5. Стабильность и безопасность

Seditio считался одной из самых стабильных систем управления сайтом в мире (если верить багтракам), а стабильность при написании системы стояла в качестве первостепенной задачи. При создании Cotonti мы придерживались данной традиции. Кодерам известно о SQL-инъекциях, межсайтовом скриптинге (XSS), подделке HTTP-запросов (CSRF), ошибках PHP, поэтому при создании Cotonti наши разработчики уделяют особое внимание защите, как пассивной (внимательное написание кода, исправление существующих ошибок в системе защиты), так и активной (создание специальных алгоритмов защиты).

Существует также четкое разделение прав на сайте посредством списков контроля доступа ACL (Access Control Lists) и режимов доступа. Они представляют собой матрицу групп пользователей и элементов сайта. Поля данной матрицы содержат права группы пользователей.
В Cotonti включена Защита от повторных соединений (Anti-Hammering), а так же защита против спама (anti–spam).

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

#6. Производительность и расширяемость

Когда речь идет о производительности, мы говорим в первую очередь о количестве обрабатываемых запросов в минуту (RPM, Requests Per Minute) или запросов в секунду (RPS). И в Cotonti мы прикладываем все усилия, чтобы достичь максимальных результатов. Для этого мы стараемся избежать дополнительных расходов при добавлении новых возможностей, используем такие технологии как пре-рендеринг и серверный кэш. SQL-запросы и БД оптимизованы, все функции настроены на быструю и качественную работу, и это позволяет вашему сайту расти и развиваться, становиться все более популярным.

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

#7. SEO (Поисковая оптимизация)

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

В стандартный комплект Cotonti входит мощная утилита по формированию произвольных URL, а так же настраиваемые заголовки, мета тэги, множество необходимых для этого настроек. И, наконец, огромные SEO возможности представляют плагины: их уже не мало, и их количество продолжает расти.

#8. Web 2.0

Web 2.0 – это просто громкое слово, которое чаще всего употребляется для обозначения современных тенденций мировой паутины. Итак, для ответа на вопрос «Поддерживает ли Cotonti web 2.0?», давайте рассмотрим некоторые возможности этой CMS и то, из чего этот самый Веб 2.0 обычно состоит.

#9. AJAX

AJAX расшифровывается как Асинхронный JavaScript и XML. Данная технология обеспечивает соединение клиент-сервер без необходимости перезагрузки страницы. Сайты, использующие данную технологию, работают быстрее, потребляют меньше трафика, да и выглядят более привлекательно для пользователя.

В Cotonti встроена популярная, хорошо докуметированная JavaScript библиотека jQuery, которая обеспечивает полнофункциональную поддержку AJAX. Вы можете легко и быстро написать плагины, которые поддерживают AJAX технологию.

#10. Подписка (Синдицирование)

Cotonti поставляется со специальным модулем стандарта RSS, который позволит посетителям подписаться на различные каналы Вашего сайта. В ближайшее время данный модуль будет доработан и станет поддерживать не только RSS, но и Atom; включать возможность подписки на основные части контента – форумы, страницы, списки), а так же специальные функции дл внедрения подписки в плагины и модули сторонних производителей.

#11. Тэги

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

#12. Социализация

Cotonti не является системой для создания социальных сетей. В ее состав входит стандартный для CMS комплект функций. Но при использовании плагинов функциональность значительно расширяется. Уже сегодня можно найти и скачать такие плагины как блоги, друзья, галереи, стены пользователей и множество других.
Связь с другими социальными сетями может быть установлена посредством сторонних плагинов или сервисов (например, Ping.fm)

#13. Веб сервисы

Редкий вебсайт может быть использован в качестве веб-сервиса через XML-RPC, REST или SOAP. Но, как известно, мир не стоит на месте, возможно пройдет некоторое время и в новой главе Cotonti будет описано использование данной технологии.

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


1. MagistrZoom  2010-05-02 17:58
хмммм
2. Fly666  2011-04-27 10:22

Интересно, можно ли перевести на этот движок сайт http://znak-u.ru ?

Only registered users can post new comments