我如何从插件插入一个PHP代码到CKEditor中?

我使用Drupal 7和CKEditor模块来实现所见即所得的textarea。 我需要插入一个PHP代码,如<?php echo "Hello World!"; ?> <?php echo "Hello World!"; ?>在Full HTML文本格式,它不需要看到Hello World在所见即所得的模式,但它必须是在源模式。

配置文件sitesallmodulescontribckeditorckeditor.config.jsconfig.protectedSource.push(/<?[sS]*??>/g); // PHP Code config.protectedSource.push(/<?[sS]*??>/g); // PHP Code行和完整的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() for 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>');
    }
});
链接地址: http://www.djcxy.com/p/89989.html

上一篇: How can I insert a PHP code in CKEditor from a plugin?

下一篇: Drupal 7.10 WYSIWYG with syntax highlighting