Під CMS (системою керування контентом, або Content Management System) розуміють програмне забезпечення, що використовується для організації та забезпечення процесу створення, управління і редагування контенту сайту (тексту, мультимедійних чи графічних елементів) в мережі Інтернет чи в локальних комп’ютерних мережах.
Існують різні системи управління контентом, що створені за допомогою різних технологій, серед яких можна виділити безкоштовні і платні. Центральним елементом будь-якої CMS виступають сховища інформації. В більшості сучасних CMS сховищем інформації є реляційна база даних (тобто складається з таблиць з встановленими відносини). Якщо CMS потрібно зберегти інформацію, вона заносить її до бази даних, де для кожної сутності відводиться окрема таблиця.
Інформацію для відображення CMS отримує із бази даних. Для того, щоб відобразити інформацію в форматі HTML використовуються шаблони. Шаблон – це файл, що містить дизайн сторінки, створений засобами спеціальної мови. Наприклад, це може бути певним чином розмічений HTML-код, в якому міститься інформація щодо місцезнаходження елементів, що беруться із бази даних.
Наступною частиною CMS є система користувачів та їх ролей. Під роллю користувача мається на увазі набір дій, які користувач може здійснювати. В сучасних CMS, зазвичай, визначають кілька користувацьких ролей: адміністратор, користувач відвідувач та інші. Кожному користувачу можна привласнити певну роль, причому надання ролей виконує або адміністратор, або це робиться автоматично.
Широкому впровадженню і використанню CMS сприяє досить багато причин. Найголовнішою із них є ускладнення функціоналу сучасних сайтів. Створення програмного модулю кожного разу не є раціональним, тому почалось створення спеціальних бібліотек корисних функцій, а згодом з’явились спеціальні рішення, на базі яких розпочалась розробка універсальних CMS. Іншим, не менш важливим чинником став процес спрощення самих CMS. Більшість хостингів пропонують можливість установки готових безкоштовних чи платних версій CMS.
Схема роботи CMS є наступною. Нехай користувач увійшов на сайт, що знаходиться під керуванням CMS, і виконав певну дію. Перш за все, CMS повинна визначити, як саме необхідно відреагувати на цю дію. Далі модуль, який відповідає за обробку користувацького запиту, записує інформацію, що надійшла, до бази даних. Система виконує запит до бази даних для отримання інформації, що необхідно відобразити, або створює повідомлення. Інформація з бази даних передається до модуля, що бере поточну тему і вносить в неї всю необхідну інформацію. В результаті виконання цих дій генерується HTML-код, що відправляється до користувача. Результат цієї роботи користувач бачить безпосередньо в себе на дисплеї.
Переваги CMS є наступними:
• Застосування шаблонів робить можливою автоматичну зміну зовнішнього вигляду всього сайту, незалежно від його наповнення.
• Вміст повністю відокремлений від дизайну сайту, це значно спрощує процес редагування вмісту сайту.
• Більша частина CMS має модульну архітектуру, а їх функціонал можна розширювати за допомогою плагінів і модулів.
• Переважна частина CMS має технічну підтримку, найчастіше — у вигляді інтернет-спільноти користувачів, які можуть не тільки надавати допомогу іншим користувачам, але і займатися розробкою і вдосконаленням CMS, що гарантує постійне вдосконалення таких CMS.
• Використання CMS дозволяє економити час розробки сайту.
Є безкоштовні і платні системи управління контентом. Зазвичай, більшою популярністю користуються безкоштовні системи. Найбільш поширеними є WordPress, Joomla і Drupal. Далі буде наведений короткий опис кожної з цих CMS.
WordPress — дуже популярна CMS, що дозволяє створювати різноманітні сайти, але в першу чергу він є движком для блогів. WordPress має багато локалізацій, для нього розроблено безліч додаткових модулів і шаблонів. До недоліків WordPress належать не дуже велика швидкість роботи сайтів та вірогідність збоїв при занадто високій відвідуваності.
Joomla — ще одна добре відома в світі CMS, складніша в освоєнні та використанні, ніж WordPress, але має і більш широку сферу застосування. Для CMS Joomla розроблена величезна кількість різноманітних модулів, тому її можна назвати універсальною CMS. Також для Joomla існує велика кількість шаблонів, що дає необмежені можливості створення дизайну для сайту. Крім того, Joomla сумісна із різними серверами, зокрема Linux, FreeBSD, MacOSX server, Solaris і AIX. Це дозволяє її широке використання, незалежно від сервера. До недоліків Joomla належить слабкий захист системи від зломів та можливі складнощі з індексацією сайтів пошуковими системами.
CMS Drupal — це один з кращих варіантів для створення блогів, онлайн- енциклопедій, інтернет-спільнот, форумів та ін. Drupal володіє всіма можливостями, необхідними для ефективного управління вмістом сайту. Також для Drupal створено багато шаблонів і модулів, але по даній CMS існує менше документаці, ніж для Joomla і WordPress. Основним недоліком Drupal є низька швидкість завантаження сторінок та менш дружній інтерфейс.
Також є менш відомі, але все ж використовувані CMS:
• php-nuke — одна з найстаріших CMS, її основним призначенням є створення порталів. Дана CMS порівняно легка у встановленні і керуванні. Головним її недоліком є вразливість до зломів;
• e107 — універсальна CMS, що може бути використана для створення сайтів різного типу, для неї існує безліч шаблонів і модулів;
• typo3 — на ній працює багато відомих сайтів, серед них сайти найвідоміших корпорацій і державних установ (зокрема CISCO, UNESCO, Epson), є безкоштовним аналогом платних CMS. Масштабна і досить складна у вивченні, але разом з тим вона відрізняється потужним функціоналом;
Говорячи про відмінні риси платних CMS від безкоштовних, можна взяти до уваги їх універсальність, наявність кількох версій починаючи від найдешевших (або навіть безкоштовних) і закінчуючи більш дорогими, з потужним функціоналом і здатними для створення будь-якого сайту. Лідером серед платних CMS є Бітрікс, на якій працює безліч різних сайтів. Серед інших CMS можна відзначити ABO.CMS, NetСat, Amiro.CMS, UMI.CMS і т.д. Крім цього, велика кількість розробників вибирає використання для створення сайтів CMS власної розробки.