function url($url = '') { $url = $url ? $url : application::get_instance()->request->url; if (application::get_instance()->config->resource->lang) { $m = new model_lang(); $langs = $m->fetch_col('stitle', array('show_it' => 1)); $url = preg_replace('/^\\/(' . implode('|', $langs) . ')\\//si', '/', $url); } $m = new model_meta(); $data = $m->fetch_by_url($url); if ($data) { $this->auto($data, false); } }
public function controller_before() { $ml = new model_lang(); $ids = $ml->fetch_col('stitle', array('show_it' => 1)); if (@application::get_instance()->config->resource->lang->type == 'session') { if ($ids) { $lang_session = session::get('lang'); $lang_cookie = @$_COOKIE['lang']; if ($lang_session && !in_array($lang_session, $ids)) { session::remove('lang'); $lang_session = null; } if ($lang_cookie && !in_array($lang_cookie, $ids) || $lang_cookie && $lang_session && $lang_session != $lang_cookie) { setcookie('lang', null, time() + 86400 * 30, '/'); } if ($lang_cookie && !$lang_session) { session::set('lang', $lang_cookie); $lang_session = $lang_cookie; } if (application::get_instance()->config->resource->lang->detect && !$lang_session) { $lang_detected = $this->prefered_language($ids, @$_SERVER['HTTP_ACCEPT_LANGUAGE']); if ($lang_detected) { session::set('lang', $lang_detected); } } } } else { if ($ids && !in_array(application::get_instance()->controller->request->param->lang, $ids)) { unset(application::get_instance()->controller->request->param->lang); } if (!application::get_instance()->controller->request->param->lang) { application::get_instance()->controller->request->param->lang = application::get_instance()->controller->view->lang()->default->stitle; } if (application::get_instance()->request->url == '/control') { header('Location: /' . application::get_instance()->controller->view->lang()->default->stitle . '/control'); exit; } else { if (application::get_instance()->request->url == '/error') { header('Location: /' . application::get_instance()->controller->view->lang('stitle') . '/error'); exit; } } } }