/** * Set short texts dirty * * @param * @return */ static function setShortTextsDirty($a_glo_id) { global $ilDB; include_once "./Modules/Glossary/classes/class.ilGlossaryTerm.php"; $term_ids = ilGlossaryTerm::getTermsOfGlossary($a_glo_id); foreach ($term_ids as $term_id) { $ilDB->manipulate("UPDATE glossary_definition SET " . " short_text_dirty = " . $ilDB->quote(1, "integer") . " WHERE term_id = " . $ilDB->quote($term_id, "integer")); } }
/** * Update the cards from the glossary * delete all cards * * @param integer $a_obj_id * @param integer $a_glossary_ref_id */ public function updateCardsFromGlossary() { // get all term_ids from the glossaries involved $all_terms = array(); if ($this->getGlossaryRefId()) { $glossary = ilObjectFactory::getInstanceByRefId($this->getGlossaryRefId()); $glo_ids = $glossary->getAllGlossaryIds(); if (!is_array($glo_ids)) { $glo_ids = array($glo_ids); } foreach ($glo_ids as $glo_id) { $terms = ilGlossaryTerm::getTermsOfGlossary($glo_id); $all_terms = array_merge($all_terms, $terms); } } // delete all cards without terms $found_terms = array(); foreach ($this->cards as $card_id => $card) { if (!in_array($card->getTermId(), $all_terms)) { $card->delete(); unset($this->cards[$card_id]); } else { $found_terms[] = $card->getTermId(); } } // add new cards for new terms $missing_terms = array_diff($all_terms, $found_terms); $this->plugin->includeClass('class.ilFlashcard.php'); foreach ($missing_terms as $term_id) { $card = new ilFlashCard(); $card->setObjId($this->getId()); $card->setTermId($term_id); $card->save(); $this->cards[$card->getCardId()] = $card; } // cleanup the trainings $this->plugin->includeClass('class.ilFlashcardUsage.php'); ilFlashcardUsage::_cleanup($this); }