Esempio n. 1
0
 /**
  * Set the terms for this learnpath item
  * @param   string  Terms, as a comma-split list
  * @return  boolean Always return true
  */
 function set_terms($terms)
 {
     global $charset;
     $lp_item = Database::get_course_table(TABLE_LP_ITEM);
     require_once api_get_path(LIBRARY_PATH) . 'search/DokeosIndexer.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)) . "' WHERE id=" . $this->get_id();
     $res = Database::query($terms_update_sql, __FILE__, __LINE__);
     // save it to search engine
     if (api_get_setting('search_enabled') == 'true' && extension_loaded('xapian')) {
         $di = new DokeosIndexer();
         $di->update_terms($this->get_search_did(), $new_terms);
     }
     return true;
 }