From f4bb98135f26a4a58f7ddf4fe2f0084984f21bcb Mon Sep 17 00:00:00 2001 From: Dany De Bontridder Date: Wed, 7 Dec 2011 13:29:40 +0000 Subject: [PATCH] CFGMENU let add new menu or modify them --- html/ajax_misc.php | 8 +++- html/js/scripts.js | 60 +++++++++++++++++++++++++- include/ajax_add_menu.php | 2 +- include/ajax_create_menu.php | 10 +++++ include/ajax_get_menu_detail.php | 2 +- include/ajax_mod_menu.php | 11 +++++ include/class_menu_ref.php | 38 +++++++++++++++++ include/menu.inc.php | 71 +++++++++++++++++++++---------- include/template/menu_detail.php | 72 ++++++++++++++++++++++++++++++++ 9 files changed, 247 insertions(+), 27 deletions(-) create mode 100644 include/ajax_create_menu.php create mode 100644 include/ajax_mod_menu.php create mode 100644 include/class_menu_ref.php create mode 100644 include/template/menu_detail.php diff --git a/html/ajax_misc.php b/html/ajax_misc.php index a35b2cd9e..3ab77bac4 100644 --- a/html/ajax_misc.php +++ b/html/ajax_misc.php @@ -532,6 +532,12 @@ EOF; require_once('ajax_anc_search.php'); break; case 'autoanc': - require_once('ajax_auto_anc_card.php'); + require_once 'ajax_auto_anc_card.php' ; break; + case 'create_menu'; + require_once 'ajax_create_menu.php'; + break; + case 'add_menu'; + require_once 'ajax_mod_menu.php'; + break; } \ No newline at end of file diff --git a/html/js/scripts.js b/html/js/scripts.js index 7bf4db835..9971f9f2d 100644 --- a/html/js/scripts.js +++ b/html/js/scripts.js @@ -1242,7 +1242,7 @@ function add_plugin(p_dossier) onSuccess:function(req){ try{ remove_waiting_box(); - var pos=fixed_position(250,150)+";width:30%";; + var pos=fixed_position(250,150)+";width:30%"; add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos}); $('divplugin').innerHTML=req.responseText; } catch(e){alert(e.message);} @@ -1273,7 +1273,65 @@ function mod_plugin(p_dossier,me_code) } ); } +function create_menu(p_dossier) +{ + waiting_box(); + removeDiv('divmenu'); + var qs="op=create_menu&gDossier="+p_dossier+"&ctl=divmenu"; + var action=new Ajax.Request ( 'ajax_misc.php', + { + method:'get', + parameters:qs, + onFailure:null, + onSuccess:function(req){ + try{ + remove_waiting_box(); + var pos=fixed_position(250,150)+";width:30%"; + add_div({ + id:"divmenu", + drag:1, + cssclass:"inner_box", + style:pos + }); + $('divmenu').innerHTML=req.responseText; + } catch(e){ + alert(e.message); + } + } + } + ); +} +function mod_menu(p_dossier,me_code) +{ + waiting_box(); + removeDiv('divmenu'); + var qs="op=mod_menu&gDossier="+p_dossier+"&ctl=divmenu&me_code="+me_code; + + var action=new Ajax.Request ( 'ajax_misc.php', + { + method:'get', + parameters:qs, + onFailure:null, + onSuccess:function(req){ + try{ + remove_waiting_box(); + var pos=fixed_position(250,150)+";width:30%"; + add_div({ + id:"divmenu", + drag:1, + cssclass:"inner_box", + style:pos + }); + $('divmenu').innerHTML=req.responseText; + + } catch(e){ + alert(e.message); + } + } + } + ); +} function get_properties(obj) { var a_array=[]; diff --git a/include/ajax_add_menu.php b/include/ajax_add_menu.php index 6049b4474..799381b27 100644 --- a/include/ajax_add_menu.php +++ b/include/ajax_add_menu.php @@ -33,7 +33,7 @@ $ame_code_dep=$cn->make_array(" UNION ALL select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') from menu_ref where - me_code='EXTENSION' + me_code='EXT' order by 1 ",1); $ame_code=$cn->make_array(" diff --git a/include/ajax_create_menu.php b/include/ajax_create_menu.php new file mode 100644 index 000000000..f1f230591 --- /dev/null +++ b/include/ajax_create_menu.php @@ -0,0 +1,10 @@ +'; +require_once 'template/menu_detail.php'; +echo HtmlInput::submit('create_menu','Sauver'); +echo HtmlInput::button_close('divmenu'); +echo ''; +?> diff --git a/include/ajax_get_menu_detail.php b/include/ajax_get_menu_detail.php index ff346a0c1..6df72abb7 100644 --- a/include/ajax_get_menu_detail.php +++ b/include/ajax_get_menu_detail.php @@ -35,7 +35,7 @@ $a_value_null=$cn->make_array("select me_code,me_code||' '||me_menu||' '||coales UNION ALL select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') from menu_ref where - me_code='EXTENSION'",1); + me_code='EXT'",1); $a_type=$cn->make_array("select pm_type,pm_desc from profile_menu_type",1); $array=$cn->get_array("select p_id,pm_id,me_code,me_code_dep,p_order,p_type_display,pm_default diff --git a/include/ajax_mod_menu.php b/include/ajax_mod_menu.php new file mode 100644 index 000000000..57e23ab4d --- /dev/null +++ b/include/ajax_mod_menu.php @@ -0,0 +1,11 @@ +me_code.h($m->menu); +echo '
'; +require_once 'template/menu_detail.php'; + +echo HtmlInput::submit('mod_menu','Sauver'); +echo HtmlInput::button_close('divmenu'); +echo '
'; +?> diff --git a/include/class_menu_ref.php b/include/class_menu_ref.php new file mode 100644 index 000000000..bf609bbd9 --- /dev/null +++ b/include/class_menu_ref.php @@ -0,0 +1,38 @@ +me_code=strtoupper($this->me_code); + $this->me_code=trim($this->me_code); + $this->me_code=str_replace('<','',$this->me_code); + $this->me_code=str_replace('>','',$this->me_code); + } + function verify() + { + parent::verify(); + if ( $this->me_code == -1) + { + $this->format_code(); + if ( $this->cn->get_value("select count(*) from menu_ref where me_code=$1",array($this->me_code)) > 0) + return -1; + if (trim($this->me_code)=='') + return -2; + } + return 0; + } + +} + +?> diff --git a/include/menu.inc.php b/include/menu.inc.php index af0672ccd..052618c7d 100644 --- a/include/menu.inc.php +++ b/include/menu.inc.php @@ -27,7 +27,7 @@ * \brief Show the table menu and let you add your own * */ -require_once 'class_menu_ref_sql.php'; +require_once 'class_menu_ref.php'; require_once 'class_sort_table.php'; require_once 'class_extension.php'; @@ -68,6 +68,29 @@ if (isset($_POST['mod_plugin'])) $plugin->remove_plugin(); } } +/** + * if post save then we save a new one + */ +if ( isset($_POST['create_menu'])|| isset($_POST['mod_menu'])) +{ + extract($_POST); + $menu_ref=new Menu_Ref($cn); + $menu_ref->me_code=$me_code; + $menu_ref->me_menu=$me_menu; + $menu_ref->me_file=$me_file; + $menu_ref->me_description=$me_description; + $menu_ref->me_parameter=$me_parameter; + $menu_ref->me_url=$me_url; + $menu_ref->me_javascript=$me_javascript; + $menu_ref->me_type='ME'; + if ( isset($_POST['create_menu'])) + { + if ( $menu_ref->verify() == 0) $menu_ref->insert(); + }elseif (isset ($_POST['mod_menu'])) + { + if ( $menu_ref->verify() == 0)$menu_ref->update(); + } +} /** * if delete then delete */ @@ -131,6 +154,7 @@ $ret=$menu->seek($sql.$order); '; echo ''; echo ''.$table->get_header(0).''; @@ -143,29 +167,30 @@ echo ''.$table->get_header(6).''; echo ''.$table->get_header(7).''; echo ''; -for ($i=0;$iget_object($ret, $i); - $js=$row->me_code; - switch ($row->me_type) - { - case 'PL': - $js=sprintf('%s', - $gDossier,$row->me_code,$row->me_code); - break; - - } - $class= ( $i%2 == 0)?$class=' class="odd"':$class=' class="even"'; - echo ""; - echo td($js); - echo td($row->me_menu); - echo td($row->me_description); - echo td($row->me_file); - echo td($row->me_url); - echo td($row->me_parameter); - echo td($row->me_javascript); - echo td($row->me_type); - echo ''; + $row = $menu->get_object($ret, $i); + $js = $row->me_code; + switch ($row->me_type) + { + case 'PL': + $js = sprintf('%s', $gDossier, $row->me_code, $row->me_code); + break; + case 'ME': + $js = sprintf('%s', $gDossier, $row->me_code, $row->me_code); + break; + } + $class = ( $i % 2 == 0) ? $class = ' class="odd"' : $class = ' class="even"'; + echo ""; + echo td($js); + echo td($row->me_menu); + echo td($row->me_description); + echo td($row->me_file); + echo td($row->me_url); + echo td($row->me_parameter); + echo td($row->me_javascript); + echo td($row->me_type); + echo ''; } echo ''; diff --git a/include/template/menu_detail.php b/include/template/menu_detail.php new file mode 100644 index 000000000..a8bae10ea --- /dev/null +++ b/include/template/menu_detail.php @@ -0,0 +1,72 @@ +me_code); +if ( $m->me_code != -1) $str_code->setReadOnly (true); + +$str_menu=new IText('me_menu',$m->me_menu); +$str_desc=new IText('me_description',$m->me_description); +$str_file=new IText('me_file',$m->me_file); +$str_url=new IText('me_url',$m->me_url); +$str_js=new IText('me_javascript',$m->me_javascript); + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Code du menu + + input()?> +
+ Libellé du menu + + input()?> +
+ Description + + input()?> +
+ Fichier à inclure (depuis le répertoire include) + + input()?> +
+ URL + + input()?> +
+ Paramèttre + + input()?> +
+ Javascript + + input()?> +
\ No newline at end of file