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 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 . "]"; }