Почему редактор WYSIWYG удаляет код PHP? - PullRequest
2 голосов
/ 29 июля 2010

Я использую формат ввода как "PHP Code" ... введите код PHP, и он выглядит хорошо. В следующий раз, когда я пойду редактировать это, он удалит все это. Это очень расстраивает.

Ответы [ 2 ]

3 голосов
/ 29 июля 2010

Ответ Грэма объясняет, что происходит, но вот как вы можете это исправить.

Но сначала предостережение : вам действительно следует избегать написания PHP в веб-интерфейсе Drupal, где он хранитсяв базе данных.Это очень небезопасно (нужно быть очень осторожным с разрешениями сайта), и вы не пользуетесь контролем версий.Попробуйте написать свои собственные небольшие модули / темы, чтобы выполнить работу PHP.

Если вы установили свой WYSIWYG с помощью модуля WYSIWYG , вы можете назначить отдельную конфигурацию вашего WYSIWYG для каждогоФормат ввода.Убедитесь, что для формата ввода «PHP code» не назначен WYSIWYG, и вам не придется беспокоиться о «Включено» или «Отключено» по умолчанию.Тем не менее, когда вы начинаете кодировать в PHP в текстовом поле, вы не можете переключаться назад и вперед между кодом PHP и форматом ввода, который запустит WYSIWYG. Это позволит экранировать символы PHP как объекты HTML,как сказал Грэм, и уничтожит ваш код (у меня был клиент, который делал это с моим PHP-кодом в блоке, что является еще одной причиной не писать PHP внутри самого пользовательского интерфейса сайта).

Если вы используете Модуль «Лучшие форматы» Вы можете назначить Формат ввода по умолчанию для каждой роли пользователя, которую вы определили на своем сайте.Это то, что я делаю, чтобы полностью избежать ситуации.Когда я хочу сделать PHP-кодирование внутри Drupal, я использую роль, которая по умолчанию использует формат ввода, который не включает мой WYSIWYG, поэтому я знаю, что никогда не буду случайно открывать узел / блок с помощью PHP и автоматически уничтожать егоредактором WYSIWYG.

3 голосов
/ 29 июля 2010

Редактор WYSIWYG может скрывать PHP, поскольку он не является допустимым HTML и выглядит как тег. Проверьте представление Source и посмотрите, есть ли код еще там, но невидим.

В этом отношении вам следует редактировать текстовое поле PHP с помощью обычного текстового редактора, а не WYSIWYG, поскольку оно может заменять «<» на HTML-сущность (& lt;) и т. Д. </p>

...