我正在使用Drupal 7和CKEditor模块用于WYSIWYG textarea。我需要以完整HTML文本格式插入像<?php echo "Hello World!"; ?>
这样的PHP代码,不需要在WYSIWYG模式下查看Hello World
,但它必须处于源模式。
配置文件sites\all\modules\contrib\ckeditor\ckeditor.config.js
包含config.protectedSource.push(/<\?[\s\S]*?\?>/g); // PHP Code
行,而完整HTML文本格式已选中PHP evalutaor
。
所以,如果我在源模式中编写<?php echo "Hello World!"; ?>
,它可以完美地运作。
现在我想在CKEditor工具栏中添加一个按钮,以便在单击按钮时添加下一个代码:<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()
的{{1}},则结果为(请注意code.setText()
和<
已转义):
>
如何在CKEditor工具栏按钮中插入PHP代码?
答案 0 :(得分:-1)
解决方案非常简单。只需更改insertElement
功能的insertHtml
功能:
editor.addCommand('phpcode', {
exec : function() {
editor.insertHtml('<div id="phpcode"><?php echo "Hewllo World"; ?></div>');
}
});