188 lines
4.5 KiB
PHP
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;
|
|
}
|
|
?>
|
|
|
|
|
|
|
|
|