@@ -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_ite m)
if ( ! empty ( $field_para m))
{
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 );
}
?>
}