2010-09-16 7 views
1

Je voudrais ajouter des "éléments de modèle" dans l'éditeur de tineMCE. Les éléments du modèle agissent comme un espace réservé pour les données insérées dynamiquement.Ajouter des éléments de modèle dans TinyMCE

Un exemple:

Au lieu d'écrire: "Salut {firstname}, vous êtes {} ans ans." Je voudrais insérer un objet à la place du "{firstname}" qui est remplacé par "{firstname}" lors de l'enregistrement sur le serveur. Il devrait également traduire lors du chargement dans l'éditeur. L'objet doit être sélectionné dans une liste déroulante (mais cela devrait être facile une fois les autres choses corrigées).

Répondre

0

Dans ce cas, vous devez remplacer huitard l'espace réservé lors de l'enregistrement:

tinymce.activeEditor.onSaveContent.add(function(ed, o) { 
    console.debug(o.element.nodeName); 
    // do your replacement here using a regular expression and the saved value from the dropdown selection 
}); 

ou lorsque vous sélectionnez un nom dans la zone de sélection déroulante de votre propre plug-in.

Pour le retourner lors du chargement, vous devrez également stocker la chaîne de remplacement dans la satabase et la remplacer au démarrage de tinymce en utilisant une expression régulière.

// Andreas from db should be placed in a custom initialisation paramter like this: 
db_firstname_save: '<?php echo $value_from_db; ?>', // $value_from_db = 'Andreas' 

Remplacer la valeur de DB en utilisant une expression régulière

tinymce.activeEditor.onInit.add(function(ed) { 
    console.debug('Editor is done: ' + ed.id); 
    // do your replacement here using a regular expression 
    ed.setcontent(ed.getContent.replace(ed.getParam('db_firstname_save'),'{firstname}')); 
}); 

Afin de sélectionner le prenom à être sauvé db à partir d'un menu déroulant, vous devrez créer votre propre plugin. Comment faire cela peut être trouvé sur the tinymce documentation wiki.

Questions connexes