Actualización
This commit is contained in:
194
main/inc/lib/javascript/ckeditor/plugins/audio/plugin.js
Normal file
194
main/inc/lib/javascript/ckeditor/plugins/audio/plugin.js
Normal file
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
* @file Audio plugin for CKEditor - fork from the Video plugin for CKEditor
|
||||
* Copyright (C) 2014 BeezNest Latino S.A.C
|
||||
*
|
||||
* == BEGIN LICENSE ==
|
||||
*
|
||||
* Licensed under the terms of any of the following licenses at your
|
||||
* choice:
|
||||
*
|
||||
* - GNU General Public License Version 2 or later (the "GPL")
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
||||
* http://www.gnu.org/licenses/lgpl.html
|
||||
*
|
||||
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
||||
* http://www.mozilla.org/MPL/MPL-1.1.html
|
||||
*
|
||||
* == END LICENSE ==
|
||||
*
|
||||
*/
|
||||
(function() {
|
||||
|
||||
CKEDITOR.plugins.add('audio', {
|
||||
// Translations, available at the end of this file, without extra requests
|
||||
lang: ['en', 'es'],
|
||||
getPlaceholderCss: function() {
|
||||
return 'img.cke_audio' +
|
||||
'{' +
|
||||
'background-image: url(' + CKEDITOR.getUrl(this.path + 'images/placeholder.png') + ');' +
|
||||
'background-position: center center;' +
|
||||
'background-repeat: no-repeat;' +
|
||||
'background-color:gray;' +
|
||||
'border: 1px solid #a9a9a9;' +
|
||||
'width: 80px;' +
|
||||
'height: 40px;' +
|
||||
'}';
|
||||
},
|
||||
onLoad: function() {
|
||||
// v4
|
||||
if (CKEDITOR.addCss)
|
||||
CKEDITOR.addCss(this.getPlaceholderCss());
|
||||
},
|
||||
init: function(editor) {
|
||||
var lang = editor.lang.audio;
|
||||
|
||||
// Check for CKEditor 3.5
|
||||
if (typeof editor.element.data == 'undefined') {
|
||||
alert('The "audio" plugin requires CKEditor 3.5 or newer');
|
||||
return;
|
||||
}
|
||||
|
||||
CKEDITOR.dialog.add('audio', this.path + 'dialogs/audio.js');
|
||||
|
||||
editor.addCommand('Audio', new CKEDITOR.dialogCommand('audio'));
|
||||
editor.ui.addButton('Audio', {
|
||||
label: lang.toolbar,
|
||||
command: 'Audio',
|
||||
icon: this.path + 'images/icon.png'
|
||||
});
|
||||
|
||||
// v3
|
||||
if (editor.addCss) {
|
||||
editor.addCss(this.getPlaceholderCss());
|
||||
}
|
||||
|
||||
// If the "menu" plugin is loaded, register the menu items.
|
||||
if (editor.addMenuItems) {
|
||||
editor.addMenuItems({
|
||||
audio: {
|
||||
label: lang.properties,
|
||||
command: 'Audio',
|
||||
group: 'flash'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
editor.on('doubleclick', function(evt) {
|
||||
var element = evt.data.element;
|
||||
|
||||
if (element.is('img') && element.data('cke-real-element-type') == 'audio') {
|
||||
evt.data.dialog = 'audio';
|
||||
}
|
||||
});
|
||||
|
||||
// If the "contextmenu" plugin is loaded, register the listeners.
|
||||
if (editor.contextMenu) {
|
||||
editor.contextMenu.addListener(function(element, selection) {
|
||||
if (element && element.is('img') && !element.isReadOnly()
|
||||
&& element.data('cke-real-element-type') == 'audio') {
|
||||
return {audio: CKEDITOR.TRISTATE_OFF};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Add special handling for these items
|
||||
CKEDITOR.dtd.$empty['cke:source'] = 1;
|
||||
CKEDITOR.dtd.$empty['source'] = 1;
|
||||
|
||||
editor.lang.fakeobjects.audio = lang.fakeObject;
|
||||
}, //Init
|
||||
|
||||
afterInit: function(editor) {
|
||||
var dataProcessor = editor.dataProcessor,
|
||||
htmlFilter = dataProcessor && dataProcessor.htmlFilter,
|
||||
dataFilter = dataProcessor && dataProcessor.dataFilter;
|
||||
|
||||
// dataFilter : conversion from html input to internal data
|
||||
dataFilter.addRules({
|
||||
elements: {
|
||||
$: function(realElement) {
|
||||
if (realElement.name == 'audio') {
|
||||
realElement.name = 'cke:audio';
|
||||
|
||||
for (var i = 0; i < realElement.children.length; i++) {
|
||||
if (realElement.children[ i ].name == 'source') {
|
||||
realElement.children[ i ].name = 'cke:source';
|
||||
}
|
||||
}
|
||||
|
||||
var fakeElement = editor.createFakeParserElement(realElement, 'cke_audio', 'audio', false),
|
||||
fakeStyle = fakeElement.attributes.style || '';
|
||||
|
||||
var width = realElement.attributes.width;
|
||||
|
||||
if (typeof width != 'undefined') {
|
||||
fakeElement.attributes.style = fakeStyle + 'width:' + CKEDITOR.tools.cssLength(width) + ';';
|
||||
}
|
||||
|
||||
return fakeElement;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
} // afterInit
|
||||
|
||||
}); // plugins.add
|
||||
|
||||
var en = {
|
||||
toolbar: 'Audio',
|
||||
dialogTitle: 'Audio properties',
|
||||
fakeObject: 'Audio',
|
||||
properties: 'Edit audio',
|
||||
widthRequired: 'Width field cannot be empty',
|
||||
heightRequired: 'Height field cannot be empty',
|
||||
sourceAudio: 'Source audio',
|
||||
sourceType: 'Audio type',
|
||||
linkTemplate: '<a href="%src%">%type%</a> ',
|
||||
fallbackTemplate: 'Your browser doesn\'t support audio.<br>Please download the file: %links%',
|
||||
autoPlay: 'Auto play'
|
||||
};
|
||||
|
||||
var es = {
|
||||
toolbar: 'Audio',
|
||||
dialogTitle: 'Propiedades de audio',
|
||||
fakeObject: 'Audio',
|
||||
properties: 'Editar el audio',
|
||||
widthRequired: 'La anchura no se puede dejar en blanco',
|
||||
heightRequired: 'La altura no se puede dejar en blanco',
|
||||
sourceAudio: 'Archivo de audio',
|
||||
sourceType: 'Tipo',
|
||||
linkTemplate: '<a href="%src%">%type%</a> ',
|
||||
fallbackTemplate: 'Su navegador no soporta AUDIO.<br>Por favor, descargue el fichero: %links%',
|
||||
autoPlay: 'Reproducir automáticamente'
|
||||
};
|
||||
|
||||
var fr = {
|
||||
toolbar: 'Audio',
|
||||
dialogTitle: 'Propriétés de l\'audio',
|
||||
fakeObject: 'Audio',
|
||||
properties: 'Editer l\'audio',
|
||||
widthRequired: 'La largeur ne peut être vide',
|
||||
heightRequired: 'La hauteur ne peut être vide',
|
||||
sourceAudio: 'Fichier audio',
|
||||
sourceType: 'Type',
|
||||
linkTemplate: '<a href="%src%">%type%</a> ',
|
||||
fallbackTemplate: 'Votre navigateur ne supporte pas l\'AUDIO.<br>Veuillez télécharger le fichier: %links%',
|
||||
autoPlay: 'Lecture automatique'
|
||||
};
|
||||
|
||||
// v3
|
||||
if (CKEDITOR.skins) {
|
||||
en = {audio: en};
|
||||
es = {audio: es};
|
||||
}
|
||||
|
||||
// Translations
|
||||
CKEDITOR.plugins.setLang('audio', 'en', en);
|
||||
|
||||
CKEDITOR.plugins.setLang('audio', 'es', es);
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user