簡體   English   中英

如何通過插件在CKEditor中插入PHP代碼?

[英]How can I insert a PHP code in CKEditor from a plugin?

我將Drupal 7和CKEditor模塊用於所見即所得的textarea。 我需要插入像<?php echo "Hello World!"; ?>這樣的PHP代碼<?php echo "Hello World!"; ?> <?php echo "Hello World!"; ?>為Full HTML文本格式,不需要以WYSIWYG模式查看Hello World ,但必須處於源代碼模式。

配置文件sites\\all\\modules\\contrib\\ckeditor\\ckeditor.config.js具有config.protectedSource.push(/<\\?[\\s\\S]*?\\?>/g); // PHP Code config.protectedSource.push(/<\\?[\\s\\S]*?\\?>/g); // PHP Code行和Full HTML文本格式已檢查PHP evalutaor

因此,如果我寫<?php echo "Hello World!"; ?> <?php echo "Hello World!"; ?>在源代碼模式下, 它可以完美運行

現在,我想在CKEditor工具欄中添加一個按鈕,以在單擊按鈕時添加下一個代碼: <div id="phpcode"><?php echo "Hello World!"; ?></div> <div id="phpcode"><?php echo "Hello World!"; ?></div>

我的plugin.js的代碼是:

editor.addCommand('phpcode', {
    exec : function() {
        code = editor.document.createElement('div');
        code.setAttribute('id', 'phpcode');
        code.setHtml('<?php echo "Hewllo World"; ?>');
        editor.insertElement(code);
    }
});

但是結果是(注意<?php?>已注釋。):

<div id="phpcode"><!--?php echo "Hewllo World"; ?--></div>

如果我將code.setHtml()更改為code.setText()則結果為(注意<>被轉義):

<div id="phpcode">&lt;?php echo "Hewllo World"; ?&gt;</div>

如何單擊CKEditor工具欄按鈕來插入PHP代碼?

解決方案是如此簡單。 只需將insertElement函數更改為insertHtml函數即可:

editor.addCommand('phpcode', {
    exec : function() {
        editor.insertHtml('<div id="phpcode"><?php echo "Hewllo World"; ?></div>');
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM