diff --git a/insert_view_adv_bueditor/insert_view_adv_bueditor.info.yml b/insert_view_adv_bueditor/insert_view_adv_bueditor.info.yml new file mode 100644 index 0000000..44adbe5 --- /dev/null +++ b/insert_view_adv_bueditor/insert_view_adv_bueditor.info.yml @@ -0,0 +1,8 @@ +name: 'Advanced Insert View BUEditor Integration' +type: module +description: 'BUEditor Input filter which allows to embed views.' +dependencies: + - insert_view_adv + - bueditor +package: 'Input filters' +core: 8.x diff --git a/insert_view_adv_bueditor/insert_view_adv_bueditor.libraries.yml b/insert_view_adv_bueditor/insert_view_adv_bueditor.libraries.yml new file mode 100644 index 0000000..f0037fd --- /dev/null +++ b/insert_view_adv_bueditor/insert_view_adv_bueditor.libraries.yml @@ -0,0 +1,6 @@ +drupalviews: + version: VERSION + js: + js/bueditor.drupalviews.js: {} + dependencies: + - bueditor/drupal.bueditor diff --git a/insert_view_adv_bueditor/js/bueditor.drupalviews.js b/insert_view_adv_bueditor/js/bueditor.drupalviews.js new file mode 100644 index 0000000..b824c51 --- /dev/null +++ b/insert_view_adv_bueditor/js/bueditor.drupalviews.js @@ -0,0 +1,33 @@ +(function ($, Drupal, BUE) { + 'use strict'; + + /** + * @file + * Defines Views embed button for BUEditor. + */ + + /** + * Register buttons. + */ + BUE.registerButtons('bueditor.drupalviews', function() { + return { + drupalViews: { + id: 'drupalviews', + label: Drupal.t('Views'), + text: 'Views', + code: BUE.views + } + }; + }); + + /** + * Previews editor content asynchronously. + */ + var bueViews = BUE.views = function(E) { + E.tokenDialog('view', [ + {name: 'view', title: BUE.t('View id'), required: true}, + {name: 'display', title: BUE.t('Display id'), required: false}, + {name: 'args', title: BUE.t('Args'), required: false} + ], BUE.t('View Embed Token')); + }; +})(jQuery, Drupal, BUE); diff --git a/insert_view_adv_bueditor/src/Plugin/BUEditorPlugin/DrupalViews.php b/insert_view_adv_bueditor/src/Plugin/BUEditorPlugin/DrupalViews.php new file mode 100644 index 0000000..fa748db --- /dev/null +++ b/insert_view_adv_bueditor/src/Plugin/BUEditorPlugin/DrupalViews.php @@ -0,0 +1,48 @@ + $this->t('Views Embed'), + ]; + } + + /** + * {@inheritdoc} + */ + public function alterEditorJS(array &$js, BUEditorEditor $bueditor_editor, Editor $editor = NULL) { + $toolbar = BUEditorToolbarWrapper::set($js['settings']['toolbar']); + // Check drupal views button. + if ($toolbar->has('drupalviews')) { + $js['libraries'][] = 'insert_view_adv_bueditor/drupalviews'; + } + } + + /** + * {@inheritdoc} + */ + public function alterToolbarWidget(array &$widget) { + // Make drupalviews definition available to toolbar widget + $widget['libraries'][] = 'insert_view_adv_bueditor/drupalviews'; + } + +}