CKEDITOR.plugins.add('html5video', { requires: 'widget', lang: 'bg,ca,de,en,eu,es,ru,uk,fr,ko,pt,pt-br,pl,zh,zh-cn', icons: 'html5video', init: function (editor) { editor.widgets.add('html5video', { button: editor.lang.html5video.button, template: '
', /* * Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules): * - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class. * - video tags with src, controls, width and height attributes. */ allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,poster,controls,autoplay,width, height,loop]{max-width,height};', requiredContent: 'div(ckeditor-html5-video); video[src];', upcast: function (element) { return element.name === 'div' && element.hasClass('ckeditor-html5-video'); }, dialog: 'html5video', init: function () { var src = ''; var autoplay = ''; var loop = ''; var controls = ''; var align = this.element.getStyle('text-align'); var width = ''; var height = ''; var poster = ''; // If there's a child (the video element) if (this.element.getChild(0)) { // get it's attributes. src = this.element.getChild(0).getAttribute('src'); width = this.element.getChild(0).getAttribute('width'); height = this.element.getChild(0).getAttribute('height'); autoplay = this.element.getChild(0).getAttribute('autoplay'); allowdownload = !this.element.getChild(0).getAttribute('controlslist'); loop = this.element.getChild(0).getAttribute('loop'); advisorytitle = this.element.getChild(0).getAttribute('title'); controls = this.element.getChild(0).getAttribute('controls'); responsive = this.element.getAttribute('data-responsive'); poster = this.element.getChild(0).getAttribute('poster'); } if (src) { this.setData('src', src); if (align) { this.setData('align', align); } else { this.setData('align', 'none'); } if (width) { this.setData('width', width); } if (height) { this.setData('height', height); } if (autoplay) { this.setData('autoplay', 'yes'); } if (allowdownload) { this.setData('allowdownload', 'yes'); } if (loop) { this.setData('loop', 'yes'); } if (advisorytitle) { this.setData('advisorytitle', advisorytitle); } if (responsive) { this.setData('responsive', responsive); } if (controls) { this.setData('controls', controls); } if (poster) { this.setData('poster', poster); } } }, data: function () { // If there is an video source if (this.data.src) { // and there isn't a child (the video element) if (!this.element.getChild(0)) { // Create a new