2012-12-04 5 views
1

Je souhaite définir la barre d'outils ckeditor en fonction du type d'utilisateur et de certaines conditions.Barre d'outils dynamique ckeditor

Partialy je fait comme ci-dessous:

switch(UserMode) 
{ 
    case "1": 
     config.toolbar_MyTool = [ 
      ['Find', 'SelectAll'], ['Anchor'], ['Maximize'] 
     ]; 
     break; 
    case "2": 
     config.toolbar_MyTool = [ 
      ['Find'], ['Anchor'], ['Maximize'] 
     ]; 
     break; 
} 

code va longtemps basé sur le usermode donc je veux créer un tableau et que je veux assigner la barre d'outils comme comme ci-dessous:

config.toolbar_MyTool = myToolArray; 

Aussi je veux vérifier propre poste ou autre poste de personne. Si c'est votre propre message, je veux ajouter quelques outils supplémentaires.

+0

pouvez-vous me dire plz comment vous avez UserMode config.js de ckeditor – Archana

+0

@ Archana c'est ma variable locale – RGA

Répondre

5

Vous commencez par définir vos barres d'outils dans les config.js

config.toolbar_MyToolUserMode1 = [ 
     ['Find', 'SelectAll'], ['Anchor'], ['Maximize'] 
    ]; 

config.toolbar_MyToolUserMode2 = [ 
     ['Find'], ['Anchor'], ['Maximize'] 
    ]; 

Ces définitions barre d'outils peuvent être utilisés plus tard dans votre page, mais sachez que dès que vous créez une instance de CKEditor, la mise en page de la barre d'outils ne peut être modifié:

CKEDITOR.config.toolbar = "MyToolUserMode1"; 
var instance = CKEDITOR.appendTo(parentElement); 

Solution 1:

Vous devez créer une nouvelle instance de modifier la barre d'outils dynamique:

switch(UserMode) 
{ 
case "1": 
    if (instance) instance.destroy(); 
    CKEDITOR.config.toolbar = "MyToolUserMode1"; 
    instance = CKEDITOR.appendTo(parentElement); 
    break; 
case "2": 
    if (instance) instance.destroy(); 
    CKEDITOR.config.toolbar = "MyToolUserMode2"; 
    instance = CKEDITOR.appendTo(parentElement); 
    break; 
} 

Solution 2:

Cependant, si vous êtes heureux de montrer la barre d'outils complète également usermode 2 et grisonnants le SelectAll-Button, le suivant pourrait être votre solution:

CKEDITOR.config.toolbar = "MyToolUserMode1"; 
var instance = CKEDITOR.appendTo(parentElement); 

switch(UserMode) 
{ 
case "1": 
    instance.getCommand('selectAll').enable(); 
    break; 
case "2": 
    instance.getCommand('selectAll').disable(); 
    break; 
} 

[EDIT 15 février]

Solution 3:

Selon votre commentaire -> comment construire dynamiquement avec Array.push

Pas de configuration nécessaire dans config.js

// your code 
    var myToolbarSection1 = new Array(); 
    myToolbarSection1.push('Bold'); 
    myToolbarSection1.push('Italic'); 

    // attaching this section to toolbar 
    var myToolbar = new Array(); 
    myToolbar.push(myToolbarSection1); 

    // setting the toolbar 
    CKEDITOR.config.toolbar_Dynamic = myToolbar; 
    CKEDITOR.config.toolbar = 'Dynamic'; 

    var instance = CKEDITOR.appendTo('myDIVID'); 
+0

mais j'ai besoin de suivre toolbarArray.push ('Find'); toolbarArray.push ('selectAll'); config.toolbar = toolbarArray; c'est possible? – RGA

+0

@RGA ajouté la solution 3 en fonction de votre question – r3mark

Questions connexes