private function get_node($node_id) { static $nodes = array(); if (!isset($nodes[$node_id])) { $node = new midgardmvc_core_node(); $node->get_by_id($node_id); $nodes[$node_id] = midgardmvc_core_providers_hierarchy_node_midgard2::get_instance($node); } return $nodes[$node_id]; }
public function get_node_by_component($component) { if (isset(midgardmvc_core_providers_hierarchy_node_midgard2::$nodes_by_component[$component])) { return midgardmvc_core_providers_hierarchy_node_midgard2::$nodes_by_component[$component]; } $qb = new midgard_query_builder('midgardmvc_core_node'); $qb->add_constraint('component', '=', $component); $qb->begin_group('OR'); $qb->add_constraint('up', 'INTREE', self::$root_node_id); $qb->add_constraint('id', '=', self::$root_node_id); $qb->end_group(); $qb->set_limit(1); $nodes = $qb->execute(); if (count($nodes) == 0) { return null; } return midgardmvc_core_providers_hierarchy_node_midgard2::get_instance($nodes[0]); }