Конфигурация CMS
TeqCMS настраивается через переменные окружения (например, в файле .env
) и объект
конфигурации, передаваемый в configCms.init()
. Это обеспечивает простоту и прозрачность поведения
системы.
1. Основные переменные окружения
# Тип сервера: express, fastify или встроенный (если не указано)
SERVER_TYPE=express
# Порт HTTP-сервера
SERVER_PORT=3000
# Движок шаблонов: nunjucks или mustache
TEQ_CMS_TMPL_ENGINE=nunjucks
# Разрешённые локали сайта
TEQ_CMS_LOCALE_ALLOWED=en,ru
# Базовая локаль для отображения сайта
TEQ_CMS_LOCALE_BASE_DISPLAY=en
# Базовая локаль для генерации переводов
TEQ_CMS_LOCALE_BASE_TRANSLATE=ru
# Конфигурация AI-провайдера
TEQ_CMS_AI_API_BASE_URL=https://api.openai.com/v1
TEQ_CMS_AI_API_KEY=sk-...
TEQ_CMS_AI_API_MODEL=gpt-4
TEQ_CMS_AI_API_ORG=your-org-id
2. Инициализация конфигурации в коде
Пример вызоваconfigCms.init()
:
configCms.init({
rootPath: root,
tmplEngine: process.env.TEQ_CMS_TMPL_ENGINE,
localeAllowed: process.env.TEQ_CMS_LOCALE_ALLOWED.split(','),
localeBaseDisplay: process.env.TEQ_CMS_LOCALE_BASE_DISPLAY,
localeBaseTranslate: process.env.TEQ_CMS_LOCALE_BASE_TRANSLATE,
aiApiBaseUrl: process.env.TEQ_CMS_AI_API_BASE_URL,
aiApiKey: process.env.TEQ_CMS_AI_API_KEY,
aiApiModel: process.env.TEQ_CMS_AI_API_MODEL,
aiApiOrg: process.env.TEQ_CMS_AI_API_ORG,
});
3. Логика поведения
- Если URL не содержит префикс локали, CMS перенаправит пользователя на базовую локаль
(
localeBaseDisplay
). - Переводы выполняются из базовой локали (
localeBaseTranslate
) в остальные. - Файлы шаблонов выбираются по локали запроса, с fallback на базовую.
4. Дополнительные настройки
Вы можете заменить реализацию встроенных компонентов CMS, например, адаптер шаблонных переменных:
const container = new Container();
const replace = new Replace();
replace.add('Fl32_Cms_Back_Api_Adapter', 'My_Custom_Adapter');
container.getPreProcessor().addChunk(replace);
Это даёт возможность адаптировать CMS под любую бизнес-логику без изменения исходного кода.