dwh/navigation.php
Daeng Deni Mardaeni 5321a5434b first commit
2023-10-02 17:26:17 +07:00

188 lines
4.5 KiB
PHP

<?php
include_once 'init/initialisation_parameter.php';
include_once 'class/ORAConnectionClass.php';
include_once 'class/PregReplaceCallbackClass.php';
$ora_obj = new ORAConnectionClass('init/ORA_INIT.php');
$ora_res = $ora_obj->ORA_PConnect();
if (!$ora_res){
echo "<BR>Error : " . htmlspecialchars($ora_obj->last_error_msg) . "<br>";
exit();
}
initTemplate();
$result = contructMenu($ora_obj);
echo $result;
function initTemplate(){
$menuTemplate['JSATTACH'] = <<< js
at_attach("<<PARENT>>", "<<CHILD>>", "hover", "x", "pointer");
js;
$menuTemplate['MENU'] = <<< js
<<GENERATEDMENU>>
<script type="text/javascript">
<<JS>>
</script>
js;
$menuTemplate['ROOT'] = <<< root
<a href="<<LINK>>" title="<<KET_MENU>>" id="<<KD_MENU>>"><<KET_MENU>></a>
root;
$menuTemplate['CHILD'] = <<< child
<a href="<<LINK>>" title="<<KET_MENU>>" id="<<KD_MENU>>"><<KET_MENU>></a>
child;
$menuTemplate['CHILDCONTAINER'] = <<< childContainer
<span id="<<SUBMENUID>>" style="display:block">
<table width="100" cellpadding="1" cellspacing="1" border="0">
<tr>
<td>
<div id="linkssubmenu" align="center">
<<CHILD>>
</div>
</td>
</tr>
</table>
</span>
childContainer;
$menuTemplate['MENUCONTAINER'] = <<< menuContainer
<script type="text/javascript" src="/js/dropdown.js"></script>
<div id="menu" align="right">
<div align="right" style="width:189px; height:8px;"><img src="images/mnu_topshadow.gif" width="189" height="8" alt="mnutopshadow" /></div>
<div id="linksmenu" align="center">
<a href="/index.php" title="Home">Home</a>
<span id="generatedMenu">
<<MENU>>
</span>
</div>
<div align="right" style="width:189px; height:8px;"><img src="images/mnu_bottomshadow.gif" width="189" height="8" alt="mnubottomshadow" /></div>
</div>
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.<br>";
}
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;
}
?>