Bonsoir,
Je fais appel à un script pour créer des boutons dans le TinyMCE (v.4) de WordPress, et ce script fonctionne très bien jusqu'à présent :
Pour chaque bouton créé je dois cependant copier/coller une partie du code dénommé 'editor.addButton()'. J'aimerais donc factoriser ce dernier dans une boucle for() en stockant les données via un tableau.
Or mon script ne fonctionne plus dans ce cas, peut-être un problème de portée des variables, ou alors le fait que les données stockées en tableau ne soit pas appelées de manière appropriée ?
Quoi qu'il en soit je fait appel à votre expertise (code réduit ici pour 3 boutons) :
Modifié par Olivier C (03 Jun 2016 - 08:55)
Je fais appel à un script pour créer des boutons dans le TinyMCE (v.4) de WordPress, et ce script fonctionne très bien jusqu'à présent :
Pour chaque bouton créé je dois cependant copier/coller une partie du code dénommé 'editor.addButton()'. J'aimerais donc factoriser ce dernier dans une boucle for() en stockant les données via un tableau.
Or mon script ne fonctionne plus dans ce cas, peut-être un problème de portée des variables, ou alors le fait que les données stockées en tableau ne soit pas appelées de manière appropriée ?
Quoi qu'il en soit je fait appel à votre expertise (code réduit ici pour 3 boutons) :
( function() {
tinymce.PluginManager.add('ScripturaShortcodeButtons', function( editor, url ) {
var shortcodeButtons = [ 'message', 'message-info', 'message-success' ];
var titleButtons = [ 'Message', 'Message info', 'Message success' ];
var imageButtons = [ 'paperclip.svg', 'info.svg', 'checkmark.svg' ];
for ( var i = 0; i < shortcodeButtons.length; i++ ) {
editor.addButton( 'ScripturaButton' + i, { // @note Ici la variable est reconnue...
text: false,
icon: false,
title: titleButtons[i], // @note Ici aussi...
image: url + '/Images/' + imageButtons[i], // @note Ici aussi...
onclick: function() {
var content = [
{
type: 'textbox',
name: 'content',
label: 'Content',
value: ''
}
];
editor.windowManager.open( {
title: 'Un Titre', // @todo C'est à partir de là que ça coince : je pensais utiliser quelque chose comme titleButtons[i], mais nada...
autoScroll: true,
classes: 'scriptura-panel',
body: content,
onsubmit: function( e ) {
editor.insertContent(
'[_message]' + e.data.content + '[/_message]' // @todo Ça coince là aussi, il me faudrait le contenu de shortcodeButtons[i] en lieu et place du string 'message'
);
}
} );
}
} );
}
} );
} )();
[/i][/i][/i][/i] Modifié par Olivier C (03 Jun 2016 - 08:55)