/** * Add our own stuff to the templates */ public function inject_template(midgardmvc_core_request $request) { // Replace the default MeeGo sidebar with our own $route = $request->get_route(); $route->template_aliases['content-sidebar'] = 'cmp-show-sidebar'; $route->template_aliases['main-menu'] = 'cmp-show-main_menu'; midgardmvc_core::get_instance()->head->add_link(array('rel' => 'stylesheet', 'type' => 'text/css', 'href' => MIDGARDMVC_STATIC_URL . '/com_meego_planet/planet.css')); }
/** * Some template hack */ public function inject_template(midgardmvc_core_request $request) { $route = $request->get_route(); $request->set_data_item('admin', false); if ($this->mvc->authentication->is_user()) { if ($this->mvc->authentication->get_user()->is_admin()) { $request->set_data_item('admin', true); } } }
/** * Some template hack */ public function inject_template(midgardmvc_core_request $request) { // Replace the default MeeGo sidebar with our own $route = $request->get_route(); $route->template_aliases['content-sidebar'] = 'cmd-sidebar'; $route->template_aliases['main-menu'] = 'cmd-main-menu'; // set user flag // set create program url for the menu in the sidebar // set admin flag to have extra functionality later on if ($this->mvc->authentication->is_user()) { $request->set_data_item('user', true); $create_provider_url = $this->mvc->dispatcher->generate_url('provider_create', array(), $request); $request->set_data_item('create_provider_url', $create_provider_url); $create_device_url = $this->mvc->dispatcher->generate_url('device_create', array(), $request); $request->set_data_item('create_device_url', $create_device_url); $create_program_url = $this->mvc->dispatcher->generate_url('program_create', array(), $request); $request->set_data_item('create_program_url', $create_program_url); if ($this->mvc->authentication->get_user()->is_admin()) { $request->set_data_item('admin', true); } } // set open programs url for the menu in the sidebar $open_programs_url = $this->mvc->dispatcher->generate_url('open_programs', array(), $request); $request->set_data_item('open_programs_url', $open_programs_url); // set more info url for the menu in the sidebar $more_info_url = $this->mvc->configuration->more_info_url; $request->set_data_item('more_info_url', $more_info_url); // set list of providers url for the menu in the sidebar $providers_url = $this->mvc->dispatcher->generate_url('providers', array(), $request); $request->set_data_item('providers_url', $providers_url); // set bugtracker url for the menu in the sidebar $bugtracker_url = $this->mvc->configuration->bugtracker_url; $request->set_data_item('bugtracker_url', $bugtracker_url); // if ($this->mvc->configuration->enable_breadcrumb) { // add breadcrumb if enabled in configuration self::set_breadcrumb($request); } // add some js and css to html head if needed $this->add_head_elements(); }
public function get_element(midgardmvc_core_request $request, $element, $handle_includes = true) { // Check for possible element aliases $route = $request->get_route(); if ($route && isset($route->template_aliases[$element])) { $element = $route->template_aliases[$element]; } $component_chain = $request->get_component_chain(); foreach ($component_chain as $component) { $element_content = $component->get_template_contents($element); if (is_null($element_content)) { // This component didn't provide the necessary element, go to next one in stack continue; } if (!$handle_includes) { return $element_content; } // Replace instances of <mgd:include>elementname</mgd:include> with contents of the element return preg_replace_callback("%<mgd:include[^>]*>([a-zA-Z0-9_-]+)</mgd:include>%", array($this, 'get_element_callback'), $element_content); } throw new OutOfBoundsException("Element {$element} not found in Midgard MVC component chain."); }
private function data_to_request(midgardmvc_core_request $request, array $data) { $components = $request->get_component_chain(); foreach ($components as $component) { $request->set_data_item($component->name, $data); } $request->set_data_item('current_component', $data); // Set other request data from route $route = $request->get_route(); $request->set_data_item('mimetype', $route->mimetype); }