Merge pull request #214 from baelmyhu/1.9.x

Correct error in learning path padding -ref #6975
1.9.x
Hubert Borderiou 11 years ago
commit 62038af901
  1. 39
      main/newscorm/learnpath.class.php

@ -77,6 +77,25 @@ class learnpath
public $course_int_id;
public $course_info = array();
/**
* Get the depth level of LP item
* @param $in_tab_items
* @param $in_current_item_id
* @return int
*/
private static function get_level_for_item($in_tab_items, $in_current_item_id)
{
$parent_item_id = $in_tab_items[$in_current_item_id]->parent;
if ($parent_item_id == 0) {
return 0;
} else {
return learnpath::get_level_for_item($in_tab_items, $parent_item_id) + 1;
}
}
/**
* Class constructor. Needs a database handler, a course code and a learnpath id from the database.
* Also builds the list of items into $this->items.
@ -280,22 +299,10 @@ class learnpath
break;
}
// Items is a list of pointers to all items, classified by DB ID, not SCO id.
if ($row['parent_item_id'] == 0 || empty ($this->items[$row['parent_item_id']])) {
if (is_object($this->items[$row['id']])) {
$this->items[$row['id']]->set_level(0);
}
} else {
$level = $this->items[$row['parent_item_id']]->get_level() + 1;
$this->items[$row['id']]->set_level($level);
if (is_object($this->items[$row['parent_item_id']])) {
// Items is a list of pointers from item DB ids to item objects.
$this->items[$row['parent_item_id']]->add_child($row['id']);
} else {
if ($this->debug > 2) {
error_log('New LP - learnpath::__construct() ' . __LINE__ . ' - The parent item (' . $row['parent_item_id'] . ') of item ' . $row['id'] . ' could not be found', 0);
}
}
// Setting the object level with variable $this->items[$i][parent]
foreach ($this->items as $itemLPObject) {
$level = learnpath::get_level_for_item($this->items, $itemLPObject->db_id);
$itemLPObject->level = $level;
}
// Setting the view in the item object.

Loading…
Cancel
Save