Skip to content
DimaFantasyPublic

About

FlitCMS is a lightweight content management system built with PHP.

Topics

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Flit CMS

Лёгкая многоязычная CMS на PHP без внешних зависимостей: свой шаблонизатор, пользователи и роли, хранилище в JSON или MySQL, админ-панель, редактор переводов.

Быстрый старт

  1. Скопируйте файлы на сервер и дайте PHP право записи в data/, log/, cache/, config/lang/ и config/config.inc.php.
  2. Проверьте config/config.inc.php (хранилище json или mysql, при MySQL укажите доступы).
  3. Откройте /create-admin.php и создайте первого администратора.
  4. Сразу удалите create-admin.php — кнопкой «Удалить файл» в красном баннере или вручную по FTP.
  5. Войдите на сайте и откройте админку: /?page=index.htm&isAdmin.

⚠️ create-admin.php

Это панель первого запуска. Она работает без входа в систему: пока файл лежит на сервере, любой посетитель может создать себе администратора. Что умеет: создавать, редактировать и удалять пользователей и администраторов, менять роль и пароль, показывает полный список с ролями. Удалите её сразу после настройки.

Публичная регистрация на сайте создаёт только обычных пользователей (user). Роль admin выдаётся только из админ-панели или через create-admin.php.

Требования

  • PHP 8.1+, расширения json, session (для MySQL — pdo_mysql)
  • Apache или nginx + PHP-FPM
  • Перед публикацией прочитайте SECURITY.md: папки data, log, config, includes, cache, templates должны быть закрыты от прямого доступа (для Apache это делают готовые .htaccess, для nginx правила в SECURITY.md).

Возможности

  • Шаблонизатор {{...}} с кэшем и сжатием, несколько тем (сайт и админка)
  • Роли admin / user, пароли в bcrypt, защита входа от перебора
  • Хранилище JSON (без БД) или MySQL — переключается настройкой storage
  • Языки ru, en, de, ka; редактор переводов в админке с автопереводом
  • Админка: панель с загрузкой CPU и памяти, пользователи, настройки, журнал, переводы, очистка кэша

Основные настройки (config/config.inc.php)

Параметр Назначение
storage json или mysql (доступы к базе — в блоке mysql)
adminEmail адрес администратора
validLanguages, defaultLanguage доступные языки и язык по умолчанию
tplDir, tplAdminDir темы сайта и админки
tplForceCompile компилировать шаблоны при каждом запросе (на боевом сайте выключить)
lifeTime сессия: 0 до закрытия браузера, -1 бессрочно, число — часы

Большинство настроек меняется в админке, раздел «Настройки».

Структура

index.php          точка входа
ajax.php           AJAX-обработчик (пользователи, настройки, переводы)
create-admin.php   первый запуск: создание администратора (удалить после настройки!)
stats.php          CPU и память для панели (только администратор)
config/            конфиг и словари (config/lang)
includes/          ядро: пользователи, шаблонизатор, переводы, БД, логгер
templates/<тема>/  шаблоны
assets/            CSS, JS, изображения
data/ log/ cache/  данные, журнал, кэш шаблонов (создаются сами)

Шаблоны

Страница выбирается так: ?page=имя.htm (файл в templates/<тема>/).

{{template includes/header.htm}}        подшаблон
{{$variable}}                           вывод переменной (не экранируется! для данных пользователей используйте htmlspecialchars)
{{t('Текст')}}                          перевод
{{if $user->isLoggedIn()}} ... {{else}} ... {{/if}}
{{loop $items $item}} ... {{/loop}}
{{php echo 'Hello'; }}                  PHP-код

Полный справочник: templates/demo/template_syntax.htm.

Переводы

Фразы оборачиваются в t('Ключ'). Непереведённые попадают в список в админке («Переводы») — выберите фразу, заполните языки (есть автоперевод) и сохраните. Новый язык: добавьте код в validLanguages и создайте config/lang/<код>.json.

Лицензия

GNU GPL v3 — см. LICENSE. Сторонние компоненты (например, matthiasmullie/minify) распространяются под своими лицензиями. Программа поставляется без гарантий.

About

FlitCMS is a lightweight content management system built with PHP.

Topics

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages