Я использую Drupal 7 и модуль CKEditor для текстового поля WYSIWYG. Мне нужно вставить PHP-код, например <?php echo "Hello World!"; ?>
, в текстовом формате Full HTML, не нужно видеть Hello World
в режиме WYSIWYG, но он должен быть в исходном режиме.Как я могу вставить PHP-код в CKEditor из плагина?
В файле конфигурации sites\all\modules\contrib\ckeditor\ckeditor.config.js
есть строка config.protectedSource.push(/<\?[\s\S]*?\?>/g); // PHP Code
, а в текстовом формате Full 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>
Как вставить код PHP, нажав кнопку на панели инструментов CKEditor?