Пример #1
0
 public function inject_process(midgardmvc_core_request $request)
 {
     static $connected = false;
     if (!$connected) {
         // Subscribe to content changed signals from Midgard
         midgard_object_class::connect_default('fi_openkeidas_articles_article', 'action-create', array('fi_openkeidas_articles_injector', 'check_node'), array($request));
         $connected = true;
     }
     $component = $request->get_node()->get_component();
     /* Patch out article authorization 200712 */
     /*
             if ($component == 'fi_openkeidas_articles')
             {
                 midgardmvc_core::get_instance()->authorization->require_user();
             }
     */
 }
Пример #2
0
 public function get_routes(midgardmvc_core_request $request)
 {
     $node_is_root = false;
     if ($request->get_node() == midgardmvc_core::get_instance()->hierarchy->get_root_node()) {
         $node_is_root = true;
     }
     if (isset($this->cached_routes[$node_is_root])) {
         return $this->cached_routes[$node_is_root];
     }
     $routes = array();
     if (!isset($this->manifest['routes'])) {
         return $routes;
     }
     foreach ($this->manifest['routes'] as $route_id => $route) {
         if (isset($route['root_only']) && $route['root_only'] && !$node_is_root) {
             // Drop root-only routes from subnodes
             continue;
         }
         if (isset($route['test_only']) && $route['test_only'] && !$request->isset_data_item('test_mode')) {
             // Drop test-only routes when not in unit tests
             continue;
         }
         if (isset($route['subrequest_only']) && $route['subrequest_only'] && !$request->is_subrequest()) {
             // Drop routes that are usable via subrequest only from the main request
             continue;
         }
         // Handle the required route parameters
         if (!isset($route['controller'])) {
             throw new Exception("Route {$route_id} of {$this->name} has no controller defined");
         }
         if (!isset($route['action'])) {
             throw new Exception("Route {$route_id} of {$this->name}  has no action defined");
         }
         if (!isset($route['path'])) {
             throw new Exception("Route {$route_id} of {$this->name}  has no path defined");
         }
         if (!isset($route['template_aliases'])) {
             $route['template_aliases'] = array();
         }
         if (!isset($route['mimetype'])) {
             $route['mimetype'] = 'text/html';
             // $route['mimetype'] = 'application/xhtml+xml';
         }
         $routes[$route_id] = new midgardmvc_core_route($route_id, $route['path'], $route['controller'], $route['action'], $route['template_aliases'], $route['mimetype']);
     }
     $this->cached_routes[$node_is_root] = $routes;
     return $routes;
 }