Розробка сайту на CMS Concrete CMS

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Розробка сайту на CMS Concrete CMS
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розробка веб-сайту на CMS Concrete CMS

Concrete CMS (до 2021 року — concrete5) — CMS з вбудованим інлайн-редактором: контент редагується прямо на сторінці без окремого бекенду. Архітектура заснована на PHP з компонентами Symfony та Doctrine ORM. Блочна система дозволяє формувати сторінки з готових елементів без знання коду.

Сильні сторони для розробки

Concrete CMS має сенс вибирати, коли:

  • заказчик або його команда самі правлять контент без технічних знань
  • потрібна гнучка система сторінок з різними макетами
  • вимагається ієрархія сайтів з різними правами для різних розділів
  • проект передбачає складну систему дозволів на рівні сторінок

Архітектура сайту

Concrete CMS організує контент у дерево сторінок. Кожна сторінка має тип сторінки з набором областей, у кожну область додаються блоки (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) — метаданні сторінки, не привязані до блоків:

// Отримати атрибут сторінки
$metaDesc = $c->getAttribute('meta_description');
$heroImage = $c->getAttribute('hero_image');

// У шаблоні теми
<meta name="description" content="<?= h($metaDesc) ?>">
<?php if ($heroImage): ?>
<div class="hero" style="background-image: url('<?= $heroImage->getURL() ?>')"></div>
<?php endif; ?>

Типи атрибутів: текст, textarea, boolean, select, image, file, дата, геолокація, рейтинг, URL.

Система дозволів

Concrete CMS має детальні ACL-права — аж до рівня окремої сторінки:

// Перевірка прав у шаблоні
$cp = new Permissions($c);
if ($cp->canEditPageContents()) {
    // показати кнопку редагування
}

// Закрити сторінку для гостей
if (!$u->isLoggedIn()) {
    $response = Redirect::to('/login');
    $response->send();
    exit;
}

Групи користувачів з правами на конкретні області сайту налаштовуються без програмування через адміністративний інтерфейс.

Багатомовність

Concrete CMS підтримує мультимовні сайти через Multilingual Sites. Кожна мовна версія — це окреме поддерево сторінок:

/en/
/ru/
/de/

Переключення мови:

$locales = Section::getList();
foreach ($locales as $section) {
    $url = $section->getRelatedPageInLocale($c);
    echo "<a href='{$url}'>{$section->getLanguageText()}</a>";
}

Express Objects: структуровані дані

Express (вбудований із версії 8) — ORM-подібний механізм для зберігання даних поза деревом сторінок. Аналог Custom Post Types, але з реляційними можливостями:

// Створення запису Express Object програмно
$entry = Express::buildObject('product', 'Products', 'Product');
$entry->addAttribute('text', 'SKU', 'sku');
$entry->addAttribute('number', 'Price', 'price');
$entry->addAttribute('image', 'Photo', 'photo');
$entry->save();

Форма додавання записів генерується автоматично, доступна через блок Express Form.

SEO та продуктивність

// Кастомний SEO у шаблоні
use Concrete\Core\Page\Page;
use Concrete\Core\Html\Service\Html;

$html = $app->make(Html::class);
$seoTitle = $c->getAttribute('seo_title') ?: $c->getCollectionName();

// Кешування сторінок включається в Dashboard → System → Cache
// Повне кешування: Full Page Caching (Blocks)

Типова структура проекту

Компонент Шлях
Тема 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/

Сроки розробки

Обсяг Опис Срок
Малий сайт 5–8 типів сторінок, стандартні блоки 2–4 тижні
Корпоративний портал 10–15 типів, кастомні блоки 5–9 тижнів
Мультимовний сайт 3+ мови, Express objects 8–14 тижнів