В CMF MODX Revolution изначально не предусмотрена возможность ставить задачи и привязывать их к ресурсам. Такое дополнение я тоже не нашел, да и было интересно разобраться в создании виджетов, поэтому придумал решение, как можно быстро реализовать такой функционал на своем сайте. Собственно, в этой статье хочу им поделиться. Пишем мы контент — статью в блог, например. В процессе возникает идея: дописать позже какой-то информационный блок, улучшить картинку, добавить ссылку на новую статью. Но сейчас делать это времени категорически не хватает, а идею нужно зафиксировать. В коде обычно используют комментарии с меткой @TODO. По ней потом можно найти все задачи прямо в проекте. Я решил использовать такой же подход — задачи можно ставить прямо в содержимом ресурса. Достаточно написать "@TODO: Сделать что-то", и обернуть в HTML комментарий, чтобы эта информация не отображалась посетителям сайта. Потом создать виджет и вывести его на главную страницу админки — таким образом накопившиеся задачи будут мозолить глаза и автоматически напоминать о себе. Для удобства прямо в виджете выводится ID ресурса и ссылка на него, чтобы можно было сразу перейти к редактированию, не копаясь в дереве ресурсов. Чтобы убрать задачу - нужно удалить ее текст из содержимого ресурса. Для начала создаем ресурс (или используем существующий) и добавляем в содержимое ресурса задачу — <!-- @TODO: Какая-нибудь задача -->. Переходим в «Настройки -> Панели управления -> Виджеты» и создаем виджет. Название любое, я назову «widget_todo_list». Значение «Размер» лучше установить «На всю ширину». Выбираем тип виджета «Сниппет», и сразу вписываем название сниппета (пока просто название, создадим мы его дальше) в поле «Содержимое виджета». Название сниппета также можно использовать любое, я назову «WidgetTodoList». Теперь привяжем созданный виджет к панели управления. Возвращаемся в «Настройки -> Панели управления -> Панели управления». По умолчанию там будет всего одна панель - «Default». Заходим в редактирование панели и жмем кнопку «Добавить виджет». Во всплывающем окне выбираем ранее созданный виджет «widget_todo_list», жмем «Сохранить». Виджет должен появиться в таблице с другими виджетами. Чтобы настроить, в каком порядке они будут отображаться - введите числовое значение в таблицу в столбец "Сортировка". Наименьшие значения будут вверху, наибольшие - внизу. Я хочу, чтобы задачи были в самом начале, поэтому ставлю 0. Теперь осталось создать сам сниппет — php скрипт, который будет получать из базы данных содержимое ресурсов, обрабатывать их и генерировать содержимое виджета — таблицу с задачами и ссылками на ресурсы.  Создаем новый сниппет, называем, как записывали ранее в содержимом виджета - WidgetTodoList. Код сниппета будет такой (я знаю, что смешивать HTML и PHP является плохой практикой, и есть смысл вынести HTML в чанки, но кода тут не так много, поэтому я решил не усложнять и все объединить в одном месте): Сохраняем сниппет и переходим на главную страницу админки. Должен появиться виджет с таблицей задач. У каждой задачи указан ID ресурса, в котором она находится. ID обернут в ссылку на этот ресурс в админке, так что можно сразу переходить и редактировать. Названия ресурсов прописаны в атрибуте «title» ссылки, так что при наведении на нее можно посмотреть название ресурса. Конечно, можно вести задачи в отдельной таблице или таск-менеджере, но, во-первых, это сильно замусорит учет задач всякой мелочевкой, во-вторых, нужно переходить из MODX в другую систему, забивать туда задачу, потом не забыть ее закрыть и так далее… Поэтому вариант писать задачи прямо в контенте ресурса меня устраивает. Если статья была полезной - буду благодарен за подписку на ТГ канал DIGITAL СФЕРА, где пишу про опыт работы с разными направлениями в сфере Digital — маркетинг, SEO, разработка сайтов, аналитика и другие.    Прокрастинатолог. Копаюсь в себе и в коде.