Прикладные крючки («apphooks»)

Application Hook, обычно называемый просто apphook, - это способ прикрепить функциональность другого приложения к странице django CMS. Это удобный способ интеграции других приложений в сайт django CMS.

Например, предположим, у вас есть приложение, которое поддерживает и публикует информацию об олимпийских рекордах. Вы можете добавить это приложение в urls.py (до шаблона URLs django CMS), чтобы пользователи находили его по адресу /records.

Однако, хотя таким образом он будет интегрирован в ваш проект, он не будет полностью интегрирован, например, в django CMS:

  • django CMS не будет знать об этом, и - например - позволит вашим пользователям создать страницу CMS с тем же самым /records slug, которая никогда не будет доступна.

  • Страницы приложения не будут автоматически появляться в меню вашего сайта.

  • Страницы приложения не смогут воспользоваться преимуществами рабочего процесса публикации CMS, разрешениями и другими функциональными возможностями.

Apphooks предлагают более полный способ интеграции других приложений, прикрепляя их к странице CMS. В этом случае прикрепленное приложение берет на себя страницу и ее URL (и все URL ниже, например, /records/1984).

Приложение может обслуживаться по URL, определенному контент-менеджерами, и легко перемещаться в структуре сайта.

В Дополнительных настройках страницы CMS имеется поле Приложение. Adding an apphook class к приложению позволит выбрать его в этом поле.

Множественные apphooks для каждого приложения

Приложение может быть добавлено несколько раз на разные страницы. Подробнее см. в разделе Прикрепление приложения несколько раз.

Также возможно предоставление многочисленных конфигураций apphook:

Конфигурации Apphook

Вы можете потребовать, чтобы одно и то же приложение вело себя по-разному в разных местах вашего сайта. Например, от приложения «Олимпийские рекорды» может потребоваться публикация результатов легкой атлетики в одном месте, а результатов велоспорта - в другом, и так далее.

Класс apphook configuration позволяет редакторам сайта создавать несколько экземпляров конфигурации, определяющих поведение. Вид доступной конфигурации представлен в форме администратора и определяется разработчиком приложения.

Важно

Важно понимать, что apphook (и, следовательно, конфигурация apphook) не выполняет никаких функций, пока он не привязан к странице - и пока страница не будет опубликована, приложение не сможет выполнить ни одной функции публикации.

Также обратите внимание, что apphook «проглатывает» все URL ниже страницы, передавая их подключенному приложению. Если у вас есть дочерние страницы страницы apphooked, django CMS не сможет их надежно обслуживать.

Вернуться на верх