http://cksource.com/forums/viewtopic.php?f=11&t=15910&p=40520&hilit=plugin+richcombo+plugin#p40520


CKEDITOR.plugins.add('fusion', {
requires: ['richcombo', 'styles'],
init: function (editor) {
var config = editor.config,
lang = editor.lang.fusion,
tags = editor.config.fusion_tags.split(';');
var elements = [];
for (var i = 0; i < tags.length; i++) {
var tag_name = tags[i];
elements[tag_name] = new CKEDITOR.style(config['fusion_' + tag_name]);
}
editor.ui.addRichCombo('Fusion', {
label: lang.label,
title: lang.panelTitle,
voiceLabel: lang.voiceLabel,
className: 'cke_format',
multiSelect: false,
panel: {
css: [config.contentsCss, CKEDITOR.getUrl(editor.skinPath + 'editor.css')],
voiceLabel: lang.panelVoiceLabel
},
init: function () {
this.startGroup(lang.panelTitle);
for (var tag in elements) { // small problem here, we also loop through the object properties
var label = lang['tag_' + tag];
var placeholder = elements[tag].element;
if (label != undefined){ // so we check
this.add('##' + placeholder + '##', label, label);
}
}
},
onClick: function (value) {
editor.focus();
editor.fire('saveSnapshot');
editor.insertHtml(value);
editor.fire('saveSnapshot');
},
onRender: function () {
editor.on('selectionChange', function (h) {
var i = this.getValue(),
j = h.data.path;
for (var k in e) if (e[k].checkActive(j)) {
if (k != i) this.setValue(k, editor.lang.fusion['tag_' + k]);
return;
}
this.setValue('');
}, this);
}
});
}
});
CKEDITOR.config.fusion_tags = 'civilite;raison_social;prenom;cle_identite;adresse;adresse1;adresse2;adresse3;code_postal;cedex;commune;pays;telephone;fax;mail;portable;siret;siren;evv;cvi;ppm;num_echantions;tva;vinificateur;embouteilleur;negociant;nom_ou_rs;nom_ou_rs_libelle;siret_ou_cvi;siren_ou_cvi;date_du_jour';
CKEDITOR.config.fusion_civilite = {
element: '.civilite'
};
CKEDITOR.config.fusion_raison_social = {
element: '.rs'
};
CKEDITOR.config.fusion_prenom = {
element: '.prenom'
};
CKEDITOR.config.fusion_cle_identite = {
element: '.cle_identite'
};
CKEDITOR.config.fusion_adresse = {
element: '.adresse'
};
CKEDITOR.config.fusion_adresse1 = {
element: '.adresse1'
};
CKEDITOR.config.fusion_adresse2 = {
element: '.adresse2'
};
CKEDITOR.config.fusion_adresse3 = {
element: '.adresse3'
};
CKEDITOR.config.fusion_code_postal = {
element: '.cp'
};
CKEDITOR.config.fusion_cedex = {
element: '.cedex'
};
CKEDITOR.config.fusion_commune = {
element: '.commune'
};
CKEDITOR.config.fusion_pays = {
element: '.pays'
};
CKEDITOR.config.fusion_telephone = {
element: '.tel'
};
CKEDITOR.config.fusion_fax = {
element: '.fax'
};
CKEDITOR.config.fusion_mail = {
element: '.mail'
};
CKEDITOR.config.fusion_portable = {
element: '.portable'
};
CKEDITOR.config.fusion_siret = {
element: '.siret'
};
CKEDITOR.config.fusion_siren = {
element: '.siren'
};
CKEDITOR.config.fusion_evv = {
element: '.evv'
};
CKEDITOR.config.fusion_cvi = {
element: '.cvi'
};
CKEDITOR.config.fusion_ppm = {
element: '.numppm'
};
CKEDITOR.config.fusion_num_echantions = {
element: '.num_echantions'
};
CKEDITOR.config.fusion_tva = {
element: '.tva'
};
CKEDITOR.config.fusion_vinificateur = {
element: '.isvinificateur'
};
CKEDITOR.config.fusion_embouteilleur = {
element: '.isembouteilleur'
};
CKEDITOR.config.fusion_negociant = {
element: '.isnegoc'
};
CKEDITOR.config.fusion_nom_ou_rs = {
element: '.nomlibelle'
};
CKEDITOR.config.fusion_nom_ou_rs_libelle = {
element: '.nomorrswithlibelle'
};
CKEDITOR.config.fusion_siret_ou_cvi = {
element: '.sirenorcvi'
};
CKEDITOR.config.fusion_siren_ou_cvi = {
element: '.siretorcvi'
};
CKEDITOR.config.fusion_date_du_jour = {
element: '.datedujour'
};fusion: {
label: 'Fusion',
panelTitle: 'Champs de fusion',
tag_civilite: 'Civilité',
tag_raison_social: 'Raison Social',
tag_prenom: 'Prénom',
tag_cle_identite: 'Clé identité',
tag_adresse: 'Adresse',
tag_adresse1: 'Adresse 1',
tag_adresse2: 'Adresse 2',
tag_adresse3: 'Adresse 3',
tag_code_postal: 'Code Postal',
tag_cedex: 'Cedex',
tag_commune: 'Commune',
tag_pays: 'Pays',
tag_telephone: 'Téléphone',
tag_fax: 'Fax',
tag_mail: 'Mail',
tag_portable: 'Portable',
tag_siret: 'N° Siret',
tag_siren: 'N° Siren',
tag_evv: 'N° EVV',
tag_cvi: 'N° CVI',
tag_ppm: 'N° PPM',
tag_num_echantions: 'Nombre d\'échantillon',
tag_tva: 'TVA',
tag_vinificateur: 'Est vinificateur',
tag_embouteilleur: 'Est embouteilleur',
tag_negociant: 'Est négociant',
tag_nom_ou_rs: 'Nom ou raison sociale',
tag_nom_ou_rs_libelle: 'Nom ou raison soc. + libelle',
tag_siret_ou_cvi: 'N° Siret ou N° CVI',
tag_siren_ou_cvi: 'N° Siren ou N° CVI',
tag_date_du_jour: 'Date du jour'
},config.extraPlugins = 'fusion';

