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;
}
?>