get('active')) {
api_not_allowed(true);
}
$menu = [
[
'users',
'Users',
[],
],
[
'course_categories',
'Course categories',
[],
],
[
'courses',
'Courses',
[
[
'learning_paths',
'Learning paths',
[
[
'learning_path_chapters',
'Sections',
[
[
'learning_path_items',
'Items',
[
[
'learning_path_documents',
'Documents',
[
[
'learning_path_documents_files',
'Document files',
[],
],
],
],
[
'learning_path_quizzes',
'Quizzes',
[
[
'learnin_path_quiz_questions',
'Questions',
[
[
'learnin_path_quiz_answers_true_false',
'Answers for True-False questions',
[]
],
[
'learnin_path_quiz_answers_multiple_choice',
'Answers for Multiple Choice questions',
[]
],
[
'learnin_path_quiz_answers_multiple_answer',
'Answers for Multiple Answers questions',
[]
],
[
'learnin_path_quiz_answers_matching',
'Answers for Matching questions',
[]
],
[
'learnin_path_quiz_answers_essay',
'Answers for Essay questions',
[]
],
[
'learnin_path_quiz_answers_short_answer',
'Answers for Short-Answer and Numerical questions',
[]
]
],
],
[
'files_for_lesson_answers',
'Files for answers',
[],
],
],
],
],
],
],
],
[
'course_modules_quiz',
'Items quizzes',
[]
]
],
],
[
'quizzes',
'Quizzes',
[],
],
],
],
[
'course_users',
'Subcribe users to courses',
[],
],
];
Display::display_header($plugin->get_title());
echo '
';
echo '
';
echo displayMenu($menu);
echo '
';
echo '
';
if (!empty($action)) {
echo Display::page_subheader(
getActionTitle($menu, $action)
);
/** @var BaseTask|null $task */
$task = null;
switch ($action) {
case 'users':
$task = new UsersTask();
break;
case 'course_categories':
$task = new CourseCategoriesTask();
break;
case 'courses':
$task = new CoursesTask();
break;
case 'course_users':
$task = new RoleAssignmentsTask();
break;
case 'quizzes':
$task = new CQuizTask();
break;
case 'learning_paths':
$task = new CourseSectionsTask();
break;
case 'learning_path_chapters':
$task = new CourseModulesLessonTask();
break;
case 'learning_path_items':
$task = new LessonPagesTask();
break;
case 'learning_path_documents':
$task = new LessonPagesDocumentTask();
break;
case 'learning_path_documents_files':
$task = new FilesForLessonPagesTask();
break;
case 'learning_path_quizzes':
$task = new LessonQuestionPagesQuizTask();
break;
case 'learnin_path_quiz_questions':
$task = new LessonQuestionPagesQuestionTask();
break;
case 'learnin_path_quiz_answers_true_false':
$task = new LessonAnswersTrueFalseTask();
break;
case 'learnin_path_quiz_answers_multiple_choice':
$task = new LessonAnswersMultipleChoiceTask();
break;
case 'learnin_path_quiz_answers_multiple_answer':
$task = new LessonAnswersMultipleAnswerTask();
break;
case 'learnin_path_quiz_answers_matching':
$task = new LessonAnswersMatchingTask();
break;
case 'learnin_path_quiz_answers_essay':
$task = new LessonAnswersEssayTask();
break;
case 'learnin_path_quiz_answers_short_answer':
$task = new LessonAnswersShortAnswerTask();
break;
case 'files_for_lesson_answers':
$task = new FilesForLessonAnswersTask();
break;
case 'course_modules_quiz':
$task = new CourseModulesQuizTask();
break;
}
if ($task) {
$task->execute();
}
}
echo '
';
echo '
';
Display::display_footer();
/**
* @param array $menu
*
* @return string
*/
function displayMenu(array $menu)
{
$baseUrl = api_get_self()."?action=";
$html = '';
foreach ($menu as $item) {
list($action, $title, $subMenu) = $item;
$html .= '- ';
$html .= Display::url(
$title,
$baseUrl.$action
);
if ($subMenu) {
$html .= displayMenu($subMenu);
}
$html .= '
';
}
$html .= '
';
return $html;
}
/**
* @param array $menu
* @param string $action
*
* @return string
*/
function getActionTitle(array $menu, $action)
{
$flag = false;
$title = '';
array_walk_recursive(
$menu,
function ($value, $key) use ($action, &$flag, &$title) {
if ($flag) {
$title = $value;
}
$flag = false;
if (0 == $key && $value == $action) {
$flag = true;
}
}
);
return $title;
}