fix for PHP-8,4 --- поле "Мультизагрузка файлов"
This commit is contained in:
+63
-26
@@ -4,7 +4,7 @@
|
||||
* AVE.cms
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @version 3.x
|
||||
* @version 4.x
|
||||
* @filesource
|
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
|
||||
*
|
||||
@@ -34,18 +34,28 @@
|
||||
|
||||
$items = [];
|
||||
|
||||
$items = unserialize($field_value);
|
||||
if (trim($field_value) !== '') {
|
||||
$items = @unserialize($field_value);
|
||||
}
|
||||
|
||||
if ($items != false)
|
||||
{
|
||||
|
||||
foreach($items as $k => $v)
|
||||
{
|
||||
$list_item = explode('|', $v);
|
||||
|
||||
$list[$k]['name'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
|
||||
// Если данные в БД сохраняются как строки: 'Название|Описание|URL'
|
||||
if (is_string($v)) {
|
||||
$list_item = explode('|', $v);
|
||||
|
||||
$list[$k]['name'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
|
||||
} else {
|
||||
// Если данные приходят в виде ассоциативного массива (новый формат)
|
||||
$list[$k]['name'] = (isset($v['name'])) ? htmlspecialchars($v['name'], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($v['descr'])) ? htmlspecialchars($v['descr'], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($v['url'])) ? htmlspecialchars($v['url'], ENT_QUOTES) : '';
|
||||
}
|
||||
}
|
||||
|
||||
$items = $list;
|
||||
@@ -77,16 +87,24 @@
|
||||
break;
|
||||
|
||||
case 'doc':
|
||||
$items = unserialize($field_value);
|
||||
|
||||
$items = (trim($field_value) !== '') ? @unserialize($field_value) : [];
|
||||
|
||||
if ($items != false)
|
||||
{
|
||||
foreach($items as $list_item)
|
||||
{
|
||||
$list_item = clean_php($list_item);
|
||||
$field_param = explode('|', $list_item);
|
||||
|
||||
// Если данные в БД - ассоциативный массив, работаем с ним напрямую
|
||||
if (is_array($list_item)) {
|
||||
$field_param = [$list_item['name'], $list_item['descr'], $list_item['url']];
|
||||
} else {
|
||||
// Иначе (старый формат), разбиваем строку
|
||||
$field_param = explode('|', $list_item);
|
||||
}
|
||||
|
||||
if ($list_item)
|
||||
if (!empty($field_param))
|
||||
{
|
||||
if ($tpl_empty)
|
||||
{
|
||||
@@ -125,16 +143,24 @@
|
||||
break;
|
||||
|
||||
case 'req':
|
||||
$items = unserialize($field_value);
|
||||
|
||||
$items = (trim($field_value) !== '') ? @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 (is_array($list_item)) {
|
||||
$field_param = [$list_item['name'], $list_item['descr'], $list_item['url']];
|
||||
} else {
|
||||
// Иначе (старый формат), разбиваем строку
|
||||
$field_param = explode('|', $list_item);
|
||||
}
|
||||
|
||||
if (!empty($field_param))
|
||||
{
|
||||
if ($tpl_empty)
|
||||
{
|
||||
@@ -172,25 +198,29 @@
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
|
||||
$field_value_new = [];
|
||||
$field_value = is_array($field_value) ? $field_value : [];
|
||||
|
||||
foreach ($field_value AS $v)
|
||||
{
|
||||
if (! empty($v['url']))
|
||||
{
|
||||
$field_value_new[] = [
|
||||
'name' => (isset($v['name']) ? $v['name'] : ''),
|
||||
'descr' => (isset($v['descr']) ? $v['descr'] : ''),
|
||||
'url' => $v['url']
|
||||
'name' => (isset($v['name']) ? stripslashes(htmlspecialchars($v['name'], ENT_QUOTES)) : ''),
|
||||
'descr' => (isset($v['descr']) ? stripslashes(htmlspecialchars($v['descr'], ENT_QUOTES)) : ''),
|
||||
'url' => $v['url']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($field_value_new))
|
||||
if (!empty($field_value_new))
|
||||
{
|
||||
return @serialize($field_value_new);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $field_value_new = '';
|
||||
return '';
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -198,18 +228,26 @@
|
||||
if (empty($field_value))
|
||||
return $field_value;
|
||||
|
||||
$items = unserialize($field_value);
|
||||
$items = (trim($field_value) !== '') ? @unserialize($field_value) : [];
|
||||
|
||||
if ($items != false)
|
||||
{
|
||||
|
||||
$list = [];
|
||||
foreach($items as $k => $v)
|
||||
{
|
||||
$list_item = explode('|', $v);
|
||||
// Если данные в БД сохраняются как строки: 'Название|Описание|URL'
|
||||
if (is_string($v)) {
|
||||
$list_item = explode('|', $v);
|
||||
|
||||
$list[$k]['name'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
|
||||
$list[$k]['name'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
|
||||
} else {
|
||||
// Если данные приходят в виде ассоциативного массива (новый формат)
|
||||
$list[$k]['name'] = (isset($v['name'])) ? htmlspecialchars($v['name'], ENT_QUOTES) : '';
|
||||
$list[$k]['descr'] = (isset($v['descr'])) ? htmlspecialchars($v['descr'], ENT_QUOTES) : '';
|
||||
$list[$k]['url'] = (isset($v['url'])) ? htmlspecialchars($v['url'], ENT_QUOTES) : '';
|
||||
}
|
||||
}
|
||||
|
||||
$items = $list;
|
||||
@@ -225,5 +263,4 @@
|
||||
}
|
||||
|
||||
return ($res ? $res : $field_value);
|
||||
}
|
||||
?>
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
[admin]
|
||||
name = "Файлы документов"
|
||||
name = "Мультизагрузка файлов"
|
||||
delete = "Удалить элемент"
|
||||
param_name = "Наименование"
|
||||
param_desc = "Описание"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<ul>
|
||||
{foreach from=$field_value item=list}
|
||||
<li>{$list[0]}: {$list[1]}</li>
|
||||
<li>
|
||||
<a href="{$list[2]}" alt="{$list[0]}" title="{$list[1]}" target="_blank">{$list[0]}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
@@ -1,5 +1,7 @@
|
||||
<ul>
|
||||
{foreach from=$field_value item=list}
|
||||
<li>{$list[0]}: {$list[1]}</li>
|
||||
<li>
|
||||
<a href="{$list[2]}" alt="{$list[0]}" title="{$list[1]}" target="_blank">{$list[0]}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
Reference in New Issue
Block a user