/** * @param $params */ function parse_page($params) { /** init tingkat yang ada di params */ $this->init_tingkat($params); $view_path = LRS_VIEW_ABS_PATH; $file_to_include = $view_path . DS . self::page_404; /** kondisi untuk halaman publik utama atau beranda */ if (!$this->has_tingkat(1) || $this->get_tingkat(1) == self::view_beranda) { $file_to_include = $view_path . DS . self::page_index; /** untuk kondisi pertama, tentukan jenis nya terlebih dahulu */ } else { $has_view = true; /** untuk tingkat 1 dari jenis view, langsung tampilkan index */ switch ($this->get_tingkat(1)) { case self::view_admin: Contents::get_instance()->set_view(self::view_admin); break; case self::view_staff: Contents::get_instance()->set_view(self::view_staff); break; default: $has_view = false; } /** jika kondisi diatas memenuhi diantara view yang telah ditentukan */ if ($has_view) { /** * kondisi pertama jika memang yang diinginkan adalah halaman * index dari tiap view */ $condition1 = Contents::get_instance()->get_view_path() . DS . self::page_index; /** * kondisi kedua jika sub page dari tiap view tidak ketemu * gunakan index dari tiap view */ $condition2 = Contents::get_instance()->get_view_path() . DS . (!$this->has_tingkat(2) ? self::page_index : $this->get_tingkat(2) . self::script_ext); /** * lakukan pengecekan */ $file_to_include = is_readable($condition2) ? $condition2 : $condition1; /** jika memang tidak ada di daftar view */ } else { /** * coba eksekusi tingkat1.php jika ada */ $file_to_include = $view_path . DS . $this->get_tingkat(1) . self::script_ext; /** * dan apabila memang tidak ada, langsung berikan halaman 404 */ is_readable($file_to_include) || ($file_to_include = $view_path . DS . self::page_404); /** * jika memang file untuk di-include tidak ditemukan * bersihkan variabel view yang sudah kedung tersimpan * di objek Contents */ Contents::get_instance()->remove_view(); } } //lrs_exit( $file_to_include ); /** mulai meng-include */ if (is_readable($file_to_include)) { include $file_to_include; } else { lrs_exit('Script yang side eksekusi belum ada.', 'alert'); } }