Виджет CKeditor: как вернуть другой виджет редактора на основе ввода в диалог редактора - PullRequest
0 голосов
/ 26 июня 2019

У меня есть блок, в котором редактор содержимого может добавить в диалоговом окне текст, а также изображение или видео.

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

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

export default function(editor) {
  CKEDITOR.dialog.add("imageTextBlockWidget", () => ({
    title: "Edit image and text block",
    contents: [
      {
        id: "info",
        elements: [
          {
            id: "columns",
            type: "select",
            label: "Image and text column split",
            items: [
              ["25/75", "25-75"],
              ["40/60", "40-60"],
              ["50/50", "50-50"],
              ["60/40", "60-40"]
            ],
            setup(w) {
              this.setValue(w.data.columns);
            },
            commit(w) {
              w.setData("columns", this.getValue());
            }
          },
          {
            id: "imageAlignment",
            type: "select",
            label: "Align image to the right or the left",
            items: [["Left", "left"], ["Right", "right"]],
            setup(w) {
              this.setValue(w.data.imageAlignment);
            },
            commit(w) {
              w.setData("imageAlignment", this.getValue());
            }
          },
          {
            id: "youtube",
            type: "text",
            label: "If you wish to use a video instead of an image, enter the Youtube url here",
            setup: function setup(w) {
              this.setValue(w.data.youtube);
            },
            commit: function commit(w) {
              w.setData("youtube", this.getValue());
            }
          }
        ]
      }
    ]
  }));

  if (CKEDITOR.instances.youtube !== '') {
    return editor.widgets.add("imageTextBlock", {
      // show video related fields
    }
  } else {
    return editor.widgets.add("imageTextBlock", {
      // show image related fields
    }
  }

}

Я хотел бы отобразить отдельный шаблон, если URL-адрес YouTube был добавлен, однако я получаю тот же шаблон отображается.

Есть идеи?Если я смогу выполнить условие, я сделаю все остальное.

Заранее спасибо

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