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 = [
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 '<div class="row">';
echo '<div class="col-sm-6">';
echo displayMenu($menu);
echo displayMenu();
echo '</div>';
echo '<div class="col-sm-6">';
@ -159,36 +103,32 @@ echo '</div>';
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 = '<ol>';
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 .= '<li>';
$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 .= '</li>';
}
@ -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;
}
}

Loading…
Cancel
Save