CMS mc2
mc2 — это гибкая и модульная система управления контентом (CMS), разработанная с учётом современных требований к безопасности и производительности. CMS позволяет создавать и управлять веб-сайтами, используя модули, шаблоны и настраиваемые формы.
Особенности
- Модульная архитектура: Легко добавлять и управлять функционалом через модули.
- Шаблоны: Поддержка файлов шаблонов разделов для гибкой настройки внешнего вида.
- Безопасная работа с БД: Использование подготовленных выражений для защиты от SQL-инъекций.
- Высокая скорость работы: Благодаря использованию PHP 8+ и оптимизации кода, отклик страниц может достигать
2-10 мс. - Загрузка файлов: Поддержка загрузки и обработки изображений и других файлов.
- Авторизация и регистрация: Встроенный модуль для управления пользователями.
- SEO: Поддержка ЧПУ, meta-тегов, sitemap.xml.
- Легко расширяема: Возможность создания собственных модулей и функционала.
Структура проекта
/
├── .htaccess # Правила перенаправления запросов на точку входа
├── _core.php # Точка входа
├── _template.php # Шаблон страницы раздела
├── _section.php # Описание раздела
├── index.php # Содержимое раздела (может отсутствовать, если в _section.php указан запускаемый модуль)
├── _mc2/ # Ядро CMS (проприетарная часть). Вся папка меняется при обновлениях
│ ├── admin/ # Админка
│ ├── ajax/ # Точка входа для AJAX запросов
│ ├── core/ # Внутренние функции и классы
│ ├── ext/ # Сторонние библиотеки (распространяются под своими лицензиями)
│ ├── inc/ # Скрипты javascript (можно копировать в /_inc и там изменять)
│ └── module/ # Стандартные модули (можно копировать в /_tmpl и там изменять)
├── _inc/ # Пользовательские стили и скрипты javascript
├── _tmpl/ # Пользовательские модули и глобальные настройки
│ ├── arrays.php # Глобальные массивы
│ ├── const.php # Константы
│ ├── counter.php # Код счётчика
│ ├── define.php # Конфигурация (БД, домен, префиксы)
│ └── functions.php # Пользовательские функции
├── files/ # Папка для всех загружаемых модулями файлов
└── {ваш_раздел}/ # Пользовательский раздел
├── _template.php # Шаблон страницы раздела (может отсутствовать, тогда берётся более верхний шаблон)
├── _section.php # Описание раздела (может отсутствовать)
└── index.php # Содержимое раздела (может отсутствовать, если в _section.php указан запускаемый модуль)
Модули
Модули — это основной способ расширения функциональности CMS. Каждый модуль находится в папке /_mc2/module/ и имеет следующую структуру:
/_mc2/module/{module_name}/
├── index.php # Основной файл модуля (обязательный файл)
├── init.php # Настройки модуля (может отсутствовать, если модулю не нужны свои таблицы в базе данных и отдельная папка)
Все остальные файлы могут отсутствовать или называться по-другому. Зависит от логики в index.php. Примеры возможных файлов:
├── list.php # Список элементов
├── list_item.php # Один элемент в списке
├── single.php # Одиночный элемент
├── form.php # Форма редактирования
├── before_show.php # Логика перед показом формы редактирования
├── after_show.php # Логика после показа формы редактирования
├── before_save.php # Логика перед сохранением
├── after_save.php # Логика после сохранения
├── sitemap.php # Составление карты сайта для динамических страниц модуля
├── admin_list.php # Список элементов для админки
├── admin_list_item.php # Одиночный элемент для админки
└── ...
Чтобы менять стандартную логику и внешний вид модулей, нужно скопировать файл из папки модуля в папку /_tmpl/{module_name}/ или /_tmpl/{module_name}/{module_param}/ и менять там.
База данных
- Префикс таблиц
mc2_и параметры доступа настраиваются при установке или вdefine.php. - Каждый модуль может иметь свою таблицу, структура которой описывается в
init.phpв массиве$module_db. - Синхронизации структуры при запуске модуля.
Уведомления и почта
CMS поддерживает отправку уведомлений через:
- встроенную функцию
send_mail()(использует PHPmail()) - API Telegram (требуется свой токен Телеграм-бота)
- API ВК (требуется свой ключ доступа группы ВК)
Авторизация и регистрация
- Встроенный модуль
authдля регистрации, входа и сброса пароля. - Токены для сессий, хранятся в куках.
- Подтверждение регистрации по ссылке, без пароля.
Лицензия
- Ядро CMS
/_mc2/— под проприетарной лицензией. - Остальные файлы — под Mozilla Public License 2.0 (MPL 2.0).
- Сторонние библиотеки (jQuery, Bootstrap, CKEditor и др.) — под своими лицензиями.
Требования
- PHP 8+
- MySQL
- Чтобы иметь возможность загружать большие файлы с помощью загрузчика движка CMS, рекомендуется в настройках PHP увеличить значения переменных
post_max_sizeиupload_max_filesizeдо нужного размера (100M, например).
Установка
- Приобретите лицензионный ключ и установочный файл
/mc2_install.php. - Запустите из корня сайта файл
/mc2_install.php, введите лицензионный ключ, настройки для доступа к базе данных и завершите установку. - Отредактируйте при необходимости
/_tmpl/define.php. - Зарегистрируйтесь по адресу
/_mc2/admin/. Первый зарегистрированный пользователь получает права полного доступаall.
Разработка, функции, модули
Документация указана на сайте: https://mc2.mackeyka.ru/doc/
Обновление
Обновления можно скачивать из админки администратору с правами all в течение 1 года после приобретения лицензионного ключа. Обновляется только папка /_mc2/.
Поддержка
- Email: ya@mackeyka.ru
- Сайт: https://mc2.mackeyka.ru/
- Документация: https://mc2.mackeyka.ru/doc/
Copyright © 2025-2026 Михаил Ушаков, mc2.mackeyka.ru