diff --git a/admin/lang/ru/settings.txt b/admin/lang/ru/settings.txt
index 277738e..e4aa8b8 100644
--- a/admin/lang/ru/settings.txt
+++ b/admin/lang/ru/settings.txt
@@ -210,4 +210,5 @@ SETTINGS_JS_SERVER_ERR = "Ошибка сервера при сохран
SETTINGS_JS_WIN_CLOSE = "Закрыть окно"
# v3.31
-_const_utc = "Часовой пояс сайта"
\ No newline at end of file
+_const_utc = "Часовой пояс сайта"
+_const_editor = "HTML-редактор CKEditor"
\ No newline at end of file
diff --git a/fields/multi_line_large/field.php b/fields/multi_line_large/field.php
index bc09670..cb66979 100644
--- a/fields/multi_line_large/field.php
+++ b/fields/multi_line_large/field.php
@@ -1,76 +1,71 @@
config_load($lang_file, 'lang');
+ $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
+ $AVE_Template->config_load($lang_file, 'admin');
- $lang_file = $fld_dir . 'lang/' . (defined('ACP')
- ? $_SESSION['admin_language']
- : $_SESSION['user_language']) . '.txt';
+ $res = null;
- $AVE_Template->config_load($lang_file, 'lang');
- $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
- $AVE_Template->config_load($lang_file, 'admin');
+ switch ($action)
+ {
+ case 'edit':
+ $is_multi = (isset($_REQUEST['multiedit']) && $_REQUEST['multiedit'] === true);
+ $field_name = $is_multi ? 'data['.$_REQUEST['Id'].'][feld]['.$field_id.']' : 'feld['.$field_id.']';
+ $field_height = $is_multi ? 250 : 400;
+ $doc_id = isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : '0';
- $res = null;
+ $AVE_Template->assign([
+ 'field_id' => $field_id,
+ 'field_value' => $field_value,
+ 'field_name' => $field_name,
+ 'field_height' => $field_height,
+ 'f_id' => $field_id . '_' . $doc_id
+ ]);
- switch ($action)
- {
- case 'edit':
- if (isset($_REQUEST['multiedit']) && ($_REQUEST['multiedit'] === true))
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Verysmall';
- $oCKeditor->config['height'] = 250;
- $config = array();
- $field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
- }
- else
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Big';
- $oCKeditor->config['height'] = 400;
- $config = array();
- $field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
- }
+ if (defined('USE_EDITOR') && USE_EDITOR === true)
+ {
+ $oCKeditor = new CKeditor();
+ $oCKeditor->returnOutput = true;
+ $oCKeditor->config['toolbar'] = $is_multi ? 'Verysmall' : 'Big';
+ $oCKeditor->config['height'] = $field_height;
+ $res = $oCKeditor->editor($field_name, $field_value);
+ }
+ else
+ {
+ $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl);
+ $res = $AVE_Template->fetch($tpl_file);
+ }
+ break;
- $res = $field;
- break;
+ case 'doc':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ $res = document_pagination($res);
+ break;
- case 'doc':
- $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
- $res = document_pagination($res);
- break;
+ case 'req':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'req':
- $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
- break;
+ case 'api':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'api':
- $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
- break;
+ case 'name' :
+ return $AVE_Template->get_config_vars('name');
+ }
- case 'name' :
- return $AVE_Template->get_config_vars('name');
- break;
- }
-
- return ($res ? $res : $field_value);
- }
-?>
\ No newline at end of file
+ return ($res ? $res : $field_value);
+}
\ No newline at end of file
diff --git a/fields/multi_line_large/tpl/field-doc.tpl b/fields/multi_line_large/tpl/field-doc.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_large/tpl/field-doc.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_large/tpl/field-req.tpl b/fields/multi_line_large/tpl/field-req.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_large/tpl/field-req.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_large/tpl/field.tpl b/fields/multi_line_large/tpl/field.tpl
new file mode 100644
index 0000000..3fc6a0c
--- /dev/null
+++ b/fields/multi_line_large/tpl/field.tpl
@@ -0,0 +1,17 @@
+{if $smarty.const.USE_EDITOR}
+
+{else}
+ {if $codemirror != 'load'}
+ {assign var="codemirror" value="" scope="global"}
+ {include file="$codemirror_connect"}
+ {assign var="codemirror" value="load" scope="global"}
+ {/if}
+
+
+
+ {include file="$codemirror_editor"
+ conn_id=$f_id
+ textarea_id="field_code_$f_id"
+ ctrls='AveDocs.documentSaveFunction();'
+ height=$field_height}
+{/if}
\ No newline at end of file
diff --git a/fields/multi_line_medium/field.php b/fields/multi_line_medium/field.php
index 5be400d..a1bda7d 100644
--- a/fields/multi_line_medium/field.php
+++ b/fields/multi_line_medium/field.php
@@ -1,76 +1,69 @@
config_load($lang_file, 'lang');
+ $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
+ $AVE_Template->config_load($lang_file, 'admin');
- $fld_dir = dirname(__FILE__) . '/';
+ $res = null;
- $lang_file = $fld_dir . 'lang/' . (defined('ACP')
- ? $_SESSION['admin_language']
- : $_SESSION['user_language']) . '.txt';
+ switch ($action)
+ {
+ case 'edit':
+ $is_multi = (isset($_REQUEST['multiedit']) && $_REQUEST['multiedit'] === true);
+ $field_name = $is_multi ? 'data['.$_REQUEST['Id'].'][feld]['.$field_id.']' : 'feld['.$field_id.']';
+ $field_height = $is_multi ? 250 : 300;
+ $doc_id = isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : '0';
- $AVE_Template->config_load($lang_file, 'lang');
- $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
- $AVE_Template->config_load($lang_file, 'admin');
+ $AVE_Template->assign([
+ 'field_id' => $field_id,
+ 'field_value' => $field_value,
+ 'field_name' => $field_name,
+ 'field_height' => $field_height,
+ 'f_id' => $field_id . '_' . $doc_id
+ ]);
- $res = null;
+ if (defined('USE_EDITOR') && USE_EDITOR === true)
+ {
+ $oCKeditor = new CKeditor();
+ $oCKeditor->returnOutput = true;
+ $oCKeditor->config['toolbar'] = $is_multi ? 'Verysmall' : 'Small';
+ $oCKeditor->config['height'] = $field_height;
+ $res = $oCKeditor->editor($field_name, $field_value);
+ }
+ else
+ {
+ $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl);
+ $res = $AVE_Template->fetch($tpl_file);
+ }
+ break;
- switch ($action)
- {
- case 'edit':
- if (isset($_REQUEST['multiedit']) && ($_REQUEST['multiedit'] === true))
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Verysmall';
- $oCKeditor->config['height'] = 250;
- $config = array();
- $field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
- }
- else
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Small';
- $oCKeditor->config['height'] = 300;
- $config = array();
- $field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
- }
+ case 'doc':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ $res = document_pagination($res);
+ break;
- $res = $field;
- break;
+ case 'req':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'doc':
- $res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
- $res = document_pagination($res);
- break;
+ case 'api':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'req':
- $res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
- break;
+ case 'name' :
+ return $AVE_Template->get_config_vars('name');
+ }
- case 'api':
- $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
- break;
-
- case 'name' :
- return $AVE_Template->get_config_vars('name');
- break;
- }
-
- return ($res ? $res : $field_value);
- }
-?>
\ No newline at end of file
+ return ($res ? $res : $field_value);
+}
\ No newline at end of file
diff --git a/fields/multi_line_medium/tpl/field-doc.tpl b/fields/multi_line_medium/tpl/field-doc.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_medium/tpl/field-doc.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_medium/tpl/field-req.tpl b/fields/multi_line_medium/tpl/field-req.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_medium/tpl/field-req.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_medium/tpl/field.tpl b/fields/multi_line_medium/tpl/field.tpl
new file mode 100644
index 0000000..3fc6a0c
--- /dev/null
+++ b/fields/multi_line_medium/tpl/field.tpl
@@ -0,0 +1,17 @@
+{if $smarty.const.USE_EDITOR}
+
+{else}
+ {if $codemirror != 'load'}
+ {assign var="codemirror" value="" scope="global"}
+ {include file="$codemirror_connect"}
+ {assign var="codemirror" value="load" scope="global"}
+ {/if}
+
+
+
+ {include file="$codemirror_editor"
+ conn_id=$f_id
+ textarea_id="field_code_$f_id"
+ ctrls='AveDocs.documentSaveFunction();'
+ height=$field_height}
+{/if}
\ No newline at end of file
diff --git a/fields/multi_line_small/field.php b/fields/multi_line_small/field.php
index be509ea..1a786e0 100644
--- a/fields/multi_line_small/field.php
+++ b/fields/multi_line_small/field.php
@@ -1,76 +1,69 @@
config_load($lang_file, 'lang');
+ $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
+ $AVE_Template->config_load($lang_file, 'admin');
- $fld_dir = dirname(__FILE__) . '/';
+ $res = null;
- $lang_file = $fld_dir . 'lang/' . (defined('ACP')
- ? $_SESSION['admin_language']
- : $_SESSION['user_language']) . '.txt';
+ switch ($action)
+ {
+ case 'edit':
+ $is_multi = (isset($_REQUEST['multiedit']) && $_REQUEST['multiedit'] === true);
+ $field_name = $is_multi ? 'data['.$_REQUEST['Id'].'][feld]['.$field_id.']' : 'feld['.$field_id.']';
+ $field_height = $is_multi ? 250 : 200;
+ $doc_id = isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : '0';
- $AVE_Template->config_load($lang_file, 'lang');
- $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
- $AVE_Template->config_load($lang_file, 'admin');
+ $AVE_Template->assign([
+ 'field_id' => $field_id,
+ 'field_value' => $field_value,
+ 'field_name' => $field_name,
+ 'field_height' => $field_height,
+ 'f_id' => $field_id . '_' . $doc_id
+ ]);
- $res = null;
+ if (defined('USE_EDITOR') && USE_EDITOR === true)
+ {
+ $oCKeditor = new CKeditor();
+ $oCKeditor->returnOutput = true;
+ $oCKeditor->config['toolbar'] = 'Verysmall';
+ $oCKeditor->config['height'] = $field_height;
+ $res = $oCKeditor->editor($field_name, $field_value);
+ }
+ else
+ {
+ $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl);
+ $res = $AVE_Template->fetch($tpl_file);
+ }
+ break;
- switch ($action)
- {
- case 'edit':
- if (isset($_REQUEST['multiedit']) && ($_REQUEST['multiedit'] === true))
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Verysmall';
- $oCKeditor->config['height'] = 250;
- $config = array();
- $field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
- }
- else
- {
- $oCKeditor = new CKeditor();
- $oCKeditor->returnOutput = true;
- $oCKeditor->config['toolbar'] = 'Verysmall';
- $oCKeditor->config['height'] = 200;
- $config = array();
- $field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
- }
+ case 'doc':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ $res = document_pagination($res);
+ break;
- $res = $field;
- break;
+ case 'req':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'doc':
- $res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
- $res = document_pagination($res);
- break;
+ case 'api':
+ $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
+ break;
- case 'req':
- $res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
- break;
+ case 'name' :
+ return $AVE_Template->get_config_vars('name');
+ }
- case 'api':
- $res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
- break;
-
- case 'name' :
- return $AVE_Template->get_config_vars('name');
- break;
- }
-
- return ($res ? $res : $field_value);
- }
-?>
\ No newline at end of file
+ return ($res ? $res : $field_value);
+}
\ No newline at end of file
diff --git a/fields/multi_line_small/tpl/field-doc.tpl b/fields/multi_line_small/tpl/field-doc.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_small/tpl/field-doc.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_small/tpl/field-req.tpl b/fields/multi_line_small/tpl/field-req.tpl
new file mode 100644
index 0000000..20c861d
--- /dev/null
+++ b/fields/multi_line_small/tpl/field-req.tpl
@@ -0,0 +1 @@
+{$field_value}
\ No newline at end of file
diff --git a/fields/multi_line_small/tpl/field.tpl b/fields/multi_line_small/tpl/field.tpl
new file mode 100644
index 0000000..3fc6a0c
--- /dev/null
+++ b/fields/multi_line_small/tpl/field.tpl
@@ -0,0 +1,17 @@
+{if $smarty.const.USE_EDITOR}
+
+{else}
+ {if $codemirror != 'load'}
+ {assign var="codemirror" value="" scope="global"}
+ {include file="$codemirror_connect"}
+ {assign var="codemirror" value="load" scope="global"}
+ {/if}
+
+
+
+ {include file="$codemirror_editor"
+ conn_id=$f_id
+ textarea_id="field_code_$f_id"
+ ctrls='AveDocs.documentSaveFunction();'
+ height=$field_height}
+{/if}
\ No newline at end of file
diff --git a/inc/config.php b/inc/config.php
index c23bfc9..47c9dc6 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -125,6 +125,16 @@
/* ======================================================================================================== */
+ //-- Редактор CKeditor
+ $GLOBALS['CMS_CONFIG']['_CONST_EDITOR']['USE_EDITOR'] = [
+ 'DESCR' => 'Использовать HTML-редактор CKEditor',
+ 'DEFAULT' => true,
+ 'TYPE' => 'bool',
+ 'VARIANT' => ''
+];
+
+ /* ======================================================================================================== */
+
//-- Использовать IP для автологина на сайте
$GLOBALS['CMS_CONFIG']['_CONST_AUTH']['USER_IP'] = [
'DESCR' => 'Следить за IP при автологине на сайте',