ORA_PConnect(); if (!$ora_res){ echo "
Error : " . htmlspecialchars($ora_obj->last_error_msg) . "
"; exit(); } initTemplate(); $result = contructMenu($ora_obj); echo $result; function initTemplate(){ $menuTemplate['JSATTACH'] = <<< js at_attach("<>", "<>", "hover", "x", "pointer"); js; $menuTemplate['MENU'] = <<< js <> js; $menuTemplate['ROOT'] = <<< root <> root; $menuTemplate['CHILD'] = <<< child <> child; $menuTemplate['CHILDCONTAINER'] = <<< childContainer
<>
childContainer; $menuTemplate['MENUCONTAINER'] = <<< menuContainer menuContainer; $_SESSION['TEMPLATE_ARRAY_ADDR'] = &$menuTemplate; } function getMenu(&$ora_obj){ $sessionMenu = $_SESSION['MENU']; if (!empty($sessionMenu)) { $tempMenuArrayLine = explode('-',$sessionMenu); //print_r($tempMenuArrayLine); if (count($tempMenuArrayLine) > 0) { foreach ($tempMenuArrayLine as $tkey => $tval) { $tempMenuArray = explode('|',$tval); if (count($tempMenuArray) > 0) { foreach ($tempMenuArray as $mkey => $mval) { list($menukey,$menuval) = explode('>',$mval); $menu[$menuCounter][$menukey] = $menuval; } $menuCounter++; } } } } return $menu; } function getMenuOld(&$ora_obj){ $menuSQL = <<< menuSQL SELECT distinct(m.KD_MENU),m.PARENT_KD_MENU,m.Ket_Menu,m.Kel_Menu,m.No_Urut,m.Link,level FROM PRM_MENU m , MST_MENU s WHERE s.KD_LEVEL = '{$_SESSION['KD_LEVEL']}' and s.KD_MENU = m.KD_MENU start with m.PARENT_KD_MENU = '00000' connect by prior m.KD_MENU = m.PARENT_KD_MENU order siblings by KEL_MENU,NO_URUT asc menuSQL; $menuArray = $ora_obj->ORA_SelectData($menuSQL,null,null,OCI_FETCHSTATEMENT_BY_ROW); //print_r($menuArray); if ($ora_obj->nrows<0) { $menuArray = null; } return $menuArray; } if ($ora_obj->conn) { $ora_obj->ORA_Close(); #echo "connection closed.
"; } function contructMenu(&$ora_obj){ $templObj = new PregReplaceCallbackClass(''); $templObj->SetTemplateArray('TEMPLATE_ARRAY_ADDR'); if ($_SESSION['KD_APPS'] === APPSID){ $menuArray = getMenu($ora_obj); } if (count($menuArray)>0) { foreach ($menuArray as $mkey => $mval) { foreach ($mval as $nkey => $nval) { $variable_array[$nkey] = $nval; } $_SESSION['ARRAY_ADDR_VAR'] = &$variable_array; if ($mval['PARENT_KD_MENU'] == '00000') { $templObj->SetFormatName('ROOT'); $ROOT .= $templObj->PregReplaceCallback(); } else { $templObj->SetFormatName('CHILD'); $CHILD[$mval['PARENT_KD_MENU']] .= $templObj->PregReplaceCallback(); } } } $GENERATEDMENU = $ROOT; if (!is_null($CHILD)) { foreach ($CHILD as $ckey => $cval) { $templObj->SetFormatName('CHILDCONTAINER'); $variable_array['CHILD'] = $cval; $variable_array['SUBMENUID'] = "CHILD_$ckey"; $GENERATEDMENU .= $templObj->PregReplaceCallback(); $variable_array['CHILD'] = "CHILD_$ckey"; $variable_array['PARENT'] = $ckey; $templObj->SetFormatName('JSATTACH'); $JS .= $templObj->PregReplaceCallback(); } } $variable_array['GENERATEDMENU'] = $GENERATEDMENU; $variable_array['JS'] =$JS; $templObj->SetFormatName('MENU'); $MENU = $templObj->PregReplaceCallback(); if ($_REQUEST['action'] == 'generateMenu') { $result = $MENU; } else { //if (!is_null($menuArray)) { $variable_array['MENU'] = $MENU; $templObj->SetFormatName('MENUCONTAINER'); $result = $templObj->PregReplaceCallback(); //} } return $result; } ?>