diff --git a/plugin/migrationmoodle/admin.php b/plugin/migrationmoodle/admin.php index 1bca7a1195..7f372e1427 100644 --- a/plugin/migrationmoodle/admin.php +++ b/plugin/migrationmoodle/admin.php @@ -16,115 +16,59 @@ if ('true' != $plugin->get('active')) { } $menu = [ - 1 => [ - //'action' => 'users', - 'action' => 'efc_users', - 'parent' => 0, - ], - 2 => [ - 'action' => 'course_categories', - 'parent' => 0, - ], - 3 => [ - //'action' => 'courses', - 'action' => 'efc_courses', - 'parent' => 0, - ], - 4 => [ - 'action' => 'course_sections', - 'parent' => 3, - ], - 5 => [ - 'action' => 'course_modules_lesson', - 'parent' => 4, - ], - 6 => [ - 'action' => 'course_modules_quiz', - 'parent' => 4, - ], - 7 => [ - 'action' => 'lesson_pages', - 'parent' => 5, - ], - 8 => [ - 'action' => 'lesson_pages_document', - 'parent' => 7, - ], - 9 => [ - 'action' => 'files_for_lesson_pages', - 'parent' => 8, - ], - 10 => [ - 'action' => 'lesson_pages_quiz', - 'parent' => 7, - ], - 11 => [ - 'action' => 'lesson_pages_quiz_question', - 'parent' => 10, - ], - 12 => [ - 'action' => 'lesson_answers_true_false', - 'parent' => 11, - ], - 13 => [ - 'action' => 'lesson_answers_multiple_choice', - 'parent' => 11, - ], - 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, + '_' => [ + //'users', + 'efc_users', + 'course_categories', + //'courses', + 'efc_courses', + 'role_assignments', + ], + 'efc_courses' => [ + 'course_sections', + 'course_modules_scorm', + ], + 'course_sections' => [ + 'course_modules_lesson', + 'course_modules_quiz', + 'c_quiz', + ], + 'course_modules_lesson' => [ + 'lesson_pages', + ], + 'lesson_pages' => [ + 'lesson_pages_document', + 'lesson_pages_quiz', + ], + 'lesson_pages_document' => [ + 'files_for_lesson_pages', + ], + 'lesson_pages_quiz' => [ + 'lesson_pages_quiz_question', + 'files_for_lesson_answers', + ], + 'lesson_pages_quiz_question' => [ + 'lesson_answers_true_false', + 'lesson_answers_multiple_choice', + 'lesson_answers_multiple_answer', + 'lesson_answers_matching', + 'lesson_answers_essay', + 'lesson_answers_short_answer', + ], + 'course_modules_quiz' => [ + 'quizzes', + ], + 'quizzes' => [ + 'files_for_quizzes', + 'question_categories', + ], + 'question_categories' => [ + 'questions', + ], + 'questions' => [ + 'question_multi_choice_single', + 'question_multi_choice_multiple', + 'questions_true_false', ], ]; @@ -132,7 +76,7 @@ Display::display_header($plugin->get_title()); echo '
'; echo '
'; -echo displayMenu($menu); +echo displayMenu(); echo '
'; echo '
'; @@ -159,36 +103,32 @@ echo '
'; Display::display_footer(); /** - * @param array $menu - * @param int $parent + * @param string $parent * * @return string */ -function displayMenu(array $menu, $parent = 0) { - /** @var MigrationMoodlePlugin $plugin */ - $plugin = $GLOBALS['plugin']; - - $items = array_filter( - $menu, - function ($item) use ($parent) { - return $item['parent'] == $parent; - } - ); +function displayMenu($parent = '_') { + $plugin = MigrationMoodlePlugin::create(); + $menu = $GLOBALS['menu']; + + $items = $menu[$parent]; $baseUrl = api_get_self()."?action="; $html = '
    '; - foreach ($items as $key => $item) { - $title = api_underscore_to_camel_case($item['action']); + foreach ($items as $item) { + $title = api_underscore_to_camel_case($item); $html .= '
  1. '; $html .= Display::url( $plugin->get_lang($title.'Task'), - $baseUrl.$item['action'] + $baseUrl.$item ); - $html .= displayMenu($menu, $key); + if (isset($menu[$item])) { + $html .= displayMenu($item); + } $html .= '
  2. '; } @@ -205,8 +145,8 @@ function displayMenu(array $menu, $parent = 0) { * @return bool */ function isAllowedAction($action, array $menu) { - foreach ($menu as $item) { - if ($item['action'] == $action) { + foreach ($menu as $items) { + if (in_array($action, $items)) { return true; } }