Beispiel #1
0
 /**
  * @param $view
  * @param bool $force
  * @return \adminpage
  */
 public function getTemplate($view, $force = false)
 {
     if (!isset($this->template[$view]) || $force) {
         // lang
         $lang = new Lang($this->config->config('language_text'), 'admin/' . $view);
         $common = new Lang($this->config->config('language_text'), 'admin');
         $this->template[$view] = new \adminpage($view, $lang, $common);
     }
     return $this->template[$view];
 }
    /**
     * @return mixed
     * @throws \ErrorException
     */
    protected function detectPage()
    {
        // security functions
        if (!isset($_REQUEST['go'])) {
            $_REQUEST['go'] = null;
        }
        $go = $_REQUEST['go'];
        // get page-data from database
        $acp_arr = $this->db->conn()->prepare(<<<SQL
SELECT `page_id`, `page_file`, P.`group_id` AS `group_id`, `menu_id`
FROM `{$this->db->getPrefix()}admin_cp` P, `{$this->db->getPrefix()}admin_groups` G
WHERE P.`group_id` = G.`group_id` AND P.`page_id` = ? AND P.`page_int_sub_perm` != 1
SQL
);
        $acp_arr->execute(array($go));
        $acp_arr = $acp_arr->fetch(\PDO::FETCH_ASSOC);
        // if page exists
        if (!empty($acp_arr)) {
            // if page is start page
            if ($acp_arr['group_id'] == -1) {
                $acp_arr['menu_id'] = $acp_arr['page_file'];
                $acp_arr['page_file'] = $acp_arr['page_id'] . '.php';
            }
            //if popup
            if ($acp_arr['group_id'] == 'popup') {
                define('POPUP', true);
                $title = $this->text['menu']->get('page_title_' . $acp_arr['page_id']);
            } else {
                define('POPUP', false);
                $title = $this->text['menu']->get('group_' . $acp_arr['group_id']) . ' &#187; ' . $this->text['menu']->get('page_title_' . $acp_arr['page_id']);
            }
            // get the page-data
            $PAGE_DATA_ARR = createpage($title, has_perm($acp_arr['page_id']), $acp_arr['page_file'], $acp_arr['menu_id']);
        } else {
            $PAGE_DATA_ARR['created'] = false;
            define('POPUP', false);
        }
        // logout
        if ($PAGE_DATA_ARR['created'] === false && $go == 'logout') {
            setcookie('login', '', time() - 3600, '/');
            $_SESSION = array();
            $PAGE_DATA_ARR = createpage($this->text['menu']->get("admin_logout_text"), true, 'admin_logout.php', 'dash');
        } elseif ($PAGE_DATA_ARR['created'] === false && ($go == 'login' || empty($go))) {
            $go = 'login';
            $PAGE_DATA_ARR = createpage($this->text['menu']->get("admin_login_text"), true, 'admin_login.php', 'dash');
        } elseif ($PAGE_DATA_ARR['created'] === false) {
            $go = '404';
            $PAGE_DATA_ARR = createpage($this->text['menu']->get("admin_error_page_title"), true, 'admin_404.php', 'error');
        }
        // Get Special Page Lang-Text-Files
        $page_lang = new Lang($this->config->config('language_text'), 'admin/' . substr($PAGE_DATA_ARR['file'], 0, -4));
        $common_lang = $this->text['admin'];
        // initialise template system
        $PAGE_DATA_ARR['template'] = new \adminpage($PAGE_DATA_ARR['file'], $page_lang, $common_lang);
        // Define Constant
        define('ACP_GO', $go);
        return $PAGE_DATA_ARR;
    }