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', [], ], ], ], ], ], [ '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 CourseUsersTask(); break; case 'quizzes': $task = new CQuizTask(); break; case 'learning_paths': $task = new LearningPathsTask(); break; case 'learning_path_chapters': $task = new LpDirsTask(); break; case 'learning_path_items': $task = new LpItemsTask(); break; case 'learning_path_documents': $task = new LpDocumentsTask(); break; case 'learning_path_documents_files': $task = new LpDocumentsFilesTask(); break; case 'learning_path_quizzes': $task = new LpQuizzesTask(); 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 .= '
  1. '; $html .= Display::url( $title, $baseUrl.$action ); if ($subMenu) { $html .= displayMenu($subMenu); } $html .= '
  2. '; } $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; }