/** * Set the terms for this learnpath item * @param string Terms, as a comma-split list * @return boolean Always return true */ public function set_terms($terms) { global $charset; $course_id = api_get_course_int_id(); $lp_item = Database::get_course_table(TABLE_LP_ITEM); require_once api_get_path(LIBRARY_PATH) . 'search/ChamiloIndexer.class.php'; $a_terms = split(',', $terms); $i_terms = split(',', $this->get_terms()); foreach ($i_terms as $term) { if (!in_array($term, $a_terms)) { array_push($a_terms, $term); } } $new_terms = $a_terms; $new_terms_string = implode(',', $new_terms); $terms_update_sql = ''; // TODO: Validate csv string. $terms_update_sql = "UPDATE {$lp_item} SET terms = '" . Database::escape_string(api_htmlentities($new_terms_string, ENT_QUOTES, $charset)) . "'\n\t\t WHERE c_id = {$course_id} AND id=" . $this->get_id(); $res = Database::query($terms_update_sql); // Save it to search engine. if (api_get_setting('search_enabled') == 'true') { $di = new ChamiloIndexer(); $di->update_terms($this->get_search_did(), $new_terms); } return true; }