Плагины

См.также

CMS Plugins - это многоразовые издатели контента, которые могут быть вставлены в страницы django CMS (или вообще в любой контент, который использует django CMS placeholders). Они позволяют публиковать информацию автоматически, без дополнительного вмешательства.

Это означает, что опубликованный вами веб-контент, каким бы он ни был, всегда поддерживается в актуальном состоянии.

Это как магия, только быстрее.

Если вам не посчастливится обнаружить, что ваши потребности могут быть удовлетворены встроенными плагинами или множеством доступных сторонних плагинов, вам придется написать свой собственный плагин для CMS.

*Зачем вам нужно писать плагин?

Плагин - это самый удобный способ интегрировать содержимое из другого приложения Django в страницу django CMS.

Например, предположим, вы разрабатываете сайт для звукозаписывающей компании на django CMS. Возможно, вы захотите разместить на главной странице сайта блок «Последние релизы».

Конечно, вы можете время от времени редактировать эту страницу и обновлять информацию. Однако разумная звукозаписывающая компания будет управлять своим каталогом и в Django, а это значит, что Django уже знает, какие новинки вышли на этой неделе.

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

Плагины являются повторно используемыми. Возможно, ваша звукозаписывающая компания выпускает серию переизданий фундаментальных швейцарских панк-пластинок; на странице вашего сайта, посвященной этой серии, вы можете вставить тот же плагин, настроенный немного по-другому, который будет публиковать информацию о последних новых релизах в этой серии.

Компоненты плагина

Плагин django CMS фундаментально состоит из трех компонентов, которые соответствуют знакомой схеме Django «модель-представление-шаблон»:

Что

Функция

подкласс

модель (если требуется)

конфигурация экземпляра плагина

CMSPlugin

просмотреть

логика отображения

CMSPluginBase

шаблон

рендеринг

CMSPluginBase

Плагин model, подкласс cms.models.pluginmodel.CMSPlugin, является необязательным.

У вас может быть плагин, который не нужно настраивать, потому что он делает только одну вещь.

Например, у вас может быть плагин, который публикует информацию только о самой продаваемой записи за последние семь дней. Очевидно, что это не будет очень гибким - вы не сможете использовать тот же плагин для публикации информации о самом продаваемом релизе за последний месяц.

Обычно полезно иметь возможность конфигурировать свой плагин, а для этого требуется модель.

CMSPlugin

cms.plugin_base.CMSPluginBase фактически является подклассом django.contrib.admin.ModelAdmin.

Поскольку CMSPluginBase подклассы ModelAdmin несколько важных ModelAdmin опций также доступны разработчикам плагинов CMS. Эти опции часто используются:

  • exclude

  • fields

  • fieldsets

  • form

  • formfield_overrides

  • inlines

  • radio_fields

  • raw_id_fields

  • readonly_fields

Однако обратите внимание, что не все опции ModelAdmin эффективны в плагине CMS. В частности, любые опции, которые используются исключительно ModelAdmin’s changelist“, не будут иметь никакого эффекта. К таким и другим заметным опциям, которые игнорируются CMS, относятся:

  • actions

  • actions_on_top

  • actions_on_bottom

  • actions_selection_counter

  • date_hierarchy

  • list_display

  • list_display_links

  • list_editable

  • list_filter

  • list_max_show_all

  • list_per_page

  • ordering

  • paginator

  • prepopulated_fields

  • preserve_fields

  • save_as

  • save_on_top

  • search_fields

  • show_full_result_count

  • view_on_site

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