﻿---
title: Контент-календарь
description: "Инструмент на Laravel + Filament: план публикаций, статусы производства, ответственные и зависшие материалы по всем каналам."
---

## Что это за сервис

Инструмент планирования для контент-команды: авторов, редакторов и руководителей каналов. Он отвечает на вопросы «что и когда выходит», «на каком этапе каждый материал» и «кто за него отвечает». Результаты уже опубликованных материалов здесь не анализируют — календарь заканчивается на публикации.

Без такого сервиса статусы живут в нескольких местах: авторы отмечают прогресс в заметках, менеджеры — в таблице, а ни то ни другое не совпадает с тем, что реально опубликовано. Планёрка начинается с выяснения, где какой материал, черновики неделями висят без внимания, а даты публикации срываются, потому что никто вовремя не увидел материал, застрявший на вычитке.

Чаще всего такой календарь нужен командам, которые ведут блог, рассылки и соцсети одновременно и работают с внештатными авторами. Для них важны не только даты, но и понятные этапы: кто пишет, кто вычитывает, кто ставит материал в график.

## Что он делает

- **Показывает план на календаре.** Каждый материал виден с датой публикации, каналом, автором и статусом; есть вид на месяц и скользящий вид на четыре недели вперёд.
- **Ведёт материал по этапам.** Статусы — идея, черновик, вычитка, согласован, запланирован, опубликован — задаёт команда, переходы между ними фиксируются.
- **Не даёт запланировать непроверенное.** Материал нельзя поставить в график публикации, пока редактор не отметил вычитку.
- **Находит зависшие материалы.** Черновики, которые больше недели не меняли статус или остались без автора, попадают в отдельный список, а ответственный получает напоминание.
- **Даёт каждому свой срез.** Руководитель канала видит только свой поток, автор — свои задачи, редактор — всё, что ждёт вычитки.

## Нюансы и особенности

- **Один источник правды о статусе.** Если часть команды продолжает вести статусы в таблице или заметках, календарь быстро устаревает. Либо переносите работу целиком, либо синхронизируйте статусы из старого инструмента в фоне.
- **Публикацию подтверждает CMS.** Если CMS отдаёт статус через API или доступна для чтения из базы, календарь сверяет «запланировано» с «опубликовано» и показывает расхождения. Для сайта на WordPress это решается чтением REST API без переноса контента.
- **Статусы и типы — справочники.** Набор статусов и типов контента (статья, рассылка, пост в соцсетях) хранят в настройках, чтобы добавить новый можно было без доработки.
- **Планирование важнее учёта.** Главная ценность — заметить пустые недели заранее. Представление на четыре недели вперёд нужно с первой версии.
- **Доступ ограничивают на сервере.** Внештатный автор видит только свои материалы, даже если откроет прямую ссылку на чужую карточку.
- **Когда хватит готового продукта.** Для небольшой команды с одним каналом календаря в трекере задач или редакционного плагина CMS достаточно. Отдельное приложение оправдано при нескольких каналах, согласованиях и внешних авторах.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и модели

```text
Создай модели и миграции для контент-календаря: ContentItem (название,
тип, канал, автор, редактор, статус, плановая дата публикации, фактическая
дата публикации, ссылка, отметка о вычитке, дата последней смены статуса),
ContentStatus и ContentType как справочники, StatusChange (материал,
из какого статуса, в какой, кто, когда). Добавь фабрики с демо-данными.
```

### 2. Ресурс и переходы статусов

```text
Сгенерируй Filament-ресурс для ContentItem с таблицей и карточкой.
Смену статуса сделай действием, которое пишет StatusChange. Переход
в «Запланирован» запрещён без отметки о вычитке и без плановой даты.
В карточке покажи историю статусов.
```

Проверьте, что обойти запрет нельзя через массовое действие.

### 3. Календарь и фильтры

```text
Добавь страницу календаря с видом на месяц и скользящим видом на четыре
недели вперёд, фильтрами по каналу, типу и автору. Добавь в таблицу
вкладки «Мои материалы», «Ждут вычитки» и «Зависли»: статус не менялся
дольше порога из конфига или нет автора.
```

### 4. Напоминания и сверка с CMS

```text
Сделай ежедневную фоновую задачу: для зависших материалов отправляй
уведомление автору и редактору. Вторая задача читает опубликованные
записи из REST API CMS, проставляет фактическую дату публикации
и помечает материалы, которые запланированы, но не вышли.
```

Проверьте, что материал, который есть в CMS, но отсутствует в календаре, тоже попадает в отчёт о расхождениях.

### 5. Роли и виджеты

```text
Настрой роли: автор видит и меняет только свои материалы, руководитель
канала — материалы своего канала, редактор — всё. Ограничение действует
в таблице, календаре и выгрузке. Добавь виджеты: материалы по статусам
и недели без запланированных публикаций.
```

## Похожие сценарии

- [Эффективность контента](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/content-performance-dashboard.md) — что опубликованные материалы дали после выхода; календарь отвечает за то, что было до.
- [Генератор брифов кампаний](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/campaign-brief-generator.md) — откуда приходят задания на материалы для кампаний.
- [SEO-возможности и позиции](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/seo-opportunity-tracker.md) — какие запросы стоит закрыть новыми или обновлёнными материалами.

## Материалы и источники

- [Refine: Content Calendar](https://refine.dev/use-cases/marketing/content-calendar/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: собственные страницы](https://filamentphp.com/docs/4.x/navigation/custom-pages)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: уведомления в базе данных](https://filamentphp.com/docs/4.x/notifications/database-notifications)