/** * Index of the question manager * @param Application $app * @return Response * */ public function questionsAction(Application $app) { $extraJS = array(); //@todo improve this JS includes should be added using twig $extraJS[] = api_get_jqgrid_js(); $app['extraJS'] = $extraJS; // Getting CQuizCategory repo. /** @var \Gedmo\Tree\Entity\Repository\NestedTreeRepository $repo */ $repo = $app['orm.em']->getRepository('Entity\\CQuizCategory'); $categoryId = $app['request']->get('categoryId'); $subtree = null; if (isset($categoryId)) { //$repo->getChildrenQueryBuilder(); // Insert node. /* $options = array( 'decorate' => true, 'rootOpen' => '<ul class="nav nav-list">', 'rootClose' => '</ul>', 'childOpen' => '<li>', 'childClose' => '</li>' ); $node = $repo->find($categoryId); $qb = $repo->getChildrenQueryBuilder($node, true, 'title', 'ASC', true); $query = $qb->getQuery(); $subtree = $repo->buildTree($query->getArrayResult(), $options); var_dump($subtree);*/ } $options = array('decorate' => true, 'rootOpen' => '<ul class="nav nav-list">', 'rootClose' => '</ul>', 'childOpen' => '<li>', 'childClose' => '</li>', 'nodeDecorator' => function ($row) use($app, $categoryId, $subtree) { $url = $app['url_generator']->generate('admin_questions_get_categories', array('id' => $row['iid'])); $title = $row['title']; $url = \Display::url($title, $url, array('id' => $row['iid'])); if ($row['iid'] == $categoryId) { $url .= $subtree; } return $url; }); // Getting all categories only first level lvl=1 /** @var \Doctrine\ORM\QueryBuilder $qb */ $qb = $app['orm.em']->createQueryBuilder()->select('node')->from('Entity\\CQuizCategory', 'node')->where('node.cId <> 0 AND node.lvl = 0')->orderBy('node.root, node.lft', 'ASC'); //$node = null, $direct = false, $sortByField = null, $direction = 'ASC', $includeNode = false //$qb = $repo->getChildrenQueryBuilder(null, true, 'title', 'ASC', true); $query = $qb->getQuery(); $tree = $repo->buildTree($query->getArrayResult(), $options); $app['template']->assign('category_tree', $tree); // Getting globals $query = $app['orm.em']->createQueryBuilder()->select('node')->from('Entity\\CQuizCategory', 'node')->where('node.cId = 0 AND node.lvl = 0')->orderBy('node.root, node.lft', 'ASC')->getQuery(); $tree = $repo->buildTree($query->getArrayResult(), $options); $app['template']->assign('global_category_tree', $tree); $response = $app['template']->render_template('admin/questionmanager/question_categories.tpl'); return new Response($response, 200, array()); }
<?php /* For licensing terms, see /license.txt */ /** * Sessions reporting * @package chamilo.reporting */ ob_start(); $cidReset = true; //quire_once '../inc/global.inc.php'; api_block_anonymous_users(); $this_section = SECTION_TRACKING; api_block_anonymous_users(); $htmlHeadXtra[] = api_get_jqgrid_js(); $interbreadcrumb[] = array("url" => "index.php", "name" => get_lang('MySpace')); Display::display_header(get_lang('Sessions')); $export_csv = false; if (isset($_GET['export']) && $_GET['export'] == 'csv') { $export_csv = true; } /* MAIN CODE */ if (isset($_GET['id_coach']) && $_GET['id_coach'] != '') { $id_coach = intval($_GET['id_coach']); } else { $id_coach = api_get_user_id(); } if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) { $a_sessions = SessionManager::get_sessions_followed_by_drh(api_get_user_id()); if (!api_is_session_admin()) { $menu_items[] = Display::url(Display::return_icon('stats.png', get_lang('MyStats'), '', ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH) . "auth/my_progress.php"); $menu_items[] = Display::url(Display::return_icon('user.png', get_lang('Students'), array(), ICON_SIZE_MEDIUM), "index.php?view=drh_students&display=yourstudents");
/** * @param Application $app * @param string $cidReq * @param int $exerciseId * @return Response */ public function questionPoolAction(Application $app, $cidReq = null, $exerciseId = null) { $extraJS = array(); //@todo improve this JS includes should be added using twig $extraJS[] = api_get_jqgrid_js(); $app['extraJS'] = $extraJS; // @todo this should be auto if (empty($exerciseId)) { $breadcrumbs = array(array('name' => get_lang('Exercise'), 'url' => array('uri' => api_get_path(WEB_CODE_PATH) . 'exercice/exercice.php?' . api_get_cidreq())), array('name' => get_lang('QuestionPool'), 'url' => array('route' => 'exercise_question_pool_global', 'routeParameters' => array('cidReq' => api_get_course_id(), 'id_session' => api_get_session_id())))); } else { $breadcrumbs = array(array('name' => get_lang('Exercise'), 'url' => array('uri' => api_get_path(WEB_CODE_PATH) . 'exercice/admin.php?' . api_get_cidreq() . '&exerciseId=' . $exerciseId)), array('name' => get_lang('QuestionPool'), 'url' => array('route' => 'exercise_question_pool', 'routeParameters' => array('cidReq' => api_get_course_id(), 'id_session' => api_get_session_id(), 'exerciseId' => $exerciseId)))); } $this->setBreadcrumb($app, $breadcrumbs); $questionColumns = \Question::getQuestionColumns($cidReq); $columnModel = $questionColumns['column_model']; $columns = $questionColumns['columns']; $rules = $questionColumns['rules']; $grid = \Display::grid_html('questions'); // jqgrid will use this URL to do the selects $extraConditions = null; if (!empty($cidReq)) { $extraConditions = "courseId=" . api_get_course_int_id(); } if (!empty($exerciseId)) { $extraConditions .= "&exerciseId=" . $exerciseId; } $url = $app['url_generator']->generate('model_ajax') . '?a=get_questions&' . $extraConditions; $extraParams['postData'] = array('filters' => array("groupOp" => "AND", "rules" => $rules)); // Auto-width. $extraParams['autowidth'] = 'true'; // Height auto. $extraParams['height'] = 'auto'; $token = null; $js = \Display::grid_js('questions', $url, $columns, $columnModel, $extraParams, array(), null, true); $app['template']->assign('grid', $grid); $app['template']->assign('js', $js); $response = $app['template']->render_template('exercise/question_pool.tpl'); return new Response($response, 200, array()); }