【问题标题】:How can I insert a PHP code in CKEditor from a plugin?如何通过插件在 CKEditor 中插入 PHP 代码?
【发布时间】: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.jsconfig.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);
    }
});

但结果是(注意&lt;?php?&gt; 被注释了。):

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

如果我将code.setHtml() 更改为code.setText(),结果是(注意&lt;&gt; 已转义):

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

如何在 CKEditor 工具栏按钮中单击插入 PHP 代码?

【问题讨论】:

    标签: php drupal drupal-7 escaping ckeditor


    【解决方案1】:

    解决方案非常简单。只需将insertElement 函数更改为insertHtml 函数即可:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多