【发布时间】:2014-08-20 12:12:44
【问题描述】:
我将 Drupal 7 和 CKEditor 模块用于所见即所得的文本区域。我需要插入一个像<?php echo "Hello World!"; ?>这样的PHP代码,格式为Full HTML文本格式,在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() 更改为code.setText(),结果是(注意< 和> 已转义):
<div id="phpcode"><?php echo "Hewllo World"; ?></div>
如何在 CKEditor 工具栏按钮中单击插入 PHP 代码?
【问题讨论】:
标签: php drupal drupal-7 escaping ckeditor