[英]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"><?php echo "Hewllo World"; ?></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.