Add functions needed to process the LP table

See:  6efc436afa
pull/2487/head
Julio 7 years ago
parent 2101ef5229
commit e8ced63eb5
  1. 139
      main/lp/learnpath.class.php

@ -3147,6 +3147,145 @@ class learnpath
);
}
/**
* Uses the table generated by get_toc() and returns an HTML-formattedstring ready to display
* @return string HTML TOC ready to display
*/
public function getParentToc($tree)
{
if ($this->debug > 0) {
error_log('In learnpath::get_html_toc()', 0);
}
if (empty($tree)) {
$tree = $this->get_toc();
}
$dirTypes = self::getChapterTypes();
$myCurrentId = $this->get_current_item_id();
$listParent = [];
$listChildren = [];
$listNotParent = [];
$list = [];
foreach ($tree as $subtree) {
if (in_array($subtree['type'], $dirTypes)){
$listChildren = $this->getChildrenToc($tree, $subtree['id']);
$subtree['children'] = $listChildren;
if (!empty($subtree['children'])) {
foreach ($subtree['children'] as $subItem) {
if ($subItem['id'] == $this->current) {
$subtree['parent_current'] = 'in';
$subtree['current'] = 'on';
}
}
}
$listParent[] = $subtree;
}
if (!in_array($subtree['type'], $dirTypes) && $subtree['parent'] == null ) {
$classStatus = [
'not attempted' => 'scorm_not_attempted',
'incomplete' => 'scorm_not_attempted',
'failed' => 'scorm_failed',
'completed' => 'scorm_completed',
'passed' => 'scorm_completed',
'succeeded' => 'scorm_completed',
'browsed' => 'scorm_completed',
];
if (isset($classStatus[$subtree['status']])) {
$cssStatus = $classStatus[$subtree['status']];
}
$title = Security::remove_XSS($subtree['title']);
unset($subtree['title']);
if (empty ($title)) {
$title = self::rl_get_resource_name(api_get_course_id(), $this->get_id(), $subtree['id']);
}
$classStyle = null;
if ($subtree['id'] == $this->current) {
$classStyle = 'scorm_item_normal '. $classStyle . 'scorm_highlight';
} elseif (!in_array($subtree['type'], $dirTypes)) {
$classStyle = 'scorm_item_normal '. $classStyle . ' ';
}
$subtree['title'] = $title;
$subtree['class'] = $cssStatus . ' ' .$classStyle;
$subtree['url'] = $this->get_link('http', $subtree['id'], $tree);
$subtree['current_id'] = $myCurrentId;
$listNotParent[] = $subtree;
}
}
$list['are_parents'] = $listParent;
$list['not_parents'] = $listNotParent;
return $list;
}
/**
* Uses the table generated by get_toc() and returns an HTML-formattedstring ready to display
* @return string HTML TOC ready to display
*/
public function getChildrenToc($tree, $id, $parent = true)
{
if ($this->debug > 0) {
error_log('In learnpath::get_html_toc()', 0);
}
if (empty($tree)) {
$tree = $this->get_toc();
}
$dirTypes = self::getChapterTypes();
$mycurrentitemid = $this->get_current_item_id();
$list = [];
$classStatus = [
'not attempted' => 'scorm_not_attempted',
'incomplete' => 'scorm_not_attempted',
'failed' => 'scorm_failed',
'completed' => 'scorm_completed',
'passed' => 'scorm_completed',
'succeeded' => 'scorm_completed',
'browsed' => 'scorm_completed',
];
foreach ($tree as $subtree) {
$subtree['tree'] = null;
if (!in_array($subtree['type'], $dirTypes) && $subtree['parent'] == $id ) {
if ($subtree['id'] == $this->current) {
$subtree['current'] = 'active';
} else {
$subtree['current'] = null;
}
if (isset($classStatus[$subtree['status']])) {
$cssStatus = $classStatus[$subtree['status']];
}
$title = Security::remove_XSS($subtree['title']);
unset($subtree['title']);
if (empty ($title)) {
$title = self::rl_get_resource_name(api_get_course_id(), $this->get_id(), $subtree['id']);
}
$classStyle = null;
if ($subtree['id'] == $this->current) {
$classStyle = 'scorm_item_normal '. $classStyle . 'scorm_highlight';
} elseif (!in_array($subtree['type'], $dirTypes)) {
$classStyle = 'scorm_item_normal '. $classStyle . ' ';
}
if (in_array($subtree['type'], $dirTypes)) {
$subtree['title'] = stripslashes($title);
} else {
$subtree['title'] = $title;
$subtree['class'] = $cssStatus . ' ' .$classStyle;
$subtree['url'] = $this->get_link('http', $subtree['id'], $tree);
$subtree['current_id'] = $mycurrentitemid;
}
$list[] = $subtree;
}
}
return $list;
}
/**
* Uses the table generated by get_toc() and returns an HTML-formatted string ready to display
* @param array $toc_list

Loading…
Cancel
Save