/** * ReMaps hierarchy levels so they always start from 1 and don't have any gaps. * @param array $data hierarchy_level data * @return array */ function ReMapHierarchyLevels($data) { //Debug::Arr($data, ' aHierarchy Level Data: ', __FILE__, __LINE__, __METHOD__,10); $remapped_levels = HierarchyLevelFactory::ReMapHierarchyLevels($data); //Debug::Arr($remapped_levels, ' ReMapped Levels: ', __FILE__, __LINE__, __METHOD__,10); foreach ($data as $key => $arr) { $data[$key]['level'] = $remapped_levels[$arr['level']]; } Debug::Arr($data, ' ReMapped Hierarchy Level Data: ', __FILE__, __LINE__, __METHOD__, 10); return $this->returnHandler($data); }
$hcf->setName($hierarchy_control_data['name']); $hcf->setDescription($hierarchy_control_data['description']); if ($hcf->isValid()) { $hc_id = $hcf->Save(FALSE); if ($hc_id === TRUE) { $hc_id = $hierarchy_control_data['id']; } Debug::Text('Hierarchy Control ID: ' . $hc_id, __FILE__, __LINE__, __METHOD__, 10); if (isset($hierarchy_control_data['user_ids'])) { $hcf->setUser($hierarchy_control_data['user_ids']); } else { $hcf->setUser(array()); } if (count($hierarchy_level_data) > 0) { //ReMap levels $hierarchy_level_map = $hlf->ReMapHierarchyLevels($hierarchy_level_data); Debug::Arr($hierarchy_level_map, 'Hierarchy Level Map: ', __FILE__, __LINE__, __METHOD__, 10); foreach ($hierarchy_level_data as $hierarchy_level_id => $hierarchy_level) { Debug::Text('Row ID: ' . $hierarchy_level_id . ' Level: ' . $hierarchy_level['level'], __FILE__, __LINE__, __METHOD__, 10); if ($hierarchy_level['level'] != '' and $hierarchy_level['level'] >= 0 and isset($hierarchy_level_map[$hierarchy_level['level']])) { if ($hierarchy_level_id > 0) { $hlf->setID($hierarchy_level_id); } $hlf->setHierarchyControl($hc_id); $hlf->setLevel($hierarchy_level_map[$hierarchy_level['level']]); $hlf->setUser($hierarchy_level['user_id']); if ($hlf->isValid()) { Debug::Text('Saving Level Row ID: ' . $hierarchy_level_id, __FILE__, __LINE__, __METHOD__, 10); $hlf->Save(); } else { $redirect++;