2012-12-04 125 views
1

我想根據用戶類型和某些條件設置ckeditor工具欄。動態ckeditor工具欄

Partialy我按以下步驟進行:

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

代碼都長基礎上,用戶模式 所以我想創建一個數組,只是我想在工具欄 分配像如下:

config.toolbar_MyTool = myToolArray; 

另外我想檢查自己的帖子或其他人的帖子。如果是自己的帖子,我想另外添加一些工具。

+0

你能PLZ告訴我如何得到ckeditor的UserMode config.js – 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:

但是,如果你是幸福的顯示完整的工具欄也是用戶模式2和花白的全選,按鈕,那麼下面可能是您的解決方案:

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

[編輯2月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('Find'); toolbarArray.push( '全選'); config.toolbar = toolbarArray;可能嗎? – RGA

+0

@RGA根據您的問題添加了解決方案3 – r3mark