Розробка сайту на CMS Concrete CMS
Concrete CMS — система з вбудованим інлайн-редактором: контент змінюється прямо на сторінці без окремого бекенду. Архітектура базується на PHP з компонентами Symfony та Doctrine ORM. Блочна система дозволяє збирати сторінки з готових елементів без написання коду. Ми використовуємо Concrete CMS для проєктів, де замовник самостійно оновлює контент і потрібна гнучка система прав доступу. За роки роботи ми реалізували понад 20 проєктів на цій CMS, від корпоративних порталів до мультимовних каталогів. Наприклад, для міжнародної компанії налаштували 12 типів сторінок з індивідуальними правами для редакторів різних відділів — це скоротило час узгодження контенту втричі. Контент-менеджери економлять до 70% часу: правки вносяться за хвилини, а не години.
Concrete CMS особливо корисна, коли команда замовника сама править контент, а структура сторінок повинна змінюватися без програмування. Порівняно з класичним WordPress, вона дає більш тонке налаштування прав — аж до конкретної області на сторінці. А на відміну від Drupal, має інтуїтивний інтерфейс редагування без необхідності розбиратися в таксономіях. Вбудована система ACL налаштовується за 1–2 години, що в 2–3 рази швидше за аналоги, і не потребує додаткових плагінів.
Чому обирають Concrete CMS?
Замовник або його команда самостійно редагують контент без технічних знань. Потрібна гнучка система сторінок з різними макетами. Вимагається ієрархія сайтів з різними правами для різних розділів. Проєкт передбачає складну систему дозволів на рівні сторінок — Concrete CMS покриває всі ці сценарії з коробки.
Як влаштована архітектура сайту?
Concrete CMS організовує контент у дерево сторінок. Кожна сторінка має Page Type з набором Areas, у кожну область додаються блоки (Blocks).
Сайт ├── Головна (page type: home) │ ├── Area: Hero │ │ └── Block: Image Slider │ ├── Area: Content │ │ ├── Block: HTML │ │ └── Block: Feature List (кастомний) │ └── Area: Sidebar │ └── Block: Form ├── Послуги (page type: service-list) │ ├── Розробка (page type: service-detail) │ └── Дизайн (page type: service-detail) └── Контакти (page type: basic-page) Page Types та шаблони
Page Type створюється в /application/single_pages/ або через повний тип з шаблоном у темі:
// application/single_pages/services.php // або packages/my-theme/themes/my-theme/page_types/service_detail.php defined('C5_EXECUTE') or die('Access Denied.'); $view = View::getInstance(); ?> <div class="container"> <h1><?= $c->getCollectionName() ?></h1> <?php $a = new Area('Main Content'); $a->display($c); ?> <aside> <?php $sidebar = new Area('Sidebar'); $sidebar->display($c); ?> </aside> </div> Атрибути сторінок та дозволи
Атрибути (Attributes) — метадані сторінки, не прив'язані до блоків. Типи атрибутів: текст, textarea, boolean, select, image, file, дата, геолокація, рейтинг, URL. Система дозволів (ACL) працює на рівні сторінок, типів сторінок, блоків та файлів. Приклад комбінованого використання:
// Отримати атрибут сторінки та перевірити права $metaDesc = $c->getAttribute('meta_description'); $cp = new Permissions($c); if ($cp->canEditPageContents()) { // показати кнопку редагування } // Закрити сторінку для гостей if (!$u->isLoggedIn()) { $response = Redirect::to('/login'); $response->send(); exit; } ?> <meta name="description" content="<?= h($metaDesc) ?>"> Як реалізувати багатомовність?
Concrete CMS підтримує мультимовні сайти через Multilingual Sites. Кожна мовна версія — окреме піддерево сторінок:
/en/ /uk/ /de/ Перемикання мови реалізується через блок або шаблон:
$locales = Section::getList(); foreach ($locales as $section) { $url = $section->getRelatedPageInLocale($c); echo "<a href='{$url}'>{$section->getLanguageText()}</a>"; } Як створити кастомний тип сторінки?
- Створіть файл шаблону в
application/single_pages/або через пакет. - Визначте області (Areas) у PHP-шаблоні.
- Зареєструйте тип сторінки в адмінці (Dashboard → Pages & Themes → Page Types).
- Призначте права доступу для нового типу.
- Додайте атрибути, якщо потрібні метадані.
Цей процес займає близько 2 годин для простого типу. Для складних типів з кастомними блоками — до 1 дня.
Що таке Express Objects?
Express (вбудований з версії 8) — ORM-подібний механізм для зберігання даних, не прив'язаних до дерева сторінок. Аналог Custom Post Types, але з реляційними можливостями. Записи Express можна зв'язувати зі сторінками та виводити через блок Express Form. Це ідеально для каталогів, довідників та інших повторюваних сутностей.
SEO та продуктивність
Для SEO використовуємо кастомні атрибути: meta_description, seo_title. Кешування сторінок вмикається в Dashboard → System → Cache. Повне кешування (Full Page Caching) прискорює завантаження в 5–10 разів, знижуючи TTFB з 500 мс до 50 мс. Concrete CMS — зріла платформа з розвиненим спільнотою.
Типова структура проєкту
| Компонент | Шлях |
|---|---|
| Тема | packages/my-theme/themes/my-theme/ |
| Кастомні блоки | packages/my-theme/blocks/ |
| Шаблони блоків | application/blocks/{block}/templates/ |
| Типи сторінок | packages/my-theme/themes/my-theme/page_types/ |
| Одиночні сторінки | application/single_pages/ |
Що входить у розробку?
- встановлення та налаштування CMS на хостингу
- створення кастомної теми (верстка + інтеграція)
- розробка типів сторінок і блоків під завдання проєкту
- налаштування прав доступу та багатомовності
- імпорт контенту (якщо потрібен)
- навчання команди замовника роботі з in-context редактором
- гарантія на код та безкоштовні правки протягом першого місяця
Оцінимо ваш проєкт і запропонуємо строки від 2 тижнів для невеликого сайту до 3 місяців для великого порталу. Замовте консультацію — ми допоможемо обрати оптимальну архітектуру та розробимо сайт під ключ.
Строки розробки
| Обсяг | Опис | Строк |
|---|---|---|
| Невеликий сайт | 5–8 типів сторінок, стандартні блоки | 2–4 тижні |
| Корпоративний портал | 10–15 типів, кастомні блоки | 5–9 тижнів |
| Мультимовний сайт | 3+ мови, Express objects | 8–14 тижнів |
Хочете обговорити проєкт? Отримайте консультацію — ми оцінимо складність і запропонуємо рішення, яке зекономить до 40% часу на контент-менеджменті.







