Cotonti

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Cotonti
Логотип программы Cotonti
Скриншот программы Cotonti
Cotonti Siena 0.9 с темой SymiSun-03
Тип CMS/CMF
Разработчик Cotonti Team
Написана на PHP
Операционная система кроссплатформенное ПО
Первый выпуск 1 февраля 2009 (2009-02-01)
Последняя версия 0.9.25 (3 сентября 2024 г.)
Репозиторий github.com/Cotonti/Coton…
Лицензия BSD
Сайт cotonti.com

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

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

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

За годы своего развития Cotonti приобрела схожие с Drupal черты в таких аспектах своего построения, как процедурное ядро, стандартный загрузчик, модульная архитектура и ряд базовых функций, которые присутствуют и во многих других системах. Уникальными же чертами Cotonti можно считать следование принципам «собирательного фреймворка»[1] и практически неограниченную настраиваемость внешнего вида и поведения.

Особенности

[править | править код]

Cotonti отличается от других систем управления содержимым полным разделением PHP-кода и HTML-разметки. Это позволяет графическим дизайнерам создавать темы (в предыдущих версиях скины) без каких-либо знаний PHP. Cotonti позволяет создавать темы путём модификации тем, созданных участниками сообщества, или «с нуля» путём замены элементов HTML-кода на TPL-теги.

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

Предоставляя относительно низкий, в сравнении с другими системами управления содержимым, базовая функциональность, Cotonti обеспечивает расширение и настройку по любым направлениям. Система спроектирована для использования в качестве каркаса или основы с целью не допустить «раздутия» ядра и предоставить администраторам конкретных сайтов право выбора необходимого дополнительного функционала. Данный подход всегда являлся главной философией разработки движка[2]. Cotonti поддерживает плагины для Seditio, а также постоянно растущую библиотеку собственных плагинов.

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

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

Основные возможности

[править | править код]

Для пользователей, имеющих опыт использования других систем, станет полезным краткий обзор основных возможностей движка:

  • Модульная архитектура и простые API
  • Уникальный шаблонизатор, доступный любому дизайнеру или верстальщику на уровне HTML, и, путём несложных настроек, обеспечивающий необходимое поведение системы
  • Настройка каждого аспекта выходного HTML-кода
  • Легковесность, ясность и малое потребление ресурсов
  • Код прост в понимании и доступен для изучения даже новичками
  • Серверный кэш и оптимизация контента на стороне клиента
  • Поддержка сообщества, регулярные обновления

Архитектура

[править | править код]

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

Для понимания архитектуры Cotonti представьте себе обычное здание. Основой здания является фундамент или библиотеки ядра (API), которые также обеспечивает всю инфраструктуру, используемую остальными элементами здания. На фундаменте стоят блоки, в которых заключены комнаты. Эти блоки называются модулями. Каждый модуль представляет собой особый вид пространства, населяемого пользователями сайта (кухня, гостиная, ванная комната). В комнатах находятся элементы интерьера (мебель, бытовая техника, электроника), называемые плагинами. И, наконец, отделка фасада и выбор украшений для него являются темами.

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

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

Разработка

[править | править код]

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

Новые возможности и улучшения предлагаются сообществом и обсуждаются на открытых форумах. При необходимости используется система голосования. Отслеживание ошибок, управление проектом и мониторинг кода реализуются с использованием системы Git, и общедоступны на сайте GitHub.

История создания

[править | править код]

История создания Cotonti началась в 2001 году, когда профессиональный программист Оливье Шапуи из французского города Гренобль создал новую систему управления содержимым под названием Land Down Under (LDU). Это была современная и надежная система, особо популярная в геймерских сообществах в качестве игрового портала.

В 2006 г. Neocrome, компания, которая разрабатывала LDU, объявила о выходе Seditio — новой проприетарной системы управления содержимым на базе PHP / MySQL, разрабатываемой Оливье и небольшой командой разработчиков.[3] По сравнению с LDU, в Seditio обеспечивались улучшенная поддержка плагинов и расширяемость. На фоне остальных систем управления содержимым того времени Seditio выделялась компактностью и безопасностью.[4],[5] В 2011 году проекты Land Down Under и Seditio были официально закрыты, но вскоре работа над Seditio возобновилась. Единственным официальным ответвлением линейки LDU/Seditio является Cotonti, в настоящее время оба проекта развиваются параллельно.

Cotonti возникла в результате попытки опытных энтузиастов из числа сообщества Seditio улучшить систему в ситуации, когда официальная команда бездействовала или не принимала патчи в проприетарный код. Началом проекта Cotonti в 2008 году стал пакет улучшений для Seditio, после чего, 1 февраля 2009 г. состоялся первый публичный релиз Cotonti в качестве самостоятельного продукта[6]. Это стало возможным после того, как было получено официальное разрешение от Neocrome на релиз Cotonti и унаследованный ей код Seditio в качестве открытого исходного кода.

Начальной веткой Cotonti стала Genesis, состоявшая из релизов 0.0.1 — 0.0.5. В неё вошли все изменения, в течение долгого времени ожидавшиеся для Seditio. Вторая ветка под названием Genoa реализовала последовавшие за этим улучшения по просьбам сообщества. К 2010 году Cotonti 0.6.x Genoa стала максимально стабильной веткой. Регулярные обновления для неё включают мелкие и малозначимые исправления и дополнения. Для линейки 0.6.x доступно большое количество расширений, что позволяет считать её зрелой и надежной в использовании.

В 2009 году, имея за спиной надежную и стабильную ветку, разработчики начали работу над принципиально новой линейкой Cotonti под названием Siena. Более современная архитектура, новый уровень модульности и встроенный фреймворк, а также ряд значительных изменений, невозможных в предыдущих линейках, отличают Cotonti Siena от её предшественниц. Первый официальный релиз ветки 0.9.0 состоялся 4 апреля 2011 г[7]. 2 февраля 2024 года был объявлен выход релиза Cotonti Siena 0.9.24.2[8], в котором наряду с исправлением все более редких и незначительных багов, заявлены функциональные улучшения и изменения, направленные на создание более целостного, системного и понятного разработчику фреймворка. Одним из радикальных улучшений стала унификация и изменения в нейминге TPL-тегов в шаблонах движка на более понятные и соответствующие их назначению имена.

Заслуживающим внимания стало введение режима совместимости (Legacy Mode) для тех пользователей, которые предпочитают не вносить изменения во фронтенд тему и плагины сразу после обновления ядра.

В настоящее время перед командой разработчиков и сообществом пользователей Cotonti стоят следующие задачи:

  1. Работа над релизом Cotonti линейки 1.x.x.
  2. Документирование обновленных новых возможностей на английском и русском языках.
  3. Популяризация движка за счет создания востребованных расширений.
  4. Создание репозитория готовых тем оформления сайта, в том числе админ-панели.

Cotonti распространяется на условиях лицензии BSD с эксклюзивным правом на использование кода от Seditio/Neocrome и распространение его на тех же условиях. Это делает Cotonti бесплатным как для некоммерческого, так и для коммерческого использования, при условии сохранения оригинальных авторских прав.

Примечания

[править | править код]
  1. HarvestedFramework. Дата обращения: 31 мая 2011. Архивировано 3 июня 2011 года.
  2. Technical Concepts — Developer Guide — Cotonti. Дата обращения: 31 мая 2011. Архивировано 12 мая 2011 года.
  3. Neocrome — Seditio 100. Дата обращения: 31 мая 2011. Архивировано из оригинала 26 июня 2011 года.
  4. Search:Author:SEDITIO — security vulnerabilities database. Дата обращения: 31 мая 2011. Архивировано 24 июля 2011 года.
  5. Exploit Database Search. Дата обращения: 31 мая 2011. Архивировано 23 июля 2011 года.
  6. Cotonti 0.0.2 Release and The Grand Opening — Announcements — Cotonti. Дата обращения: 31 мая 2011. Архивировано 8 июля 2011 года.
  7. Cotonti Siena 0.9.0 is finally available! — Announcements — Cotonti. Дата обращения: 31 мая 2011. Архивировано 12 апреля 2011 года.
  8. Cotonti Siena 0.9.24.2 released - Announcements - Cotonti. www.cotonti.com. Дата обращения: 12 августа 2024. Архивировано 17 июля 2024 года.