mirror of
https://github.com/e107inc/e107.git
synced 2025-08-01 20:30:39 +02:00
Fixes #4959 - Banner (e_menu) saving issue.
This commit is contained in:
@@ -264,8 +264,9 @@ class e_menu
|
||||
|
||||
|
||||
/**
|
||||
* Saving of parms from e_menu.php configuration.
|
||||
* @param int $id menu_id
|
||||
* @param array $parms
|
||||
* @param array $parms posted values.
|
||||
* @return mixed
|
||||
*/
|
||||
public function updateParms($id, $parms)
|
||||
@@ -275,35 +276,62 @@ class e_menu
|
||||
$model->setFieldIdName("menu_id");
|
||||
$model->setDataFields(array('menu_parms'=>'json'));
|
||||
|
||||
|
||||
$model->load($id, true);
|
||||
|
||||
$d = $model->get('menu_parms');
|
||||
$menu_path = $model->get('menu_path');
|
||||
$menu_path = rtrim($menu_path, '/');
|
||||
|
||||
$model->setPostedData('menu_parms', e107::unserialize($d));
|
||||
$menu_name = $model->get('menu_name');
|
||||
$menu_name = substr($menu_name,0,-5);
|
||||
|
||||
foreach($parms as $key=>$value)
|
||||
if(!$obj = e107::getAddon($menu_path,'e_menu'))
|
||||
{
|
||||
if(!is_array($value))
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!$fields = e107::callMethod($obj,'config',$menu_name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($d = $model->get('menu_parms'))
|
||||
{
|
||||
$prev = e107::unserialize($d);
|
||||
}
|
||||
else
|
||||
{
|
||||
$prev = [];
|
||||
}
|
||||
|
||||
foreach($fields as $fld => $var)
|
||||
{
|
||||
if(isset($parms[$fld]))
|
||||
{
|
||||
$model->setPostedData('menu_parms/'.$key, $value);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($value as $lang => $val)
|
||||
if(!empty($var['multilan']))
|
||||
{
|
||||
$model->setPostedData('menu_parms/'.$key.'/'.$lang, $val);
|
||||
if(!empty($prev[$fld])) // load previous language values.
|
||||
{
|
||||
$model->setPostedData('menu_parms/'.$fld, $prev[$fld]);
|
||||
}
|
||||
|
||||
foreach($parms[$fld] as $lang => $val) // add posted language values.
|
||||
{
|
||||
$model->setPostedData('menu_parms/'.$fld.'/'.$lang, $val);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$model->setPostedData('menu_parms/'.$fld, $parms[$fld]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// file_put_contents(e_LOG."menuParmsAjax.log", print_r($parms,true));
|
||||
|
||||
|
||||
return $model->save();
|
||||
|
||||
// return $model;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1071,28 +1071,11 @@ class e_menuManager
|
||||
$parms = $sql->escape(strip_tags($parms));
|
||||
$check = $sql->update("menus", "menu_parms=\"".$parms."\" WHERE menu_id=".$id."");
|
||||
}
|
||||
else // e_menu.php
|
||||
else // Save e_menu.php parameters.
|
||||
{
|
||||
unset($_POST['menu_id'], $_POST['mode'], $_POST['menuActivate'], $_POST['menuSetCustomPages'], $_POST['e-token']);
|
||||
|
||||
/* $tmp = $sql->retrieve("menus", "menu_parms", " menu_id=".$id);
|
||||
$parms = !empty($tmp) ? e107::unserialize($tmp) : array();
|
||||
|
||||
foreach($_POST as $k=>$v)
|
||||
{
|
||||
$parms[$k] = $tp->filter($v);
|
||||
}
|
||||
|
||||
$parms = e107::serialize($parms, 'json');*/
|
||||
|
||||
// if(e_DEBUG == true)
|
||||
{
|
||||
// return array('msg'=>print_r($parms,true),'error'=>true);
|
||||
}
|
||||
|
||||
$parms = $_POST;
|
||||
|
||||
$check = e107::getMenu()->updateParms($id,$parms); //
|
||||
$check = e107::getMenu()->updateParms($id,$parms);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user