$category_id = ''; } $simple_search_form = new UserForm(UserForm::TYPE_SIMPLE_SEARCH, null, 'simple_search_form', null, api_get_self() . '?selectcat=' . $category_id); $values = $simple_search_form->exportValues(); $keyword = ''; if (isset($_GET['search']) && !empty($_GET['search'])) { $keyword = Security::remove_XSS($_GET['search']); } if ($simple_search_form->validate() && empty($keyword)) { $keyword = $values['keyword']; } if (!empty($keyword)) { $users = GradebookUtils::find_students($keyword); } else { if (isset($alleval) && isset($alllinks)) { $users = GradebookUtils::get_all_users($alleval, $alllinks); } else { $users = null; } } $offset = isset($_GET['offset']) ? $_GET['offset'] : '0'; $addparams = array('selectcat' => $cat[0]->get_id()); if (isset($_GET['search'])) { $addparams['search'] = $keyword; } // Main course category $mainCourseCategory = Category::load(null, null, api_get_course_id(), null, null, api_get_session_id()); $flatviewtable = new FlatViewTable($cat[0], $users, $alleval, $alllinks, true, $offset, $addparams, $mainCourseCategory[0]); $flatviewtable->setAutoFill(false); $parameters = array('selectcat' => intval($_GET['selectcat'])); $flatviewtable->set_additional_parameters($parameters);
/** * This method return a graph containing information about evaluations * inside courses in sessions, it's used inside get_block method for * showing it inside dashboard interface * @return string img html */ public function get_evaluations_courses_in_sessions_graph() { $graphs = array(); if (!empty($this->sessions)) { $session_ids = array_keys($this->sessions); foreach ($session_ids as $session_id) { $courses_code = array_keys(Tracking::get_courses_list_from_session($session_id)); $courses_graph = array(); foreach ($courses_code as $course_code) { $cats = Category::load(null, null, $course_code, null, null, $session_id); if (isset($cats) && isset($cats[0])) { $alleval = $cats[0]->get_evaluations(null, true, $course_code); $alllinks = $cats[0]->get_links(null, true); $users = GradebookUtils::get_all_users($alleval, $alllinks); $datagen = new FlatViewDataGenerator($users, $alleval, $alllinks); $evaluation_sumary = $datagen->get_evaluation_sumary_results(); if (!empty($evaluation_sumary)) { $items = array_keys($evaluation_sumary); $max = $min = $avg = array(); foreach ($evaluation_sumary as $evaluation) { $max[] = $evaluation['max']; $min[] = $evaluation['min']; $avg[] = $evaluation['avg']; } // Dataset definition $dataSet = new pData(); $dataSet->addPoints($min, 'Serie3'); $dataSet->addPoints($avg, 'Serie2'); $dataSet->addPoints($max, 'Serie1'); $dataSet->addPoints($items, 'Labels'); $dataSet->setSerieDescription('Serie1', get_lang('Max')); $dataSet->setSerieDescription('Serie2', get_lang('Avg')); $dataSet->setSerieDescription('Serie3', get_lang('Min')); $dataSet->setAbscissa('Labels'); $dataSet->setAbscissaName(get_lang('EvaluationName')); $dataSet->normalize(100, '%'); $dataSet->loadPalette(api_get_path(SYS_CODE_PATH) . 'palettes/pchart/default.color', true); // Cache definition $cachePath = api_get_path(SYS_ARCHIVE_PATH); $myCache = new pCache(array('CacheFolder' => substr($cachePath, 0, strlen($cachePath) - 1))); $chartHash = $myCache->getHash($dataSet); if ($myCache->isInCache($chartHash)) { $imgPath = api_get_path(SYS_ARCHIVE_PATH) . $chartHash; $myCache->saveFromCache($chartHash, $imgPath); $imgPath = api_get_path(WEB_ARCHIVE_PATH) . $chartHash; } else { /* Create the pChart object */ $widthSize = $this->bg_width; $heightSize = $this->bg_height; $fontSize = 8; $angle = 50; $myPicture = new pImage($widthSize, $heightSize, $dataSet); /* Turn of Antialiasing */ $myPicture->Antialias = false; /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, $widthSize - 1, $heightSize - 1, array('R' => 0, 'G' => 0, 'B' => 0)); /* Set the default font */ $myPicture->setFontProperties(array('FontName' => api_get_path(SYS_FONTS_PATH) . 'opensans/OpenSans-Regular.ttf', 'FontSize' => 10)); /* Do NOT Write the chart title */ /* Define the chart area */ $myPicture->setGraphArea(50, 30, $widthSize - 20, $heightSize - 100); /* Draw the scale */ $scaleSettings = array('GridR' => 200, 'GridG' => 200, 'GridB' => 200, 'DrawSubTicks' => true, 'CycleBackground' => true, 'Mode' => SCALE_MODE_MANUAL, 'ManualScale' => array('0' => array('Min' => 0, 'Max' => 100)), 'LabelRotation' => $angle); $myPicture->drawScale($scaleSettings); /* Turn on shadow computing */ $myPicture->setShadow(true, array('X' => 1, 'Y' => 1, 'R' => 0, 'G' => 0, 'B' => 0, 'Alpha' => 10)); /* Draw the chart */ $myPicture->setShadow(true, array('X' => 1, 'Y' => 1, 'R' => 0, 'G' => 0, 'B' => 0, 'Alpha' => 10)); $settings = array('DisplayValues' => true, 'DisplaySize' => $fontSize, 'DisplayR' => 0, 'DisplayG' => 0, 'DisplayB' => 0, 'DisplayOrientation' => ORIENTATION_HORIZONTAL, 'Gradient' => false, 'Surrounding' => 30, 'InnerSurrounding' => 25); $myPicture->drawStackedBarChart($settings); $legendSettings = array('Mode' => LEGEND_HORIZONTAL, 'Style' => LEGEND_NOBORDER); $myPicture->drawLegend($widthSize / 2, 15, $legendSettings); /* Write and save into cache */ $myCache->writeToCache($chartHash, $myPicture); $imgPath = api_get_path(SYS_ARCHIVE_PATH) . $chartHash; $myCache->saveFromCache($chartHash, $imgPath); $imgPath = api_get_path(WEB_ARCHIVE_PATH) . $chartHash; } if (!empty($imgPath)) { $courses_graph[$course_code] = '<img src="' . $imgPath . '">'; } } } } if (!empty($courses_graph)) { $graphs[$session_id] = $courses_graph; } } } return $graphs; }