From 4fa8e472478d05bc939dba7560866443e003c276 Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 13 Feb 2017 18:05:55 -0800 Subject: [PATCH] Issue: #2398 e_menu now supports tabs. --- e107_admin/menus.php | 2 +- e107_handlers/form_handler.php | 69 +++++++++++++++-------------- e107_handlers/menumanager_class.php | 69 ++++++++++++++++++++++++++--- 3 files changed, 100 insertions(+), 40 deletions(-) diff --git a/e107_admin/menus.php b/e107_admin/menus.php index 9996ca320..1f11dc872 100644 --- a/e107_admin/menus.php +++ b/e107_admin/menus.php @@ -192,7 +192,7 @@ TEMPL; var target = window.parent.$('#e-save-form').attr('action'); var data = window.parent.$('#e-save-form').serialize(); - // alert(data); + // alert(data); // alert(target); $.post(target, data ,function(ret) { diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 41fe81fd7..1d4d3e3a1 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -6223,7 +6223,7 @@ class e_form } - $triggers = vartrue($fdata['triggers'], 'auto'); + $triggers = (empty($fdata['triggers']) && $fdata['triggers'] !== false) ? 'auto' : $fdata['triggers']; // vartrue($fdata['triggers'], 'auto'); if(is_string($triggers) && 'auto' === $triggers) { $triggers = array(); @@ -6238,42 +6238,45 @@ class e_form $triggers['cancel'] = array(LAN_CANCEL, 'cancel'); } - foreach ($triggers as $trigger => $tdata) + if(!empty($triggers)) { - $text .= ($trigger == 'submit') ? "
" : ""; - $text .= $this->admin_button('etrigger_'.$trigger, $tdata[1], $tdata[1], $tdata[0]); - - if($trigger == 'submit' && $submitopt) + foreach ($triggers as $trigger => $tdata) { - - $text .= - ' - '; - } - - $text .= ($trigger == 'submit') ?"
" : ""; - - if(isset($tdata[2])) - { - $text .= $this->hidden($trigger.'_value', $tdata[2]); } } diff --git a/e107_handlers/menumanager_class.php b/e107_handlers/menumanager_class.php index 9b43e9b05..e77f6b84a 100644 --- a/e107_handlers/menumanager_class.php +++ b/e107_handlers/menumanager_class.php @@ -582,6 +582,43 @@ class e_menuManager { return $link_class; } + private function menuParamForm($id, $fields,$tabs, e_form $ui, $values=array()) + { + $fields['menu_id'] = array('type'=>'hidden', 'writeParms'=>array('value'=>$id)); + $fields['mode'] = array('type'=>'hidden', 'writeParms'=>array('value'=>'parms')); + + $forms = $models = array(); + $forms[] = array( + 'id' => 'e-save', + 'header' => '', + 'footer' => '', + 'url' => e_SELF, + 'query' => "lay=".$this->curLayout, + 'fieldsets' => array( + 'create' => array( + 'tabs' => $tabs, //used within a single form. + 'legend' => '', + 'fields' => $fields, //see e_admin_ui::$fields + 'header' => '', //XXX Unused? + 'footer' => '', + 'after_submit_options' => '', // or true for default redirect options + 'after_submit_default' => '', // or true for default redirect options + 'triggers' => false, // standard create/update-cancel triggers + ) + ) + ); + // $models[] = $controller->getModel(); + $models[] = e107::getModel()->setData($values); + + return $ui->renderCreateForm($forms, $models, e_AJAX_REQUEST); + + + + + } + + + /** * This one will be greatly extended, allowing menus to offer UI and us * settings per instance later ($parm variable available for menus - same as shortcode's $parm) @@ -596,10 +633,12 @@ class e_menuManager { if(!$sql->select("menus", "*", "menu_id=".$id)) { $this->menuAddMessage("Couldn't Load Menu",E_MESSAGE_ERROR); - return; + return null; }; $row = $sql->fetch(); + + $text = "
@@ -617,6 +656,9 @@ class e_menuManager { $plug = rtrim($row['menu_path'],'/'); $obj = e107::getAddon($plug,'e_menu'); + + + if(!is_object($obj)) { $text .= "".e107::getParser()->lanVars(MENLAN_46, $plug).""; @@ -628,16 +670,27 @@ class e_menuManager { $menuName = varset($menuName); $fields = e107::callMethod($obj,'config',$menuName); + $tabs = isset($obj->tabs) ? $obj->tabs : array(LAN_CONFIGURE); + if(!$form = e107::getAddon($plug,'e_menu',$plug."_menu_form")) { $form = $frm; } + + $value = e107::unserialize($row['menu_parms']); + + + if(!empty($fields)) { + + return $this->menuParamForm($id, $fields,$tabs,$form,$value); + /* + foreach($fields as $k=>$v) { $text .= "".$v['title'].""; @@ -654,16 +707,20 @@ class e_menuManager { } - if(!empty($v['help'])) - { - $v['writeParms']['title'] = e107::getParser()->toAttribute($v['help']); - } $text .= "".$form->renderElement($i, $value[$k], $v); + + if(!empty($v['help'])) + { + //$v['writeParms']['title'] = e107::getParser()->toAttribute($v['help']); + $text .= "
".$v['help']."
"; + } + $text .= ""; - } + }*/ + } else {