public function SetMenu() { //ambil dahulu nama file menunya $this->GetFileMenu(); //get session dahulu //$this->cSCMenu = unserialize(GetSession("cSession_SCMenu")) ; if (is_file($this->cNamaFileDef) && $this->cSCMenu == "") { $vaFile = file($this->cNamaFileDef); //load file menu menjadikan array if ($this->lWithCase) { $this->cSCMenu = '<ul class="sidebar-menu">'; } //awal dari navigation menu $nBertingkat = 0; foreach ($vaFile as $nKey => $cValue) { $cIdentifier = strpos($cValue, "#"); if ($cIdentifier === false && trim($cValue) !== "" && strpos($cValue, "<?php die('Sapeltu Inc.'); ?>") !== 0 && (strpos($vaFile[$nKey], "Dashboard") === false || strpos($vaFile[$nKey], "index.") === false) && (strpos($vaFile[$nKey], "Lv") === false || strpos($vaFile[$nKey], "index.") === false)) { //jika diawal value terisi # maka tidak dieksekusi //ambil posisi [ karna untuk menentukan sub sub menu $vaMenu = scArray::Menu2Array($cValue); $lValid = strpos($this->cLevel_md5, $vaMenu['cMd5']) > -1 ? true : ($this->cLevel == "0000" ? true : false); $nPos = strpos($cValue, "["); $lTop = $nPos == 0 ? true : false; //userlevel access //untuk menentukan sub menu / menutup sub menu maka harus dicek menu setelah menu ini $lParent = false; $lParentEnd = false; $lBertingkatEnd = false; $nNextKey = $this->CekSelanjutnya($nKey); if (isset($vaFile[$nNextKey])) { $nPosNext = strpos($vaFile[$nNextKey], "["); $lParent = $nPosNext > $nPos ? true : false; $lParentEnd = $nPosNext >= $nPos ? false : true; $lBertingkatEnd = $nPosNext == 0 ? true : false; } else { //$lParentEnd = true ; $lBertingkatEnd = true; } if ($lValid) { $cDash = GetSession("cSession_Dashboard"); if (trim($cDash) == "") { SaveSession("cSession_Dashboard", $vaMenu['cJs']); } $liClass = $lParent ? "class='treeview'" : ""; $this->cSCMenu .= '<li ' . $liClass . '>'; if ($lParent) { //jika jadi parent maka $this->cSCMenu .= $this->SetDetailMenu($vaMenu, $lTop, $lParent) . '<ul class="treeview-menu">'; $nBertingkat++; } else { $this->cSCMenu .= $this->SetDetailMenu($vaMenu) . "</li>"; } if ($lParentEnd) { //ditutup parent end //$nBertingkat-- ; //$this->cSCMenu .= "</ul></li>" ; while ($nBertingkat > $nPosNext) { $nBertingkat--; $this->cSCMenu .= "</ul></li>"; } } } if ($nBertingkat > 0 && $lBertingkatEnd) { while ($nBertingkat > 0) { $nBertingkat--; $this->cSCMenu .= "</ul></li>"; } } } } if ($this->lWithCase) { $this->cSCMenu .= '</ul>'; } //penutup dari navigation menu SaveSession("cSession_SCMenu", serialize($this->cSCMenu)); } echo $this->cSCMenu; }
public static function GetTreeMenu($cLevel = "", $lCheckBox = true) { $cReturn = ""; $vaFile = file("./scmenu.menu.php"); $nBertingkat = 0; foreach ($vaFile as $nKey => $cValue) { $cIdentifier = strpos($cValue, "#"); if ($cIdentifier === false && trim($cValue) !== "" && strpos($cValue, "<?php die('Sapeltu Inc.'); ?>") !== 0) { //jika diawal value terisi # maka tidak dieksekusi //ambil posisi [ karna untuk menentukan sub sub menu $nPos = strpos($cValue, "["); $lTop = $nPos == 0 ? true : false; $vaMenu = scArray::Menu2Array($cValue); $cReturn .= '{'; //untuk menentukan sub menu / menutup sub menu maka harus dicek menu setelah menu ini $lParent = false; $lParentEnd = false; $lBertingkatEnd = false; $nNextKey = self::CekSelanjutnya($nKey); if (isset($vaFile[$nNextKey])) { $nPosNext = strpos($vaFile[$nNextKey], "["); $lParent = $nPosNext > $nPos ? true : false; $lParentEnd = $nPosNext >= $nPos ? false : true; $lBertingkatEnd = $nPosNext == 0 ? true : false; } else { //$lParentEnd = true ; $nPosNext = -1; $lBertingkatEnd = true; } //isi $cNamaMenu = $vaMenu['cNama']; $cSelected = strpos($cLevel, $vaMenu['cMd5']) > -1 ? "select: true," : ""; if ($lParent) { //jika jadi parent maka $cReturn .= 'title: "' . $vaMenu['cNama'] . '", ' . $cSelected . ' expand: true, isFolder: true, key: "' . $vaMenu['cMd5'] . '",' . "children:["; $nBertingkat++; } else { $cReturn .= 'title: "' . $vaMenu['cNama'] . '" , ' . $cSelected . ' key: "' . $vaMenu['cMd5'] . '"}'; if ($nPos == $nPosNext) { $cReturn .= ","; } } if ($lParentEnd) { //ditutup parent end $nBertingkat--; $cReturn .= "]},"; } if ($nBertingkat > 0 && $lBertingkatEnd) { while ($nBertingkat > 0) { $nBertingkat--; $cReturn .= "]},"; } } } } return "[" . $cReturn . "]"; }
public static function GetChildMenu($cJs = "") { $vaArray = array(); $vaFile = file(self::$cFileLoc); $nBertingkat = 0; $lValid = false; foreach ($vaFile as $nKey => $cValue) { $cIdentifier = strpos($cValue, "#"); if ($cIdentifier === false && trim($cValue) !== "" && strpos($cValue, "<?php die('Sapeltu Inc.'); ?>") !== 0) { //jika diawal value terisi # maka tidak dieksekusi //ambil posisi [ karna untuk menentukan sub sub menu $nPos = strpos($cValue, "["); $lTop = $nPos == 0 ? true : false; $vaMenu = scArray::Menu2Array($cValue); if (strpos($vaMenu["cNama"], "-MOBILE-") === false) { $lParent = false; $lParentEnd = false; $lBertingkatEnd = false; $nNextKey = scSys::CekSelanjutnya($nKey); if (isset($vaFile[$nNextKey])) { $nPosNext = strpos($vaFile[$nNextKey], "["); $lParent = $nPosNext > $nPos ? true : false; $lParentEnd = $nPosNext >= $nPos ? false : true; $lBertingkatEnd = $nPosNext == 0 ? true : false; } else { $nPosNext = -1; $lBertingkatEnd = true; } //isi $cNamaMenu = $vaMenu['cNama']; if ($lParent) { $lValid = md5($cJs) == $vaMenu['cMd5'] ? true : false; $nBertingkat++; } else { if ($lValid) { $vaArray[$vaMenu['cMd5']] = $vaMenu; } } if ($lParentEnd) { //ditutup parent end $nBertingkat--; } if ($nBertingkat > 0 && $lBertingkatEnd) { while ($nBertingkat > 0) { $nBertingkat--; } } } } } return $vaArray; }
public static function SaveLvAccess($cFileLoc, $cTable, $cTableId, $cTableValue, $cId = "") { global $scDb; $cUserName = GetSession("cSession_UserName"); $vaAccess = self::GetLvAccess($cFileLoc); $cTableValue = json_encode($cTableValue); $cMd5Val = md5($cTableValue); $vaArray = array("TableName" => $cTable, "TableId" => $cTableId, "TableValue" => $cTableValue, "Md5Val" => md5($cTableValue)); $cReturn = false; if ($cId == "") { scArray::ArrayMe($vaArray, "DateInsert", scDate::Date2String(scDate::GetTglTransaksi())); scArray::ArrayMe($vaArray, "UserName_Maker", $cUserName); scArray::ArrayMe($vaArray, "DatetimeInsert_Maker", date("Y-m-d h:i:s")); if ($vaAccess['lSigner'] || $vaAccess['lChecker']) { //signer all scArray::ArrayMe($vaArray, "Status", "1"); scArray::ArrayMe($vaArray, "UserName_Checker", $cUserName); scArray::ArrayMe($vaArray, "DatetimeInsert_Checker", date("Y-m-d h:i:s")); } } else { $dbRowLast = scSys::GetKeterangan("*", "Id = '{$cId}'", "sc_access_input"); $vaRowLog = @json_decode($dbRowLast['UserName_Log'], true); if (!is_array($vaRowLog)) { $vaRowLog = unserialize($dbRowLast['UserName_Log']); } if (!is_array($vaRowLog)) { $vaRowLog = array(); } if ($vaAccess['lMaker'] && !$vaAccess['lChecker'] && !$vaAccess['lSigner']) { //edit maker if ($dbRowLast['UserName_Maker'] !== $cUserName) { scArray::ArrayMe($vaArray, "UserName_Maker", $cUserName); if ($dbRowLast['UserName_Maker'] !== "") { $vaRowLog[]['UserName_Maker@' . time()] = $dbRowLast['UserName_Maker']; } } scArray::ArrayMe($vaArray, "Status", "0"); scArray::ArrayMe($vaArray, "DatetimeUpdate_Maker", date("Y-m-d h:i:s")); } if ($vaAccess['lChecker'] && !$vaAccess['lSigner']) { //edit maker if ($dbRowLast['UserName_Checker'] !== $cUserName) { scArray::ArrayMe($vaArray, "UserName_Checker", $cUserName); if ($dbRowLast['UserName_Checker'] !== "") { $vaRowLog[]['UserName_Checker@' . time()] = $dbRowLast['UserName_Checker']; } } scArray::ArrayMe($vaArray, "DatetimeUpdate_Checker", date("Y-m-d h:i:s")); scArray::ArrayMe($vaArray, "Status", "1"); } if (!empty($vaRowLog)) { scArray::ArrayMe($vaArray, "UserName_Log", json_encode($vaRowLog)); } } scArray::ArrayMe($vaArray, "StatusOnView", "0"); if ($vaAccess['lSigner']) { //signer all $cReturn = true; scArray::ArrayMe($vaArray, "UserName_Signer", $cUserName); scArray::ArrayMe($vaArray, "DatetimeInsert_Signer", date("Y-m-d h:i:s")); scArray::ArrayMe($vaArray, "Status", "2"); scArray::ArrayMe($vaArray, "StatusOnView", "2"); } $scDb->Update("sc_access_input", $vaArray, "Id = '{$cId}'", false, array("Cabang" => GetSession("cSession_Cabang"))); if ($cReturn) { $cReturn = scSys::GetKeteranganOne("Id", "TableName = '{$cTable}' and TableId = '{$cTableId}' and Md5Val = '{$cMd5Val}'", "sc_access_input"); } else { $cReturn = ""; } return $cReturn; }