Redactor: Почему Redactor пытается заказать мои плагины?

Созданный на 12 апр. 2020  ·  10Комментарии  ·  Источник: craftcms/redactor

Для некоторых плагинов, добавляемых автоматически, они сообщают Redactor addButtonBefore или addButtonAfter другую конкретную кнопку...

Похоже, что плагин Craft не должен принимать решения о том, в каком порядке появляются наши плагины Redactor. В идеале они должны просто появляться в том порядке, в котором они указаны в файле JSON.

  "buttons": [
    "bold",
    "italic",
    "underline",
    "link",
    "lists"
  ],
  "plugins": [
    "alignment",
    "table"   <--- Table is at the end
  ],

Ω 2020-04-11 at 3 33 56 PM

Поскольку плагин Craft принимает эти решения, это приводит к странному поведению моей пользовательской панели инструментов. Когда я добавляю плагин (например, table ), он автоматически размещается на панели инструментов в _специфической_ позиции. Это сбивает с толку, потому что кнопка плагина оказывается не там, где я ее разместил .

Можем ли мы удалить предустановленные параметры заказа? Или как-то сделать их переопределяемыми?

enhancement

Самый полезный комментарий

У меня ушло несколько месяцев, но решение, наконец, здесь в виде совершенно новой опции конфигурации enforceButtonOrder Redactor!

Все 10 Комментарий

Это плагины, предоставляемые Redactor, поэтому не уверен, насколько умно было бы вмешиваться в этот код.

Ха, я предположил, что это просто реализация этих библиотек Craft. Странно, что Redactor так строг в отношении того, где должны появляться эти кнопки... разве весь смысл Redactor не в его гибкости?

Есть ли способ переопределить это? Мне трудно поверить, что кнопка «Таблица» _должна_ располагаться рядом с кнопкой «Ссылка», без исключений. 😕

Вероятно, это можно переопределить с помощью некоторого JS-кода, но если мы собираемся вмешиваться в это, давайте сделаем это правильно.

Если бы вы _хотели_ вставить туда кнопку таблицы посередине - как бы вы хотели определить это в конфиге?

Хм... это отличный вопрос, потому что Redactor уже скупится на то, как вы расположите кнопки.

В идеале мы могли бы использовать методы before и after , чтобы размещать их в любом месте...

https://imperavi.com/redactor/docs/settings/button/#s -buttonsaddafter

Но в худшем случае я просто ожидаю, что он приземлится именно там, где я поместил его в массив plugins ...

  "plugins": [
    "alignment",
    "fontcolor",
    "table",   <--- Table should be in the middle
    "fullscreen",
    "clips"
  ]

@lindseydiloreto, что я имел в виду, например, как бы вы вставили его между кнопками, выделенными жирным шрифтом и курсивом?

Вы спрашиваете: «Как я себе это представляю?» Может быть, что-то вроде этого...

  "buttonsAddAfter": {
    "after": "bold",
    "buttons": ["table"] // Places the plugin button
  },
  "plugins": [
    "table" // Loads the plugin
  ],

... или, возможно, вот так ...

  "pluginsAddAfter": {
    "after": "bold",
    "buttons": ["table"] // Loads & places the button
  },

Я понятия не имею, насколько легко это сочетается с тем, что Redactor и/или плагин Craft уже делают. Глядя на этот коммит , кажется, что плагину Craft все равно иногда приходится использовать грубую силу с Redactor.

Дайте мне знать ваши мысли, или если я совершенно неправильно понял вопрос! 😄

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

У меня ушло несколько месяцев, но решение, наконец, здесь в виде совершенно новой опции конфигурации enforceButtonOrder Redactor!

(Со следующим выпуском)

Ааа, молодец @andris-sevcenko! Большое спасибо за то, что зафиксировали это, мое ОКР будет намного счастливее. 😄

Не могу дождаться, чтобы взять его на спину! 🍺

Была ли эта страница полезной?
0 / 5 - 0 рейтинги