function opigno_learning_path_get_step_list_aside in Opigno Learning path 8
Same name and namespace in other branches
- 3.x opigno_learning_path.module \opigno_learning_path_get_step_list_aside()
Returns step list for page aside area.
1 call to opigno_learning_path_get_step_list_aside()
- opigno_learning_path_preprocess_region in ./
opigno_learning_path.module - Implements hook_preprocess_region().
File
- ./
opigno_learning_path.module, line 826 - Contains opigno_learning_path.module.
Code
function opigno_learning_path_get_step_list_aside() {
$group_type = opigno_learning_path_get_group_type();
$steps = [];
$route = \Drupal::routeMatch();
if (($entity = $route
->getParameter('group')) !== NULL) {
/** @var \Drupal\group\Entity\GroupInterface $entity */
$args = [
'group' => $entity
->id(),
];
$home_link = [
'#type' => 'container',
'#attributes' => [
'class' => [
'mb-3',
],
],
'link' => Link::createFromRoute(Markup::create('<i class="icon-home"></i>' . t('Home')), 'entity.group.canonical', $args, [
'attributes' => [
'class' => [
'btn',
'btn-primary',
'btn-home',
'w-100',
],
],
])
->toRenderable(),
];
$description_link = Link::createFromRoute(t('Description'), 'entity.group.edit_form', $args)
->toRenderable();
$lp_manager_link = Link::createFromRoute(t('Learning Path Manager'), 'opigno_group_manager.manager.index', $args)
->toRenderable();
$modules_link = Link::createFromRoute(t('Modules'), 'opigno_learning_path.learning_path_courses', $args)
->toRenderable();
$activities_link = Link::createFromRoute(t('Activities'), 'opigno_learning_path.learning_path_modules', $args)
->toRenderable();
$members_link = Link::createFromRoute(t('Members'), 'opigno_learning_path.membership.overview', $args)
->toRenderable();
}
elseif (($entity = $route
->getParameter('opigno_module')) !== NULL) {
/** @var \Drupal\opigno_module\Entity\OpignoModule $entity */
$args = [
'opigno_module' => $entity
->id(),
];
$description_link = Link::createFromRoute(t('Description'), 'opigno_module.edit', $args)
->toRenderable();
$activities_link = Link::createFromRoute(t('Activities'), 'opigno_module.modules', $args)
->toRenderable();
$activities_bank_link = Link::createFromRoute(t('Activities bank'), 'opigno_module.activities_bank', $args)
->toRenderable();
$home_link = [];
$lp_manager_link = [];
$modules_link = [];
$members_link = [];
}
else {
$description_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Description'),
];
$lp_manager_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Learning Path Manager'),
];
$modules_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Modules'),
];
$activities_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Activities'),
];
$activities_bank_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Activities bank'),
];
$members_link = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => t('Members'),
];
$home_link = [];
}
if ($group_type === 'learning_path') {
$steps = [
1 => $description_link,
2 => $lp_manager_link,
3 => $modules_link,
4 => $activities_link,
5 => $members_link,
];
$user = \Drupal::currentUser();
/** @var \Drupal\group\Entity\Group $group */
$group = $route
->getParameter('group');
if (isset($group) && !$group
->access('update', $user)) {
unset($steps[1]);
unset($steps[2]);
unset($steps[3]);
unset($steps[4]);
}
if (isset($group) && !$group
->access('administer members', $user)) {
unset($steps[5]);
}
}
elseif ($group_type == 'opigno_course') {
$steps = [
1 => $description_link,
2 => $modules_link,
3 => $activities_link,
];
}
elseif ($group_type == 'opigno_module') {
$steps = [
1 => $description_link,
2 => $activities_link,
3 => $activities_bank_link,
];
}
elseif ($group_type == 'opigno_class') {
$steps = [
1 => $description_link,
2 => $members_link,
];
}
$current_step = opigno_learning_path_get_current_step();
if (isset($steps[$current_step])) {
$steps[$current_step]['#wrapper_attributes']['class'][] = 'active';
}
return [
'#type' => 'container',
'home_link' => $home_link,
[
'#type' => 'container',
'#attributes' => [
'class' => [
'step-list-aside-wrapper',
],
],
[
'#type' => 'html_tag',
'#tag' => 'h2',
'#value' => t('Manage'),
],
[
'#theme' => 'item_list',
'#list_type' => 'ul',
'#items' => $steps,
'#attributes' => [
'class' => 'list-unstyled step-list-aside',
],
],
],
];
}