/** * Build the Surveys * @param int $session_id Internal session ID * @param int $courseId Internal course ID * @param bool $with_base_content Whether to include content from the course without session or not * @param array $id_list If you want to restrict the structure to only the given IDs */ public function build_thematic($session_id = 0, $courseId = 0, $with_base_content = false, $id_list = array()) { $table_thematic = Database::get_course_table(TABLE_THEMATIC); $table_thematic_advance = Database::get_course_table(TABLE_THEMATIC_ADVANCE); $table_thematic_plan = Database::get_course_table(TABLE_THEMATIC_PLAN); $session_id = intval($session_id); if ($with_base_content) { $session_condition = api_get_session_condition($session_id, true, true); } else { $session_condition = api_get_session_condition($session_id, true); } $sql = "SELECT * FROM {$table_thematic}\n WHERE c_id = {$courseId} {$session_condition} "; $db_result = Database::query($sql); while ($row = Database::fetch_array($db_result, 'ASSOC')) { $thematic = new Thematic($row); $sql = 'SELECT * FROM ' . $table_thematic_advance . ' WHERE c_id = ' . $courseId . ' AND thematic_id = ' . $row['id']; $result = Database::query($sql); while ($sub_row = Database::fetch_array($result, 'ASSOC')) { $thematic->add_thematic_advance($sub_row); } $items = api_get_item_property_by_tool('thematic_plan', api_get_course_id(), $session_id); $thematic_plan_id_list = array(); if (!empty($items)) { foreach ($items as $item) { $thematic_plan_id_list[] = $item['ref']; //$thematic_plan_complete_list[$item['ref']] = $item; } } if (count($thematic_plan_id_list) > 0) { $sql = "SELECT tp.*\n FROM {$table_thematic_plan} tp\n INNER JOIN {$table_thematic} t ON (t.id=tp.thematic_id)\n WHERE\n t.c_id = {$courseId} AND\n tp.c_id = {$courseId} AND\n thematic_id = {$row['id']} AND\n tp.id IN (" . implode(', ', $thematic_plan_id_list) . ") "; $result = Database::query($sql); while ($sub_row = Database::fetch_array($result, 'ASSOC')) { $thematic->add_thematic_plan($sub_row); } } $this->course->add_resource($thematic); } }