Все модули

Headless CMS

Headless CMS на платформе: 9 контентных сущностей, мультисайт PublicSite и универсальный seoData.

Возможности

Что умеет модуль

9 контентных сущностей со Schema.org

PublicService/Solution/Project/Technology/BlogPost/Client/TeamMember/Testimonial/Faq — мультиязычные через bpm2bMultilingualFields.

Мультисайт PublicSite

Уникальный siteKey, workingDir, npmScript; M:N со всеми контентными сущностями — контент публикуется на нескольких сайтах.

Публикация через ExternalProcess

Кнопка «Опубликовать» создаёт ExternalProcess publicSiteDeploy; PublicSiteDeployHandler запускает npm run в workingDir.

Универсальный тип seoData

PhoneNumber pattern: { type: seoData, schemaType: Service } — Loader/Saver работают с централизованным SeoRecord.

Скрытый SeoRecord

tab/acl/layouts/customizable: false; поля title/metaDescription/slug/canonicalUrl/ogImage/keywords/properties.

Schema.org property bag

5 типов (Service/Product/CreativeWork/SoftwareApplication/BlogPosting) с extends; динамический редактор по schemaType.

Linkparent-навигация и hasChildren

BlogPost/Testimonial/Faq через linkParent; на Service/Solution/Project/Technology автоматически relationship-panels.

Модуль BPM2B Headless CMS превращает платформу BPM2B в полноценный headless CMS: 9 связанных контентных сущностей (услуги, решения, кейсы, технологии, блог, клиенты, команда, отзывы, FAQ), мультисайт-инфраструктура PublicSite с публикацией через NPM-пайплайн, и универсальный тип поля seoData со Schema.org property bag — добавляется одной строкой к любой сущности и хранит данные в централизованном SeoRecord.

Основные функциональные возможности:

  • 9 контентных сущностей со Schema.org-маппингом: PublicService (Service), PublicSolution (Service), PublicProject (CreativeWork), PublicTechnology (SoftwareApplication), PublicBlogPost (BlogPosting), PublicClient, PublicTeamMember, PublicTestimonial, PublicFaq — все мультиязычные через bpm2bMultilingualFields.
  • Мультисайт PublicSite: уникальный siteKey, workingDir, npmScript, флаг isActive; M:N со всеми пятью основными контентными сущностями (Service/Solution/Project/Technology/BlogPost) — один контент может публиковаться на нескольких сайтах.
  • Кнопка «Опубликовать» через ExternalProcess: handler publish.js вызывает POST /PublicSite/action/publish; сервис создаёт ExternalProcess типа publicSiteDeploy; PublicSiteDeployHandler.buildCommand() запускает cd workingDir && PATH=npmBinDir:$PATH npm run npmScript — типичный SSG-pipeline (Astro и аналоги).
  • Универсальный тип seoData (PhoneNumber pattern): декларация { "type": "seoData", "schemaType": "Service" } в metadata.fields; SeoDataLoader читает связанный SeoRecord и заполняет виртуальные подполя; SeoDataSaver создаёт/обновляет SeoRecord и пишет FK через QueryBuilder UPDATE.
  • Скрытое хранилище SeoRecord: tab/acl/layouts/customizable: false — без UI, как утилитарная сущность; поля совпадают с подполями seoData (title / metaDescription / slug / canonicalUrl / ogImage / ogType / keywords / properties).
  • Schema.org property bag: реестр seoFieldsSchema.json описывает 5 типов (Service / Product / CreativeWork / SoftwareApplication / BlogPosting) с поддержкой extends; реестр seoSchemaPropertyTypes.json маппит типы свойств (string / text / url / enum / arrayOfStrings / arrayOfObjects) на конкретные view-классы — динамический редактор по schemaType сущности.
  • Multilang-колонки в jsonArray-table: расширение json-array-table для колонок типа varchar-intl / text-intl; ячейка хранится как объект по суффиксам языка { "label": { "Ru": "…", "En": "…" } } и переключатель языка триггерит switchLanguage на каждую cellModel.
  • Linkparent-навигация и hasChildren: PublicBlogPost.relatedTo (linkParent: Service/Solution/Technology), PublicTestimonial.subject (linkParent ×3), PublicFaq.parent (linkParent ×5) — на детали Service/Solution/Project/Technology/BlogPost автоматически появляются панели со связанными постами, отзывами и FAQ.
  • Lucide-иконки: самодостаточный реестр lucideIcons.json (~1700 имён CSS-классов) с собственным CSS-файлом; модальное окно select-icon-lucide и расширенное поле icon-class-lucide с поддержкой iconColor — выбор иконок без внешних зависимостей.
  • Реверсная UX-навигация: через hasChildren на каждой контентной форме появляются relationship-panels с дочерним контентом (BlogPosts, Testimonials, FAQs) — менеджер видит весь контекст сущности на одной карточке.

Модуль предназначен для маркетинга и продаж: компания ведёт каталог услуг, кейсы, блог и команду в CRM, а статические сайты на Astro/Next/Hugo подтягивают контент через CRM API при сборке. Зависит от bpm2bMultilingualFields (мультиязычные поля и colon-suffix реестр), bpm2bJsonObjectViewer (базовый view jsonObject) и bpm2bExternalProcess (запуск NPM-пайплайнов как фоновых процессов).

Совместимо с платформой версии 9.1.0+
Связаться

Готовы автоматизировать процессы?

Покажем работу системы на ваших данных за 30 минут. Расскажем, как окупится в вашей отрасли, и подберём конфигурацию под ваши процессы.

Email
info@bpm2b.ru
Москва
+7 (499) 113-22-35
Россия
8 (800) 551-91-16
Компания
ООО «Адм Про»

Мы свяжемся в течение 24 часов. Данные используем только для обработки заявки.