Index: admin_templates/js/forms.js
===================================================================
--- admin_templates/js/forms.js (revision 15648)
+++ admin_templates/js/forms.js (working copy)
@@ -77,6 +77,17 @@
if ($.isFunction(window.CodePress)) {
CodePress.run(/*FCKeditor_OnComplete*/);
}
+
+ if ( !$.isEmptyObject($CodeMirrorEditors) ) {
+ var $editor;
+
+ for (var $editor_id in $CodeMirrorEditors) {
+ var $textarea_element = document.getElementById($editor_id);
+ var $height = $textarea_element.style.height;
+ $editor = CodeMirror.fromTextArea($textarea_element, $CodeMirrorEditors[$editor_id]);
+ $editor.setSize(null, parseInt($height, 10));
+ }
+ }
}
function Form() {}
Index: admin_templates/js/script.js
===================================================================
--- admin_templates/js/script.js (revision 15648)
+++ admin_templates/js/script.js (working copy)
@@ -9,6 +9,7 @@
var $MenuNames = new Array();
var $CKEditors = {}; // input name VS ck options mapping
+ var $CodeMirrorEditors = {}; // input name VS code mirror options mapping
var $form_name = 'kernel_form';
Index: admin_templates/tools/sql_query.tpl
===================================================================
--- admin_templates/tools/sql_query.tpl (revision 15648)
+++ admin_templates/tools/sql_query.tpl (working copy)
@@ -37,13 +37,22 @@
">
-
+ |
- |
-
-
|
-
+ |
+
+
+
+
+
+
+ |
+
: sec.
Index: units/admin/admin_tag_processor.php
===================================================================
--- units/admin/admin_tag_processor.php (revision 15648)
+++ units/admin/admin_tag_processor.php (working copy)
@@ -1137,4 +1137,67 @@
{
return $this->Application->isCachingType(CACHING_TYPE_MEMORY);
}
+
+ /** Generates code for one Codemirror additional file inclusion
+ *
+ * @param string $name
+ * @param string $extension ('js', 'css', etc.)
+ * @return string
+ */
+ function _includeCodemirrorFile($name, $extension)
+ {
+ static $included = Array ();
+
+ $full_name = $name . '.' . $extension;
+
+ if ( isset($included[$full_name]) ) {
+
+ return '';
+ }
+
+ $included[$full_name] = 1;
+
+ switch ( $extension ) {
+ case 'js':
+ $ret = '';
+ break;
+ case 'css':
+ $ret = '';
+ break;
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Generates HTML for additional js and css files inclusion in accordance to selected editor language
+ *
+ * @param Array $params
+ * @return string
+ */
+ function IncludeCodemirrorFilesByLanguage($params)
+ {
+ $ret = '';
+
+ switch ( $params['language'] ) {
+ case 'application/x-httpd-php':
+ $ret .= $this->_includeCodemirrorFile('htmlmixed', 'js');
+ $ret .= $this->_includeCodemirrorFile('xml', 'js');
+ $ret .= $this->_includeCodemirrorFile('javascript', 'js');
+ $ret .= $this->_includeCodemirrorFile('css', 'js');
+ $ret .= $this->_includeCodemirrorFile('clike', 'js');
+ $ret .= $this->_includeCodemirrorFile('php', 'js');
+ break;
+ case 'text/html':
+ $ret .= $this->_includeCodemirrorFile('xml', 'js');
+ $ret .= $this->_includeCodemirrorFile('javascript', 'js');
+ $ret .= $this->_includeCodemirrorFile('css', 'js');
+ $ret .= $this->_includeCodemirrorFile('htmlmixed', 'js');
+ break;
+ default:
+ $ret .= $this->_includeCodemirrorFile($params['language'], 'js');
+ }
+
+ return $ret;
+ }
}
\ No newline at end of file
|