Course - Add dependence button in catalogue course searching - refs BT#20314

pull/4484/head
Christian 3 years ago
parent 86d7590c25
commit 075ee40cda
  1. 62
      main/inc/lib/CoursesAndSessionsCatalog.class.php

@ -1154,13 +1154,65 @@ class CoursesAndSessionsCatalog
$action = 'subscribe_course_validation';
}
return Display::url(
Display::returnFontAwesomeIcon('check').PHP_EOL.$title,
api_get_path(WEB_CODE_PATH).'auth/courses.php'
$em = Database::getManager();
/** @var SequenceResourceRepository $sequenceResourceRepo */
$sequenceResourceRepo = $em->getRepository('ChamiloCoreBundle:SequenceResource');
$requirements = $sequenceResourceRepo->getRequirements(
$course['real_id'],
SequenceResource::COURSE_TYPE
);
$hasRequirements = false;
foreach ($requirements as $sequence) {
if (!empty($sequence['requirements'])) {
$hasRequirements = true;
break;
}
}
$allowSubscribe = true;
$reqSubscribeBlock = '';
$btnSubscribe = '';
if ($hasRequirements) {
$sequenceList = $sequenceResourceRepo->checkRequirementsForUser($requirements, SequenceResource::COURSE_TYPE, api_get_user_id());
$allowSubscribe = $sequenceResourceRepo->checkSequenceAreCompleted($sequenceList);
$btnReqSubscribe = CoursesAndSessionsCatalog::getRequirements(
$course['real_id'],
SequenceResource::COURSE_TYPE,
true,
true
);
$reqSubscribeBlock = '<div class="session-requirements2">
<h5>'.get_lang('RequiredCourses').'</h5>
<p>'.$btnReqSubscribe.'</p>';
$seq = '';
foreach ($requirements as $sequence) {
if (!empty($sequence['requirements'])) {
$seq .= $sequence['name'].':';
foreach ($sequence['requirements'] as $req) {
$seq .= '<a href="'.api_get_path(WEB_PATH).'course/'.$req->getId().'/about/">'.$req->getTitle().'</a>';
}
}
}
$reqSubscribeBlock .= '<p>'.$seq.'</p>';
$reqSubscribeBlock .= '</div>';
}
if ($allowSubscribe) {
$btnSubscribe = Display::url(
Display::returnFontAwesomeIcon('check').PHP_EOL.$title,
api_get_path(WEB_CODE_PATH).'auth/courses.php'
.'?action='.$action.'&sec_token='.$stok
.'&course_code='.$course['code'].'&search_term='.$search_term.'&category_code='.$categoryCode,
['class' => 'btn btn-success btn-sm', 'title' => $title, 'aria-label' => $title]
);
['class' => 'btn btn-success btn-sm', 'title' => $title, 'aria-label' => $title]
);
} else {
$btnSubscribe = Display::url(
Display::returnFontAwesomeIcon('check').PHP_EOL.$title,
'#',
['class' => 'btn btn-default btn-sm', 'title' => $title, 'aria-label' => $title, 'disabled' => true]
);
}
return $reqSubscribeBlock.$btnSubscribe;
}
/**

Loading…
Cancel
Save