2012-12-04 1 views
1

Я хочу установить панель инструментов ckeditor в зависимости от типа пользователя и некоторого состояния.Dynamic ckeditor toolbar

частично я сделал, как показано ниже:

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

Кодекс идет долго на основе UserMode , поэтому я хочу, чтобы создать массив и просто я хочу, чтобы назначить панель вроде как ниже:

config.toolbar_MyTool = myToolArray; 

Также я хочу проверить собственное сообщение или сообщение другого человека. Если это собственный пост, я хочу добавить некоторые инструменты дополнительно.

+0

вы можете сказать мне плз как вам получить UserMode config.js из ckeditor – Archana

+0

@Archana его моя локальная переменная – RGA

ответ

5

Вы бы начать с определения ваших различных панелей инструментов в config.js

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

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

Эти панели инструментов-определений затем могут быть использованы позже на странице, но имейте в виду, что как только вы создаете экземпляр CKEditor, расположение панели инструментов не может быть изменен:

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

Решение 1:

Вы должны создать новый экземпляр, чтобы изменить панель инструментов динамически:

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; 
} 

Решение 2:

Однако, если вы счастливы с отображением полной панели инструментов также в UserMode 2 и седина в SelectAll-Button, то следующее может быть ваше решение:

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 февраля]

Решение 3:

Согласно ваш комментарий -> как динамически создавать с Array.push

Нет конфигурации, необходимой в 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

, но мне нужно, как последовать toolbarArray.push ('Найти'); toolbarArray.push ('SelectAll'); config.toolbar = toolbarArray; Является ли это возможным? – RGA

+0

@ RGA добавлено решение 3 в соответствии с вашим вопросом – r3mark

Смежные вопросы