예제 #1
0
 public function create($data = NULL)
 {
     if (!isset($data['level'])) {
         $data['level'] = 0;
     }
     $entities = $this->_mapper->entities();
     $entity = $entities[$data['level']];
     $my_data = array();
     foreach ($data as $k => $v) {
         if (strstr($k, $entity . '_') == $k) {
             $my_data[str_replace($entity . '_', '', $k)] = $v;
         }
     }
     $my_data['type'] = $entity;
     if (!isset($this->_objects[$my_data['type']][$my_data['id']])) {
         $this->_objects[$my_data['type']][$my_data['id']] = new RM_Gpc_Tree_Entity($my_data);
     }
     if ($data['level'] < count($entities) - 1) {
         $this->_objects[$my_data['type']][$my_data['id']]->addChildren($this->create(array_merge($data, array('level' => ++$data['level']))));
     }
     return $this->_objects[$my_data['type']][$my_data['id']];
 }
예제 #2
0
 /**
  * @see	RM_Gpc_Mapper::entities()
  **/
 public function entities()
 {
     return $this->_mapper->entities();
 }