Да, в MODX вы можете создать баннер, который позволяет задавать его картинку через администраторскую панель, а не в коде ресурса через дополнительные поля.
Для реализации этого требуется выполнить следующие шаги:
1. Создайте новую плагинку:
- Перейдите в раздел "Элементы" в административной панели MODX.
- Щелкните правой кнопкой мыши на разделе "Плагины" и выберите "Создать плагин".
- Назовите плагин, например, "Banner Plugin" и укажите его системное имя, например, "banner_plugin".
2. В разделе "События" выберите событие "OnRichTextEditorRegister":
- Это событие позволяет добавлять пользовательские элементы в редактор контента.
3. В поле кода плагина добавьте следующий код:
<?php $editor = $modx->event->params['editor']; if ($editor == 'ckeditor') { $modx->event->output('<script> // Скрипт, добавляющий пользовательскую кнопку в редактор контента CKEditor CKEDITOR.on("instanceCreated", function (event) { var editor = event.editor; editor.ui.addButton("Banner", { label: "Вставить баннер", command: "InsertBanner", toolbar: "insert" }); editor.addCommand("InsertBanner", { exec: function (editor) { // Открыть окно с выбором изображения баннера и вставить его в контент // Реализация окна выбора изображения зависит от ваших потребностей // Это может быть JSON-ресурс, плагин выбора изображений или что-то еще. } }); }); </script>'); } elseif ($editor == 'tinymce') { $modx->event->output('<script> // Скрипт, добавляющий пользовательскую кнопку в редактор контента TinyMCE tinymce.PluginManager.add("banner", function (editor) { editor.addButton("banner", { text: "Вставить баннер", icon: false, onclick: function () { // Открыть окно с выбором изображения баннера и вставить его в контент // Реализация окна выбора изображения зависит от ваших потребностей // Это может быть JSON-ресурс, плагин выбора изображений или что-то еще. } }); }); </script>'); }
4. Сохраните плагин.
5. Перейдите в раздел "Элементы" -> "Ресурсы":
- Создайте или выберите существующий ресурс, в котором нужно добавить баннер.
- Откройте вкладку "Доп. поля" и создайте поле типа "Текст" с системным именем "banner" (или любым другим системным именем по вашему выбору).
6. Добавьте вызов плагина в шаблоне вашего ресурса:
- Откройте нужный вам шаблон.
- Найдите место, где нужно выводить баннер, и добавьте следующий код (предполагается, что вы используете синтаксис MODX):
[[!banner_plugin]] [[+banner]]
- Где banner_plugin
- это системное имя созданной вами плагинки, а banner
- системное имя созданного вами поля.
Теперь, когда вы откроете редактор контента (например, CKEditor или TinyMCE), у вас должна появиться новая кнопка "Вставить баннер". При щелчке на эту кнопку откроется окно, где вы сможете выбрать изображение для баннера. Выбранное изображение будет вставлено в контент вашего ресурса при щелчке на кнопку "Вставить".
Помните, что реализация окна выбора изображения зависит от ваших потребностей и может быть реализована различными способами, например, через JSON-ресурс или внешний плагин выбора изображений.