Привет,
Запросов на эту фичу хватает. Вроде уже было какое-то описано решение, но найти его не смог:)
Для подсветки решил попробовать . [spoiler] На сайте разработчика можно скачать библиотеку и использовать у себя на сайте. В своей реализации я решил не качать библиотеку, а подключать прямо с , так сказать для простоты, меньше телодвижений.
Для реализации подсветки php-синтаксиса вставляем в /bitrix/php_interface/init.php следующее:
После этого в административной части сайте при редактировании в режиме PHP будет подсвечиваться синтаксис, работать табуляция, отображаться номера строк и т.п. Подсвечиваться будет только PHP.
Код до:

Код после:

Обработчик можно переделать и подключать скрипты и стили локально, чтобы не зависеть от работоспособности сайта разработчика CodeMirror.
Запросов на эту фичу хватает. Вроде уже было какое-то описано решение, но найти его не смог:)
Для подсветки решил попробовать . [spoiler] На сайте разработчика можно скачать библиотеку и использовать у себя на сайте. В своей реализации я решил не качать библиотеку, а подключать прямо с , так сказать для простоты, меньше телодвижений.
Для реализации подсветки php-синтаксиса вставляем в /bitrix/php_interface/init.php следующее:
<?
if ($_SERVER['SCRIPT_NAME']=="/bitrix/admin/fileman_file_edit.php")
{
AddEventHandler("main", "OnEpilog", "InitPHPHighlight");
function InitPHPHighlight()
{
global $APPLICATION;
$string='<link rel="stylesheet" href="http://codemirror.net/lib/codemirror.css">
<script src="http://codemirror.net/lib/codemirror.js"></script>
<script src="http://codemirror.net/mode/xml/xml.js"></script>
<link rel="stylesheet" href="http://codemirror.net/mode/javascript/javascript.css">
<link rel="stylesheet" href="http://codemirror.net/mode/clike/clike.css">
<script src="http://codemirror.net/mode/javascript/javascript.js"></script>
<script src="http://codemirror.net/mode/php/php.js"></script>
<script src="http://codemirror.net/mode/clike/clike.js"></script>
<style>
.CodeMirror {
overflow: auto;
background:white;
height: 500px;
width: 1100px;
line-height: 1em;
font-family: inherit;
}
.CodeMirror pre{
font-size:14px;
line-height: 1.3em;
}
.activeline {background: #E6E6FA !important;}
</style>';
$init='<script type=\'text/javascript\'>
BX.ready(function(){
var nl=document.getElementsByTagName("textarea");
var editor = CodeMirror.fromTextArea(nl[0], {
lineNumbers: true,
matchBrackets: true,
mode: "application/x-httpd-php",
indentUnit: 8,
indentWithTabs: true,
enterMode: "keep",
tabMode: "classic",
onCursorActivity: function() {
editor.setLineClass(hlLine, null);
hlLine = editor.setLineClass(editor.getCursor().line, "activeline");
}
});
var hlLine = editor.setLineClass(0, "activeline");
});
</script>';
$APPLICATION->AddHeadString($string);
$APPLICATION->AddHeadString($init);
}
}
?>
|
После этого в административной части сайте при редактировании в режиме PHP будет подсвечиваться синтаксис, работать табуляция, отображаться номера строк и т.п. Подсвечиваться будет только PHP.
Код до:

Код после:

Обработчик можно переделать и подключать скрипты и стили локально, чтобы не зависеть от работоспособности сайта разработчика CodeMirror.