/**
  * Returns an array of objects of type CourseDescription corresponding to
  * a specific course, without session ids (session id = 0)
  *
  * @param int $course_id
  *
  * @return array Array of CourseDescriptions
  */
 public static function get_descriptions($course_id)
 {
     // Get course code
     $course_info = api_get_course_info_by_id($course_id);
     if (!empty($course_info)) {
         $course_id = $course_info['real_id'];
     } else {
         return array();
     }
     $t_course_desc = Database::get_course_table(TABLE_COURSE_DESCRIPTION);
     $sql = "SELECT * FROM {$t_course_desc}\n                WHERE c_id = {$course_id} AND session_id = '0'";
     $sql_result = Database::query($sql);
     $results = array();
     while ($row = Database::fetch_array($sql_result)) {
         $desc_tmp = new CourseDescription();
         $desc_tmp->set_id($row['id']);
         $desc_tmp->set_title($row['title']);
         $desc_tmp->set_content($row['content']);
         $desc_tmp->set_session_id($row['session_id']);
         $desc_tmp->set_description_type($row['description_type']);
         $desc_tmp->set_progress($row['progress']);
         $results[] = $desc_tmp;
     }
     return $results;
 }
 /**
  * It's used for editing a course description,
  * render to listing or edit view
  * @param int $id description item id
  * @param int $description_type description type id
  */
 public function edit($id, $description_type)
 {
     $course_description = new CourseDescription();
     $session_id = api_get_session_id();
     $course_description->set_session_id($session_id);
     $data = array();
     $data['id'] = $id;
     $affected_rows = null;
     $message = array();
     if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
         if (!empty($_POST['title']) && !empty($_POST['contentDescription'])) {
             $check = Security::check_token();
             if ($check) {
                 $title = $_POST['title'];
                 $content = $_POST['contentDescription'];
                 $description_type = $_POST['description_type'];
                 $id = $_POST['id'];
                 if (empty($id)) {
                     // If the ID was not provided, find the first matching description item given the item type
                     $description = $course_description->get_data_by_description_type($description_type);
                     if (count($description) > 0) {
                         $id = $description['id'];
                     }
                     // If no corresponding description is found, edit a new one
                 }
                 $progress = isset($_POST['progress']) ? $_POST['progress'] : '';
                 $course_description->set_description_type($description_type);
                 $course_description->set_title($title);
                 $course_description->set_content($content);
                 $course_description->set_progress($progress);
                 $thematic_advance = $course_description->get_data_by_id($id);
                 if (!empty($thematic_advance)) {
                     $course_description->set_id($id);
                     $course_description->update();
                 } else {
                     $course_description->insert();
                 }
                 Security::clear_token();
                 Display::addFlash(Display::return_message(get_lang('CourseDescriptionUpdated')));
             }
             $this->listing(false);
         } else {
             $data['error'] = 1;
             $data['default_description_titles'] = $course_description->get_default_description_title();
             $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
             $data['default_description_icon'] = $course_description->get_default_description_icon();
             $data['question'] = $course_description->get_default_question();
             $data['information'] = $course_description->get_default_information();
             $data['description_title'] = $_POST['title'];
             $data['description_content'] = $_POST['contentDescription'];
             $data['description_type'] = $_POST['description_type'];
             $data['progress'] = $_POST['progress'];
             $data['descriptions'] = $course_description->get_data_by_id($_POST['id']);
             // render to the view
             $this->view->set_data($data);
             $this->view->set_layout('layout');
             $this->view->set_template('edit');
             $this->view->render();
         }
     } else {
         $data['default_description_titles'] = $course_description->get_default_description_title();
         $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
         $data['default_description_icon'] = $course_description->get_default_description_icon();
         $data['question'] = $course_description->get_default_question();
         $data['information'] = $course_description->get_default_information();
         $data['description_type'] = $description_type;
         if (empty($id)) {
             // If the ID was not provided, find the first matching description item given the item type
             $description = $course_description->get_data_by_description_type($description_type);
             if (count($description) > 0) {
                 $id = $description['id'];
             }
             // If no corresponding description is found, edit a new one
         }
         if (!empty($id)) {
             if (isset($_GET['id_session'])) {
                 $session_id = intval($_GET['id_session']);
             }
             $course_description_data = $course_description->get_data_by_id($id, null, $session_id);
             $data['description_type'] = $course_description_data['description_type'];
             $data['description_title'] = $course_description_data['description_title'];
             $data['description_content'] = $course_description_data['description_content'];
             $data['progress'] = $course_description_data['progress'];
             $data['descriptions'] = $course_description->get_data_by_description_type($description_type, null, $session_id);
         }
         // render to the view
         $this->view->set_data($data);
         $this->view->set_layout('layout');
         $this->view->set_template('edit');
         $this->view->render();
     }
 }
 /**
  * It's used for adding a course description,
  * render to listing or add view
  */
 public function add()
 {
     $course_description = new CourseDescription();
     $session_id = api_get_session_id();
     $course_description->set_session_id($session_id);
     $data = array();
     if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
         if (!empty($_POST['title']) && !empty($_POST['contentDescription'])) {
             $title = $_POST['title'];
             $content = $_POST['contentDescription'];
             $description_type = $_POST['description_type'];
             if ($description_type >= ADD_BLOCK) {
                 $course_description->set_description_type($description_type);
                 $course_description->set_title($title);
                 $course_description->set_content($content);
                 $course_description->set_progress(0);
                 $course_description->insert(api_get_course_int_id());
             }
             Display::addFlash(Display::return_message(get_lang('CourseDescriptionUpdated')));
             $this->listing(false);
         } else {
             $data['error'] = 1;
             $data['default_description_titles'] = $course_description->get_default_description_title();
             $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
             $data['default_description_icon'] = $course_description->get_default_description_icon();
             $data['question'] = $course_description->get_default_question();
             $data['information'] = $course_description->get_default_information();
             $data['description_title'] = $_POST['title'];
             $data['description_content'] = $_POST['contentDescription'];
             $data['description_type'] = $_POST['description_type'];
             $this->view->set_data($data);
             $this->view->set_layout('layout');
             $this->view->set_template('add');
             $this->view->render();
         }
     } else {
         $data['default_description_titles'] = $course_description->get_default_description_title();
         $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
         $data['default_description_icon'] = $course_description->get_default_description_icon();
         $data['question'] = $course_description->get_default_question();
         $data['information'] = $course_description->get_default_information();
         $data['description_type'] = $course_description->get_max_description_type();
         // render to the view
         $this->view->set_data($data);
         $this->view->set_layout('layout');
         $this->view->set_template('add');
         $this->view->render();
     }
 }
Exemplo n.º 4
0
	/**
	 * Edit course description
	 *
	 * @param string API secret key
	 * @param string Course id field name
	 * @param string Course id value
	 * @param int Category id from course description
	 * @param string Description title
	 * @param string Course description content
	 */
	public function EditCourseDescription($secret_key, $course_id_field_name, $course_id_value, $course_desc_id, $course_desc_title, $course_desc_content) {
		$verifKey = $this->verifyKey($secret_key);
		if($verifKey instanceof WSError) {
			$this->handleError($verifKey);
		} else {
			$course_id = $this->getCourseId($course_id_field_name, $course_id_value);
			if($course_id instanceof WSError) {
				return $course_id;
			} else {
				// Create the new course description
				$cd = new CourseDescription();
				$cd->set_description_type($course_desc_id);
				$cd->set_title($course_desc_title);
				$cd->set_content($course_desc_content);
				$cd->set_session_id(0);
				// Get course info
				$course_info = CourseManager::get_course_information(CourseManager::get_course_code_from_course_id($course_id));
				// Check if this course description exists
				$descriptions = CourseDescription::get_descriptions($course_id);
				$exists = false;
				foreach($descriptions as $description) {
					if($description->get_description_type() == $course_desc_id) {
						$exists = true;
					}
				}
				if (!$exists) {
					$cd->set_progress(0);
					$cd->insert($course_info['db_name']);
				} else {
					$cd->update($course_info['db_name']);
				}
			}
		}
	}
 /**
  * It's used for editing a course description,
  * render to listing or edit view
  * @param int description type
  */
 public function edit($id, $description_type)
 {
     $course_description = new CourseDescription();
     $session_id = api_get_session_id();
     $course_description->set_session_id($session_id);
     $data = array();
     $data['id'] = $id;
     if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
         if (!empty($_POST['title']) && !empty($_POST['contentDescription'])) {
             $check = Security::check_token();
             if ($check) {
                 $title = $_POST['title'];
                 if (api_get_setting('wcag_anysurfer_public_pages') == 'true') {
                     $content = WCAG_Rendering::prepareXHTML();
                 } else {
                     $content = $_POST['contentDescription'];
                 }
                 $description_type = $_POST['description_type'];
                 $id = $_POST['id'];
                 $progress = $_POST['progress'];
                 $course_description->set_description_type($description_type);
                 $course_description->set_title($title);
                 $course_description->set_content($content);
                 $course_description->set_progress($progress);
                 $thematic_advance = $course_description->get_data_by_id($id);
                 if (!empty($thematic_advance)) {
                     $course_description->set_id($id);
                     $affected_rows = $course_description->update();
                 } else {
                     $affected_rows = $course_description->insert();
                 }
                 Security::clear_token();
             }
             if ($affected_rows) {
                 $message['edit'] = true;
             }
             $this->listing(false, $message);
         } else {
             $data['error'] = 1;
             $data['default_description_titles'] = $course_description->get_default_description_title();
             $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
             $data['default_description_icon'] = $course_description->get_default_description_icon();
             $data['question'] = $course_description->get_default_question();
             $data['information'] = $course_description->get_default_information();
             $data['description_title'] = $_POST['title'];
             $data['description_content'] = $_POST['contentDescription'];
             $data['description_type'] = $_POST['description_type'];
             $data['progress'] = $_POST['progress'];
             $data['descriptions'] = $course_description->get_data_by_id($_POST['id']);
             // render to the view
             $this->view->set_data($data);
             $this->view->set_layout('layout');
             $this->view->set_template('edit');
             $this->view->render();
         }
     } else {
         $data['default_description_titles'] = $course_description->get_default_description_title();
         $data['default_description_title_editable'] = $course_description->get_default_description_title_editable();
         $data['default_description_icon'] = $course_description->get_default_description_icon();
         $data['question'] = $course_description->get_default_question();
         $data['information'] = $course_description->get_default_information();
         $data['description_type'] = $description_type;
         if (!empty($id)) {
             if (isset($_GET['id_session'])) {
                 $session_id = intval($_GET['id_session']);
             }
             $course_description_data = $course_description->get_data_by_id($id, null, $session_id);
             $data['description_type'] = $course_description_data['description_type'];
             $data['description_title'] = $course_description_data['description_title'];
             $data['description_content'] = $course_description_data['description_content'];
             $data['progress'] = $course_description_data['progress'];
             $data['descriptions'] = $course_description->get_data_by_description_type($description_type, null, $session_id);
         }
         // render to the view
         $this->view->set_data($data);
         $this->view->set_layout('layout');
         $this->view->set_template('edit');
         $this->view->render();
     }
 }