1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-03 21:27:25 +02:00

Issue #2446 e_menu multilan value fix.

This commit is contained in:
Cameron
2017-03-02 09:39:50 -08:00
parent 50a16b76c9
commit aa36466220
6 changed files with 70 additions and 18 deletions

View File

@@ -1760,28 +1760,27 @@ $mes = e107::getMessage();
if(e_AJAX_REQUEST) if(e_AJAX_REQUEST)
{ {
if(vartrue($_GET['enc'])) if(!empty($_GET['enc']))
{ {
$string = base64_decode($_GET['enc']); $string = base64_decode($_GET['enc']);
parse_str($string,$_GET); parse_str($string,$_GET);
// print_a($_GET);
} }
// print_a($_POST); // print_a($_POST);
if(vartrue($_GET['vis'])) if(!empty($_GET['vis']))
{ {
$text = $men->menuVisibilityOptions(); $text = $men->menuVisibilityOptions();
} }
// print_a($_GET); // print_a($_GET);
if(vartrue($_GET['parmsId'])) if(!empty($_GET['parmsId']))
{ {
$text = $men->menuInstanceParameters(); $text = $men->menuInstanceParameters();
} }
if(vartrue($_POST['mode'])) if(!empty($_POST['mode']))
{ {
// print_r($_POST); // print_r($_POST);
// $men->setMenuId($this->menuId); // $men->setMenuId($this->menuId);

View File

@@ -5549,7 +5549,9 @@ class e_admin_ui extends e_admin_controller_ui
} }
else else
{ {
$this->getConfig()->setData($key.'/'.e_LANGUAGE, str_replace("'", ''', $val)); $lang = key($val);
$value = $val[$lang];
$this->getConfig()->setData($key.'/'.$lang, str_replace("'", ''', $value));
} }
} }

View File

@@ -4990,6 +4990,7 @@ class e_form
{ {
$value = is_array($value) ? varset($value[e_LANGUAGE],'') : $value; $value = is_array($value) ? varset($value[e_LANGUAGE],'') : $value;
$parms['post'] = "<small class='e-tip admin-multilanguage-field input-group-addon' style='cursor:help; padding-left:10px' title='".LAN_EFORM_012." (".e_LANGUAGE.")'>".$tp->toGlyph('fa-language')."</small>"; $parms['post'] = "<small class='e-tip admin-multilanguage-field input-group-addon' style='cursor:help; padding-left:10px' title='".LAN_EFORM_012." (".e_LANGUAGE.")'>".$tp->toGlyph('fa-language')."</small>";
$key = $key.'['.e_LANGUAGE.']';
} }
if(empty($value) && !empty($parms['default'])) // Allow writeParms to set default value. if(empty($value) && !empty($parms['default'])) // Allow writeParms to set default value.

View File

@@ -261,6 +261,48 @@ class e_menu
} }
/**
* @param int $id menu_id
* @param array $parms
* @return mixed
*/
public function updateParms($id, $parms)
{
$model = e107::getModel();
$model->setModelTable("menus");
$model->setFieldIdName("menu_id");
$model->setDataFields(array('menu_parms'=>'json'));
$model->load($id, true);
$d = $model->get('menu_parms');
$model->setPostedData('menu_parms', e107::unserialize($d));
foreach($parms as $key=>$value)
{
if(!is_array($value))
{
$model->setPostedData('menu_parms/'.$key, $value);
}
else
{
$lang = key($value);
$val = $value[$lang];
$model->setPostedData('menu_parms/'.$key.'/'.$lang, $val);
}
}
return $model->save();
// return $model;
}
/** /**
* Add a Menu to the Menu Table. * Add a Menu to the Menu Table.
* @param string $plugin folder name * @param string $plugin folder name

View File

@@ -981,18 +981,26 @@ class e_menuManager {
} }
else else
{ {
unset($_POST['menu_id'], $_POST['mode'], $_POST['menuActivate'], $_POST['menuSetCustomPages']); unset($_POST['menu_id'], $_POST['mode'], $_POST['menuActivate'], $_POST['menuSetCustomPages'], $_POST['e-token']);
$parms = $tp->filter($_POST); /* $tmp = $sql->retrieve("menus", "menu_parms", " menu_id=".$id);
$parms = $sql->escape(e107::serialize($parms)); $parms = !empty($tmp) ? e107::unserialize($tmp) : array();
if(e_DEBUG == true) foreach($_POST as $k=>$v)
{ {
// return array('msg'=>print_r($_POST,true),'error'=>true); $parms[$k] = $tp->filter($v);
}
} }
$check = $sql->update("menus", "menu_parms=\"".$parms."\" WHERE menu_id=".$id.""); $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); // $sql->update("menus", "menu_parms=\"".$parms."\" WHERE menu_id=".$id."");
if($check) if($check)
{ {
@@ -1796,7 +1804,7 @@ class e_menuManager {
$ret = $this->menuSaveVisibility(); $ret = $this->menuSaveVisibility();
// echo json_encode($ret); // echo json_encode($ret);
return; return null;
} }
if($mode == 'delete') if($mode == 'delete')
@@ -1811,7 +1819,7 @@ class e_menuManager {
$ret = $this->menuDeactivate(); $ret = $this->menuDeactivate();
// echo json_encode($ret); // echo json_encode($ret);
return; return null;
} }
} }
@@ -1822,9 +1830,9 @@ class e_menuManager {
$ret = $this->menuSaveParameters(); $ret = $this->menuSaveParameters();
if(!empty($ret['error'])) if(!empty($ret['error']))
{ {
echo json_encode($ret); return json_encode($ret);
} }
return; return null;
} }

View File

@@ -30,7 +30,7 @@ class tagcloud_menu
{ {
$fields = array(); $fields = array();
$fields['tagcloud_caption'] = array('title'=> LAN_CAPTION, 'type'=>'text', 'multilan'=>true, 'writeParms'=>array('size'=>'xxlarge')); $fields['tagcloud_caption'] = array('title'=> LAN_CAPTION, 'type'=>'text', 'multilan'=>true, 'writeParms'=>array('size'=>'xxlarge'));
$fields['tagcloud_limit'] = array('title'=> LAN_LIMIT, 'type'=>'number');
return $fields; return $fields;
} }