public function action_index() { // get acl $acl = Acl::instance(); // get modules $modules = Settings::factory('modules')->as_array(); // get navigation $settings = Settings::factory('navigation', array('settings' . DIRECTORY_SEPARATOR . Website::instance()->id() . DIRECTORY_SEPARATOR, 'settings')); $navigation = $settings->get('menu'); // filter out allowed modules $allowedModules = array(); foreach ($modules as $module => $data) { if ($acl->allowed($module, 'access')) { $allowedModules[$module] = $data; } } // fill up sections $sections = array(); foreach ($navigation as $section => $modules) { foreach ($modules as $module) { if (isset($allowedModules[$module])) { // section has a allowed module, so include it if (!isset($sections[$section])) { $sections[$section] = array(); } // add module to section $sections[$section][$module] = $allowedModules[$module]; } } } $view = View::factory('start', array('sections' => $sections)); $this->response->body($view->render()); }
/** * init: check if user is logged in * * if not: redirect to login */ public function init() { // call parent before first parent::init(); // only check if the controller is not auth if (Request::initial()->controller() != 'Auth') { // url to loginpage $url = URL::to('Auth@login'); // init identity $identity = Identity::instance(); //revert identity to original user (maybe assume was called somewhere else) $identity->revert(); // check authentication if (!$identity->authenticated()) { // if user is not allready authenticated, redirect to login page $this->redirect($url); } else { $website = Website::instance(); // else: initialise acl Acl::init($identity, new Model_Rights($website->websites())); // set current environment Acl::environment($website->id()); // if user is not entitled to access backend if (!Acl::instance()->allowed('Backend', 'access')) { $this->redirect($url); } // if user is not entitled to access controller if (!Acl::instance()->allowed(Request::initial()->controller(), 'access')) { $this->redirect($url); } } } }
/** * init */ public function init() { // raise event Event::raise($this, Event::BEFORE_INIT); // get website and feed it the current uri so we can figure out the ->id() $website = Website::instance()->uri(Request::initial()->uri()); // set controller vars $this->_website = $website->id(); $this->_directory = Request::current()->directory(); $this->_controller = Request::current()->controller(); $this->_action = Request::current()->action(); $this->_language = isset(Identity::instance()->user) ? Identity::instance()->user->language : 'nl'; // manually set website in Website // this will be used by alias Website::instance()->id($this->_website); // set state session // get state instance for this website / controller State::session(Session::instance('database')); $this->_state = State::instance($this->_website . '.' . $this->_controller); // set route in URL helper URL::route('backend'); // Let Filereader cache results Reader::cache(Cache::instance('reader_backend'), 'backend'); // set default language Text::language($this->_language); // get that language's text instance and configure it Text::instance($this->_language)->load(array_keys(Settings::factory('modules')->as_array()))->group($this->_controller)->substitutes('module'); // set URL presets $base = URL::base(); URL::set('base', $base); URL::set('library', $base . 'library/'); URL::set('vendor', $base . 'vendor/'); URL::set('files', $base . 'files/'); // set website in view View::set_global('_website', $this->_website); // set language in view View::set_global('_language', $this->_language); }
/** * before parse form * * @param Model $model * @param Form $form */ public function handle_item_before_update_form_parse($data) { // if there is only a global alias // get that an show it in the form if ($this->_settings->get('alias.global') == TRUE) { $data->form->value('alias', Alias::factory(Website::instance()->id())->uris(array('controller' => $this->_controller, 'action' => 'view', 'id' => $data->model->id), FALSE)); } }
/** * create the top navigation */ public function action_top() { // get acl $acl = Acl::instance(); // get websites $websites = array(); foreach (Kohana::$config->load('websites')->websites as $key => $website) { if ($acl->allowed('Environment', 'access', FALSE, $key)) { $websites[$key] = $website; } } // get modules $modules = Settings::factory('modules')->as_array(); // get settings $settings = Settings::factory('navigation', array('settings' . DIRECTORY_SEPARATOR . Website::instance()->id() . DIRECTORY_SEPARATOR, 'settings')); // get navigation $navigation = $settings->get('menu'); // get current controller $controller = Request::initial()->controller(); // filter out allowed modules $allowedModules = array(); foreach ($modules as $module => $data) { if ($acl->allowed($module, 'access')) { $allowedModules[$module] = TRUE; } } // create a nested array with sections => modules // catch active section $sections = array(); $sectionActive = FALSE; foreach ($navigation as $section => $modules) { foreach ($modules as $module) { if (isset($allowedModules[$module])) { // section has a allowed module, so include it if (!isset($sections[$section])) { $sections[$section] = array(); } // add module to section $sections[$section][] = $module; // check if this is the active section if ($module === $controller) { $sectionActive = $section; } } } } // store active section if ($sectionActive) { // get current website State::instance()->set('active.section', $sectionActive); } // check if frontendlink should be shown if ($settings->get('frontend')) { $frontend = URL::to('', array('website' => Website::instance()->id(), 'query' => 'edit=1'), 'frontend', Website::instance()); } else { $frontend = FALSE; } // create view $view = View::factory('navigation/top', array('acl' => $acl, 'websites' => $websites, 'sections' => $sections, 'active' => $sectionActive, 'website' => Website::instance()->id(), 'frontend' => $frontend)); // render view $this->response->body($view->render()); }
/** * Popup launched from wysiwyg to embed an image * @return void */ public function action_embed() { $id = $this->request->param('id', 0); $sizes = $this->_settings->get('sizes_embed'); if ($id > 0) { // get size from qs $size = $this->param('param1'); } else { // get first size $size = $sizes[0]; } // create form $form = Form::factory($this->_settings->get('form_embed')); // set urls $form->urls(array('submit' => URL::to($this->request->controller() . '@embed:' . $id, array('query' => 'after=embed')), 'submit_back' => URL::to($this->request->controller() . '@embed:' . $id, array('query' => 'after=close')), 'back' => URL::to($this->request->controller() . '@close'))); // set vars in from $form->controller($this->request->controller()); $form->sizes($sizes); // populate form $form->value('id', $id); $form->value('size', $size); // proces form if ($form->valid()) { $data = $form->values(); // get the image model $model = ORM::factory($this->_settings->get('model'), $data['id']); // get actual base url for the current website $base_url = Website::instance()->base_url($this->_website, Kohana::$base_url) . $this->_settings->get('url_images'); // get the source $data['src'] = $model->src($data['size'], $base_url); // check if it can be enlarged $data['enlarge'] = $model->size($this->_settings->get('size_enlarge')) === FALSE ? '0' : '1'; // get callback $callback = $this->request->param('callback', ''); // render close dialog $view = View::factory($this->_settings->get('view.close'), array('data' => $data, 'callback' => $callback)); $this->response->body($view->render()); } else { // create view $viewer = Viewer::factory('Form', $form)->text(Text::instance()); $view = View::factory($this->_settings->get('view.update'), array('viewer' => $viewer)); $this->response->body($view->render()); } }
*/ Route::set('access', 'access/<token>(/<controller>(/<action>(/<id>(/<param1>))))')->defaults(array('token' => '', 'controller' => 'Home', 'action' => 'index')); /** * INTERNAL SUBREQUEST */ Route::set('internal', 'internal_<controller>(@<action>(:<id>))', array('controller' => '[a-zA-Z0-9\\_\\-]+', 'action' => '[a-zA-Z0-9\\_\\-]+'))->defaults(array('action' => 'index')); /** * LOCAL ALIAS NEWS */ Route::set('news', '(website_<website>/)actueel/<id>', array('website' => $websites_pattern))->defaults(array('controller' => 'News', 'action' => 'view')); /** * LOCAL ALIAS EVENT */ Route::set('event', '(website_<website>/)agenda/<id>', array('website' => $websites_pattern))->defaults(array('controller' => 'Event', 'action' => 'view')); /** * ALIAS */ // cache aliases Alias::cache(Cache::instance('alias')); Route::set('alias', '(website_<website>(/))(<uri>)', array('website' => $websites_pattern, 'uri' => '[a-zA-Z0-9\\-]+'))->filter(function ($route, $params, $request) { if (isset($params['uri']) && $params['uri'] != '') { $aliasParams = Alias::factory()->params($params['uri'], Website::instance()->uri($request->uri())->id()); return $aliasParams ? $aliasParams : FALSE; } else { return FALSE; } }); /** * FRONTEND */ Route::set('frontend', '(website_<website>(/))(<controller>(/<action>(/<id>(/<param1>(/<param2>(/<param3>))))))(?<query>)', array('website' => $websites_pattern))->defaults(array('controller' => 'Page', 'action' => 'view'));
View::block('class_body', ''); ?> "> <!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '<?php echo $_config->ga; ?> ', '<?php echo Website::instance()->domain(); ?> '); ga('send', 'pageview'); </script> <nav class="yf-nav"> <div class="yf-container container"> <!-- Top Menu --> <div class="nav-top hidden-small"> <?php echo $_menu_top; ?> </div>