From 7d07d964c12612fc9768aeff279efa49fb2f4a79 Mon Sep 17 00:00:00 2001 From: Repellent Date: Wed, 26 Nov 2025 20:34:55 +0500 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B4=D1=83=D0=B1=D0=BB=D1=8C=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=9C=D1=83=D0=BB=D1=8C=D1=82=D0=B8=20=D1=81=D1=81?= =?UTF-8?q?=D1=8B=D0=BB=D0=BA=D0=B8=20,=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=8F=D0=B4=D0=BE=D0=BA=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=9C?= =?UTF-8?q?=D1=83=D0=BB=D1=8C=D1=82=D0=B8=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fields/link_multi/css/field.css | 18 -- fields/link_multi/field.php | 216 ------------------------ fields/link_multi/js/field.js | 74 -------- fields/link_multi/lang/ru.txt | 8 - fields/link_multi/tpl/field-doc-181.tpl | 33 ---- fields/link_multi/tpl/field-doc.tpl | 5 - fields/link_multi/tpl/field-req.tpl | 5 - fields/link_multi/tpl/field.tpl | 29 ---- fields/multi_links/field.php | 41 +++-- fields/multi_links/tpl/field-doc.tpl | 2 +- fields/multi_links/tpl/field.tpl | 4 +- fields/multi_list/tpl/field-doc.tpl | 2 +- 12 files changed, 29 insertions(+), 408 deletions(-) delete mode 100644 fields/link_multi/css/field.css delete mode 100644 fields/link_multi/field.php delete mode 100644 fields/link_multi/js/field.js delete mode 100644 fields/link_multi/lang/ru.txt delete mode 100644 fields/link_multi/tpl/field-doc-181.tpl delete mode 100644 fields/link_multi/tpl/field-doc.tpl delete mode 100644 fields/link_multi/tpl/field-req.tpl delete mode 100644 fields/link_multi/tpl/field.tpl diff --git a/fields/link_multi/css/field.css b/fields/link_multi/css/field.css deleted file mode 100644 index 0a676da..0000000 --- a/fields/link_multi/css/field.css +++ /dev/null @@ -1,18 +0,0 @@ -.multi_lists { - position: relative; -} - -.multi_lists > .ui-state-highlight { - display: inline-block; - margin: 3px; - width: 450px; - height: 26px; - background-color: rgba(255,255,255,0.5); !important; - border: solid 1px #eaeaea; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - position: relative; - text-align: center; - padding: 0 !important; -} \ No newline at end of file diff --git a/fields/link_multi/field.php b/fields/link_multi/field.php deleted file mode 100644 index 19a57d9..0000000 --- a/fields/link_multi/field.php +++ /dev/null @@ -1,216 +0,0 @@ -config_load($lang_file, 'lang'); - $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars()); - $AVE_Template->config_load($lang_file, 'admin'); - - $res = array(); - - switch ($action) - { - case 'edit': - - $items = array(); - - $items = unserialize($field_value); - - if ($items != false) - { - - foreach($items as $k => $v){ - $list_item = explode('|', $v); - - $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; - $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; - } - - $items = $list; - } - else - { - $items = explode(',', $default); - - foreach($items as $k => $v){ - $list_item = explode('|', $v); - - $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; - $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; - } - $items = $list; - } - - $AVE_Template->assign('doc_id', $_REQUEST['Id']); - $AVE_Template->assign('field_dir', $fld_name); - $AVE_Template->assign('items', $items); - $AVE_Template->assign('field_id', $field_id); - - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl); - - return $AVE_Template->fetch($tpl_file); - break; - - case 'doc': - $items = unserialize($field_value); - - if ($items != false) - { - foreach($items as $list_item) - { - $list_item = clean_php($list_item); - $field_param = explode('|', $list_item); - - if ($list_item) - { - if ($tpl_empty) - { - $list_item = $field_param; - } - else - { - $list_item = preg_replace_callback( - '/\[tag:parametr:(\d+)\]/i', - function($data) use($field_param) - { - return $field_param[(int)$data[1]]; - }, - $tpl - ); - } - } - $res[] = $list_item; - } - } - - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc', $_tpl); - - if ($tpl_empty && $tpl_file) - { - $AVE_Template->assign('field_id', $field_id); - $AVE_Template->assign('field_value', $res); - $AVE_Template->assign('field_count', count($res)); - $AVE_Template->assign('default', $default); - - return $AVE_Template->fetch($tpl_file); - } - - return (! empty($res)) ? implode(PHP_EOL, $res) : $tpl; - break; - - case 'req': - $items = unserialize($field_value); - - if ($items != false) - { - foreach($items as $list_item) - { - $list_item = clean_php($list_item); - $field_param = explode('|', $list_item); - - if ($list_item) - { - if ($tpl_empty) - { - $list_item = $field_param; - } - else - { - $list_item = preg_replace_callback( - '/\[tag:parametr:(\d+)\]/i', - function($data) use($field_param) - { - return $field_param[(int)$data[1]]; - }, - $tpl - ); - } - } - $res[] = $list_item; - } - } - - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'req', $_tpl); - - if ($tpl_empty && $tpl_file) - { - $AVE_Template->assign('field_id', $field_id); - $AVE_Template->assign('field_value', $res); - $AVE_Template->assign('field_count', count($res)); - $AVE_Template->assign('default', $default); - - return $AVE_Template->fetch($tpl_file); - } - - return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl; - break; - - case 'save': - foreach ($field_value as $v) - { - if (! empty($v['param'])) - { - $field_value_new[] = $v['param'] . ($v['value'] ? '|' . $v['value'] : ''); - } - } - - if (isset($field_value_new)) - { - return @serialize($field_value_new); - } - else - { - return $field_value_new = ''; - } - break; - - case 'api': - if (empty($field_value)) - return $field_value; - - $items = unserialize($field_value); - - if ($items != false) - { - - foreach($items as $k => $v){ - $list_item = explode('|', $v); - - $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; - $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; - } - - $items = $list; - } - - return $items; - break; - - case 'name': - return $AVE_Template->get_config_vars('name'); - break; - - } - return ($res ? $res : $field_value); - } -?> \ No newline at end of file diff --git a/fields/link_multi/js/field.js b/fields/link_multi/js/field.js deleted file mode 100644 index 050438c..0000000 --- a/fields/link_multi/js/field.js +++ /dev/null @@ -1,74 +0,0 @@ -var MultiLinks = { - - init: false, - - init: function() { - if (this.initialized) return; - this.initialized = true; - - this.lists(); - }, - - lists: function() { - this.lists_sortable(); - this.lists_del_item(); - this.lists_add(); - }, - - lists_update: function() { - this.lists_maxid(); - this.lists_del_item(); - AveAdmin.tooltip(); - }, - - lists_maxid: function(id) { - var maxid = 1; - $('#multi_links_' + id).children('.multi_link').each(function() { - maxid = Math.max(maxid, parseInt($(this).attr("data-id")) + 1); - }); - return maxid; - }, - - lists_del_item: function() { - $('.multi_link .DelButton').on('click', function(event) { - event.preventDefault(); - var id = $(this).attr('data-id'); - jConfirm( - links_del_conf, - links_del_head, - function(b) { - if (b) { - $('#link_' + id).remove(); - } - } - ); - }); - }, - - lists_add: function() { - $('.multi_links .AddButton').on('click', function(event) { - event.preventDefault(); - c_id = $(this).parent().parent('.multi_links').attr("data-id"); - iid = MultiLinks.lists_maxid(c_id); - $('#multi_links_' + c_id + ':last').append( - '' - ); - - MultiLinks.lists_update(); - }); - }, - - lists_sortable: function() { - $('.multi_links').sortable({ - handle: ".handle", - placeholder: "ui-state-highlight grey_bg" - }); - } -} - -$(document).ready(function() { - MultiLinks.init(); -}); \ No newline at end of file diff --git a/fields/link_multi/lang/ru.txt b/fields/link_multi/lang/ru.txt deleted file mode 100644 index 261b752..0000000 --- a/fields/link_multi/lang/ru.txt +++ /dev/null @@ -1,8 +0,0 @@ -[admin] -name = "Мульти ссылки" -delete = "Удалить элемент" -param = "Наименование" -value = "Ссылка" -del_conf = "Вы уверены, что хотите удалить данный элемент?" -del_head = "Удаление элемента..." -add = "Добавить" \ No newline at end of file diff --git a/fields/link_multi/tpl/field-doc-181.tpl b/fields/link_multi/tpl/field-doc-181.tpl deleted file mode 100644 index b72bc47..0000000 --- a/fields/link_multi/tpl/field-doc-181.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{if ! empty($field_value)} - - - - - -{foreach from=$field_value item=list} - - - -{/foreach} - -
- Документация -
-  {$list[0]} -
-{else} - - - - - - - -
- Документация -
-
- Нет файлов для скачивания -
-
-{/if} \ No newline at end of file diff --git a/fields/link_multi/tpl/field-doc.tpl b/fields/link_multi/tpl/field-doc.tpl deleted file mode 100644 index ef6968b..0000000 --- a/fields/link_multi/tpl/field-doc.tpl +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/fields/link_multi/tpl/field-req.tpl b/fields/link_multi/tpl/field-req.tpl deleted file mode 100644 index ef6968b..0000000 --- a/fields/link_multi/tpl/field-req.tpl +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/fields/link_multi/tpl/field.tpl b/fields/link_multi/tpl/field.tpl deleted file mode 100644 index 5f69d21..0000000 --- a/fields/link_multi/tpl/field.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{if $multi_list != 'load'} - {assign var=multi_list value='' scope="global"} - {if $smarty.request.outside} - - {else} - - {/if} - - - {assign var=multi_list value="load" scope="global"} -{/if} - - \ No newline at end of file diff --git a/fields/multi_links/field.php b/fields/multi_links/field.php index 1a74662..a5ba8bf 100644 --- a/fields/multi_links/field.php +++ b/fields/multi_links/field.php @@ -12,12 +12,14 @@ */ // Мульти лист -function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){ + +function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null, $_tpl=null){ global $AVE_Template; + global $AVE_DB; - $fld_dir = dirname(__FILE__) . '/'; - $tpl_dir = $fld_dir . 'tpl/'; + $fld_dir = dirname(__FILE__) . '/'; + $tpl_dir = $fld_dir . 'tpl/'; $fld_name = basename($fld_dir); $lang_file = $fld_dir . 'lang/' . (defined('ACP') ? $_SESSION['admin_language'] : $_SESSION['user_language']) . '.txt'; @@ -34,7 +36,7 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl $items = array(); - $items = unserialize($field_value); + $items = (trim($field_value) !== '') ? @unserialize($field_value) : []; if ($items != false) { @@ -42,8 +44,8 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl foreach($items as $k => $v){ $list_item = explode('|', $v); - $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; - $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; + $list[$k]['param'] = (isset($list_item[0])) ? $list_item[0] : ''; + $list[$k]['value'] = (isset($list_item[1])) ? $list_item[1] : ''; } $items = $list; @@ -55,8 +57,8 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl foreach($items as $k => $v){ $list_item = explode('|', $v); - $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; - $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; + $list[$k]['param'] = (isset($list_item[0])) ? $list_item[0] : ''; + $list[$k]['value'] = (isset($list_item[1])) ? $list_item[1] : ''; } $items = $list; } @@ -66,13 +68,14 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl $AVE_Template->assign('items', $items); $AVE_Template->assign('field_id', $field_id); - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin'); + $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl); return $AVE_Template->fetch($tpl_file); break; case 'doc': - $items = unserialize($field_value); + + $items = (trim($field_value) !== '') ? @unserialize($field_value) : []; if ($items != false) { @@ -103,7 +106,7 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl } } - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc'); + $tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc', $_tpl); if ($tpl_empty && $tpl_file) { @@ -119,7 +122,8 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl break; case 'req': - $items = unserialize($field_value); + + $items = (trim($field_value) !== '') ? @unserialize($field_value) : []; if ($items != false) { @@ -150,7 +154,7 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl } } - $tpl_file = get_field_tpl($tpl_dir, $field_id, 'req'); + $tpl_file = get_field_tpl($tpl_dir, $field_id, 'req', $_tpl); if ($tpl_empty && $tpl_file) { @@ -170,13 +174,18 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl { if (! empty($v['param'])) { - $field_value_new[] = $v['param'] . ($v['value'] ? '|' . $v['value'] : ''); + $param_safe = stripslashes(trim($v['param'])); + $value_safe = stripslashes(trim($v['value'])); + + $field_value_new[] = $param_safe . ($value_safe ? '|' . $value_safe : ''); } } if (isset($field_value_new)) { - return @serialize($field_value_new); + $serialized_value = @serialize($field_value_new); + + return addslashes($serialized_value); } else { @@ -188,7 +197,7 @@ function get_field_multi_links($field_value, $action, $field_id=0, $tpl='', $tpl if (empty($field_value)) return $field_value; - $items = unserialize($field_value); + $items = (trim($field_value) !== '') ? @unserialize($field_value) : []; if ($items != false) { diff --git a/fields/multi_links/tpl/field-doc.tpl b/fields/multi_links/tpl/field-doc.tpl index ef6968b..9e22308 100644 --- a/fields/multi_links/tpl/field-doc.tpl +++ b/fields/multi_links/tpl/field-doc.tpl @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/fields/multi_links/tpl/field.tpl b/fields/multi_links/tpl/field.tpl index dde535a..3d10930 100644 --- a/fields/multi_links/tpl/field.tpl +++ b/fields/multi_links/tpl/field.tpl @@ -1,6 +1,6 @@ -{if $multi_list != 'load'} +{if $multi_link != 'load'} {assign var=multi_link value='' scope="global"} - {if $smarty.request.outside} + {if isset($smarty.request.outside)} {else} diff --git a/fields/multi_list/tpl/field-doc.tpl b/fields/multi_list/tpl/field-doc.tpl index ef6968b..9e22308 100644 --- a/fields/multi_list/tpl/field-doc.tpl +++ b/fields/multi_list/tpl/field-doc.tpl @@ -1,5 +1,5 @@ \ No newline at end of file