* @version $Id$
* @access public
* @license http://opensource.org/licenses/gpl-3.0.html
*/
include_once(override('../level/'.SQL.'.inc.php'));
include_once('../class/class.level.php');
if(!function_exists('getLevelParent')) {
/**
* getLevelParent()
* For a given level, return parent with the given $depth ($wanteddepth)
* if passed else return the last parent
*
* @param array $data
* @param integer $id
* @param integer $currentdepth
* @param integer $wanteddepth
*/
function getLevelParent($data, $id, $currentdepth, $wanteddepth = 9) {
foreach ($data as $item) {
if($item['level_id'] == $id) {
$current_id = $item['level_id'];
$parent_id = $item['level_parent'];
$current_label = '' .formatText( $item['level_label'], '2HTML'). ' : ';
$current_name = formatText($item['level_name'], '2HTML');
$current_longname = $current_label . $current_name;
$a = array('id' => $current_id, 'label' => $item['level_label'], 'name' => $item['level_name'], 'range' => $item['level_range'],
'code'=> $item['level_code'], 'main_desc' => $item['level_desc_project'], 'longname' => $current_longname, 'depth' => $currentdepth);
if($parent_id == 0 && $currentdepth !=0) {
return $a;
}
else {
if($currentdepth == $wanteddepth) {
return $a;
} else {
return getLevelParent($data, $parent_id, $currentdepth+1, $wanteddepth);
}
}
}
}
return false;
}
}
if(!function_exists('getLevelDepth')) {
/**
* getLevelDepth()
* For a given level, return $depth (start from 0)
* @param array $data
* @param integer $id
* @param integer $currentdepth
*/
function getLevelDepth($data, $id, $currentdepth) {
foreach ($data as $item) {
if($item['level_id'] == $id) {
$parent_id = $item['level_parent'];
if($parent_id == 0) {
return $currentdepth;
}
else {
return getLevelDepth($data, $parent_id, $currentdepth+1);
}
}
}
}
}
if(!function_exists('getLevelParents')) {
/**
* getLevelParents()
* For a given level, return all parents
*
* @param array $data
* @param integer $id
* @param array $parents
*/
function getLevelParents($data, $id, $parents = array()) {
foreach ($data as $item) {
if($item['level_id'] == $id) {
$parents[] = $item;
// echo '.getLevelParents : '.$item['level_id']. ' - ' .$item['level_parent'].'
';
if($item['level_parent'] == 0) return $parents;
$parents = getLevelParents($data, $item['level_parent'], $parents);
}
}
return $parents;
}
}
// @todo not used
// to remove or not ?
// if(!function_exists('getLevelChildren')) {
// /**
// * getLevelChildren()
// * For a given level, return all children
// *
// * @param array $data
// * @param integer $id
// * @param array $children
// */
// function getLevelChildren($data, $id, $children = array()) {
// foreach ($data as $item) {
// if($item['level_parent'] == $id) {
// $children[] = $item;
// echo '.getLevelChildren : '.$item['level_id']. ' - ' .$item['level_parent'].'
';
// $children = getLevelChildren($data, $item['level_id'], $children);
// }
// }
// echo "