MigrationMoodle: Improve admin menu - refs BT#15992

pull/3127/head
Angel Fernando Quiroz Campos 6 years ago
parent b0761b03b9
commit 7c338d3c44
  1. 196
      plugin/migrationmoodle/admin.php

@ -16,115 +16,59 @@ if ('true' != $plugin->get('active')) {
} }
$menu = [ $menu = [
1 => [ '_' => [
//'action' => 'users', //'users',
'action' => 'efc_users', 'efc_users',
'parent' => 0, 'course_categories',
], //'courses',
2 => [ 'efc_courses',
'action' => 'course_categories', 'role_assignments',
'parent' => 0, ],
], 'efc_courses' => [
3 => [ 'course_sections',
//'action' => 'courses', 'course_modules_scorm',
'action' => 'efc_courses', ],
'parent' => 0, 'course_sections' => [
], 'course_modules_lesson',
4 => [ 'course_modules_quiz',
'action' => 'course_sections', 'c_quiz',
'parent' => 3, ],
], 'course_modules_lesson' => [
5 => [ 'lesson_pages',
'action' => 'course_modules_lesson', ],
'parent' => 4, 'lesson_pages' => [
], 'lesson_pages_document',
6 => [ 'lesson_pages_quiz',
'action' => 'course_modules_quiz', ],
'parent' => 4, 'lesson_pages_document' => [
], 'files_for_lesson_pages',
7 => [ ],
'action' => 'lesson_pages', 'lesson_pages_quiz' => [
'parent' => 5, 'lesson_pages_quiz_question',
], 'files_for_lesson_answers',
8 => [ ],
'action' => 'lesson_pages_document', 'lesson_pages_quiz_question' => [
'parent' => 7, 'lesson_answers_true_false',
], 'lesson_answers_multiple_choice',
9 => [ 'lesson_answers_multiple_answer',
'action' => 'files_for_lesson_pages', 'lesson_answers_matching',
'parent' => 8, 'lesson_answers_essay',
], 'lesson_answers_short_answer',
10 => [ ],
'action' => 'lesson_pages_quiz', 'course_modules_quiz' => [
'parent' => 7, 'quizzes',
], ],
11 => [ 'quizzes' => [
'action' => 'lesson_pages_quiz_question', 'files_for_quizzes',
'parent' => 10, 'question_categories',
], ],
12 => [ 'question_categories' => [
'action' => 'lesson_answers_true_false', 'questions',
'parent' => 11, ],
], 'questions' => [
13 => [ 'question_multi_choice_single',
'action' => 'lesson_answers_multiple_choice', 'question_multi_choice_multiple',
'parent' => 11, 'questions_true_false',
],
14 => [
'action' => 'lesson_answers_multiple_answer',
'parent' => 11,
],
15 => [
'action' => 'lesson_answers_matching',
'parent' => 11,
],
16 => [
'action' => 'lesson_answers_essay',
'parent' => 11,
],
17 => [
'action' => 'lesson_answers_short_answer',
'parent' => 11,
],
18 => [
'action' => 'files_for_lesson_answers',
'parent' => 10,
],
19 => [
'action' => 'c_quiz',
'parent' => 4,
],
20 => [
'action' => 'role_assignments',
'parent' => 0,
],
21 => [
'action' => 'quizzes',
'parent' => 6,
],
22 => [
'action' => 'files_for_quizzes',
'parent' => 21,
],
23 => [
'action' => 'question_categories',
'parent' => 21,
],
24 => [
'action' => 'questions',
'parent' => 21,
],
25 => [
'action' => 'question_multi_choice_single',
'parent' => 24,
],
26 => [
'action' => 'question_multi_choice_multiple',
'parent' => 24,
],
27 => [
'action' => 'questions_true_false',
'parent' => 24,
], ],
]; ];
@ -132,7 +76,7 @@ Display::display_header($plugin->get_title());
echo '<div class="row">'; echo '<div class="row">';
echo '<div class="col-sm-6">'; echo '<div class="col-sm-6">';
echo displayMenu($menu); echo displayMenu();
echo '</div>'; echo '</div>';
echo '<div class="col-sm-6">'; echo '<div class="col-sm-6">';
@ -159,36 +103,32 @@ echo '</div>';
Display::display_footer(); Display::display_footer();
/** /**
* @param array $menu * @param string $parent
* @param int $parent
* *
* @return string * @return string
*/ */
function displayMenu(array $menu, $parent = 0) { function displayMenu($parent = '_') {
/** @var MigrationMoodlePlugin $plugin */ $plugin = MigrationMoodlePlugin::create();
$plugin = $GLOBALS['plugin']; $menu = $GLOBALS['menu'];
$items = array_filter( $items = $menu[$parent];
$menu,
function ($item) use ($parent) {
return $item['parent'] == $parent;
}
);
$baseUrl = api_get_self()."?action="; $baseUrl = api_get_self()."?action=";
$html = '<ol>'; $html = '<ol>';
foreach ($items as $key => $item) { foreach ($items as $item) {
$title = api_underscore_to_camel_case($item['action']); $title = api_underscore_to_camel_case($item);
$html .= '<li>'; $html .= '<li>';
$html .= Display::url( $html .= Display::url(
$plugin->get_lang($title.'Task'), $plugin->get_lang($title.'Task'),
$baseUrl.$item['action'] $baseUrl.$item
); );
$html .= displayMenu($menu, $key); if (isset($menu[$item])) {
$html .= displayMenu($item);
}
$html .= '</li>'; $html .= '</li>';
} }
@ -205,8 +145,8 @@ function displayMenu(array $menu, $parent = 0) {
* @return bool * @return bool
*/ */
function isAllowedAction($action, array $menu) { function isAllowedAction($action, array $menu) {
foreach ($menu as $item) { foreach ($menu as $items) {
if ($item['action'] == $action) { if (in_array($action, $items)) {
return true; return true;
} }
} }

Loading…
Cancel
Save