52 $q =
"SELECT * FROM glossary_term WHERE id = ".
53 $ilDB->quote($this->
id,
"integer");
54 $term_set = $ilDB->query($q);
55 $term_rec = $ilDB->fetchAssoc($term_set);
57 $this->
setTerm($term_rec[
"term"]);
75 if ($a_import_id ==
"")
80 $q =
"SELECT * FROM glossary_term WHERE import_id = ".
81 $ilDB->quote($a_import_id,
"text").
82 " ORDER BY create_date DESC";
83 $term_set = $ilDB->query($q);
84 while ($term_rec = $ilDB->fetchAssoc($term_set))
91 return $term_rec[
"id"];
110 include_once(
"./Services/Link/classes/class.ilInternalLink.php");
111 if (is_int(strpos($a_id,
"_")))
116 $q =
"SELECT * FROM glossary_term WHERE id = ".
117 $ilDB->quote($a_id,
"integer");
118 $obj_set = $ilDB->query($q);
119 if ($obj_rec = $ilDB->fetchAssoc($obj_set))
159 $this->glossary = $a_glossary;
171 $this->glo_id = $a_glo_id;
193 $this->term = $a_term;
233 $this->import_id = $a_import_id;
253 $this->
setId($ilDB->nextId(
"glossary_term"));
254 $ilDB->manipulate(
"INSERT INTO glossary_term (id, glo_id, term, language, import_id, create_date, last_update)".
256 $ilDB->quote($this->getId(),
"integer").
", ".
257 $ilDB->quote($this->getGlossaryId(),
"integer").
", ".
258 $ilDB->quote($this->term,
"text").
", ".
259 $ilDB->quote($this->
language,
"text").
",".
273 require_once(
"./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
275 foreach($defs as $def)
282 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTermReferences.php");
286 $ilDB->manipulate(
"DELETE FROM glossary_term ".
287 " WHERE id = ".$ilDB->quote($this->getId(),
"integer"));
298 $ilDB->manipulate(
"UPDATE glossary_term SET ".
299 " glo_id = ".$ilDB->quote($this->getGlossaryId(),
"integer").
", ".
300 " term = ".$ilDB->quote($this->getTerm(),
"text").
", ".
301 " import_id = ".$ilDB->quote($this->getImportId(),
"text").
", ".
302 " language = ".$ilDB->quote($this->getLanguage(),
"text").
", ".
303 " last_update = ".$ilDB->now().
" ".
304 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer"));
314 $query =
"SELECT * FROM glossary_term WHERE id = ".
315 $ilDB->quote($term_id,
"integer");
316 $obj_set = $ilDB->query(
$query);
317 $obj_rec = $ilDB->fetchAssoc($obj_set);
319 return $obj_rec[
"glo_id"];
329 $query =
"SELECT * FROM glossary_term WHERE id = ".
330 $ilDB->quote($term_id,
"integer");
331 $obj_set = $ilDB->query(
$query);
332 $obj_rec = $ilDB->fetchAssoc($obj_set);
334 return $obj_rec[
"term"];
344 $query =
"SELECT * FROM glossary_term WHERE id = ".
345 $ilDB->quote($term_id,
"integer");
346 $obj_set = $ilDB->query(
$query);
347 $obj_rec = $ilDB->fetchAssoc($obj_set);
349 return $obj_rec[
"language"];
360 static function getTermList($a_glo_id, $searchterm =
"", $a_first_letter =
"", $a_def =
"",
361 $a_tax_node = 0, $a_add_amet_fields =
false,
array $a_amet_filter = null, $a_include_references =
false)
372 include_once(
"./Services/Taxonomy/classes/class.ilObjTaxonomy.php");
374 if (count($tax_ids) > 0)
377 $sub_tree_ids =
array();
378 foreach ($items as $i)
380 $sub_tree_ids[] = $i[
"item_id"];
382 $in =
" AND ".$ilDB->in(
"gt.id", $sub_tree_ids,
false,
"integer");
389 if (is_array($a_glo_id))
391 $glo_where = $ilDB->in(
"page_object.parent_id", $a_glo_id,
false,
"integer");
395 $glo_where =
" page_object.parent_id = ".$ilDB->quote($a_glo_id,
"integer");
398 $join =
" JOIN glossary_definition gd ON (gd.term_id = gt.id)".
399 " JOIN page_object ON (".
401 " AND page_object.parent_type = ".$ilDB->quote(
"gdf",
"text").
402 " AND page_object.page_id = gd.id".
403 " AND ".$ilDB->like(
"page_object.content",
"text",
"%".$a_def.
"%").
407 $searchterm = (!empty ($searchterm))
408 ?
" AND ".$ilDB->like(
"term",
"text",
"%".$searchterm.
"%").
" " 411 if ($a_first_letter !=
"")
413 $searchterm.=
" AND ".$ilDB->upper($ilDB->substr(
"term", 1, 1)).
" = ".$ilDB->upper($ilDB->quote($a_first_letter,
"text")).
" ";
417 $where_glo_id_or =
"";
418 if ($a_include_references)
420 $join.=
" LEFT JOIN glo_term_reference tr ON (gt.id = tr.term_id) ";
421 if (is_array($a_glo_id))
423 $where_glo_id_or =
" OR ".$ilDB->in(
"tr.glo_id", $a_glo_id,
false,
"integer");
427 $where_glo_id_or =
" OR tr.glo_id = ".$ilDB->quote($a_glo_id,
"integer");
432 if (is_array($a_glo_id))
434 $where =
"(".$ilDB->in(
"gt.glo_id", $a_glo_id,
false,
"integer").$where_glo_id_or.
")";
438 $where =
"(gt.glo_id = ".$ilDB->quote($a_glo_id,
"integer").$where_glo_id_or.
")";
444 $q =
"SELECT DISTINCT(gt.term), gt.id, gt.glo_id, gt.language FROM glossary_term gt ".$join.
" WHERE ".$where.$searchterm.
" ORDER BY term";
448 $term_set = $ilDB->query($q);
450 while ($term_rec = $ilDB->fetchAssoc($term_set))
452 $terms[] =
array(
"term" => $term_rec[
"term"],
453 "language" => $term_rec[
"language"],
"id" => $term_rec[
"id"],
"glo_id" => $term_rec[
"glo_id"]);
454 $glo_ids[] = $term_rec[
"glo_id"];
458 if ($a_add_amet_fields || is_array($a_amet_filter))
460 include_once(
"./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php");
481 if (is_array($a_glo_id))
483 $where = $ilDB->in(
"glo_id", $a_glo_id,
false,
"integer");
487 $where =
" glo_id = ".$ilDB->quote($a_glo_id,
"integer").
" ";
492 include_once(
"./Services/Taxonomy/classes/class.ilObjTaxonomy.php");
494 if (count($tax_ids) > 0)
497 $sub_tree_ids =
array();
498 foreach ($items as $i)
500 $sub_tree_ids[] = $i[
"item_id"];
502 $in =
" AND ".$ilDB->in(
"id", $sub_tree_ids,
false,
"integer");
509 $q =
"SELECT DISTINCT ".$ilDB->upper($ilDB->substr(
"term", 1, 1)).
" let FROM glossary_term WHERE ".$where.
" ORDER BY let";
510 $let_set = $ilDB->query($q);
513 while ($let_rec = $ilDB->fetchAssoc($let_set))
515 $let[$let_rec[
"let"]] = $let_rec[
"let"];
528 $attrs[
"Id"] =
"il_".IL_INST_ID.
"_git_".$this->
getId();
529 $a_xml_writer->xmlStartTag(
"GlossaryItem", $attrs);
532 $a_xml_writer->xmlElement(
"GlossaryTerm", $attrs, $this->
getTerm());
536 foreach($defs as $def)
539 $definition->exportXML($a_xml_writer, $a_inst);
542 $a_xml_writer->xmlEndTag(
"GlossaryItem");
564 include_once(
"./Services/Link/classes/class.ilInternalLink.php");
567 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTermReferences.php");
570 $usages[
"glo:termref:".$glo_id.
":-"] =
array(
571 "type" =>
"glo:termref",
592 $new_term->setTerm($old_term->getTerm());
593 $new_term->setLanguage($old_term->getLanguage());
594 $new_term->setGlossaryId($a_glossary_id);
598 include_once(
"./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
600 foreach ($def_list as $def)
605 $new_def->setShortText($old_def->getShortText());
606 $new_def->setNr($old_def->getNr());
607 $new_def->setTermId($new_term->getId());
611 include_once(
"Services/MetaData/classes/class.ilMD.php");
612 $md =
new ilMD($old_term->getGlossaryId(),
613 $old_def->getPageObject()->getId(),
614 $old_def->getPageObject()->getParentType());
615 $new_md = $md->
cloneMD($a_glossary_id,
616 $new_def->getPageObject()->getId(),
617 $old_def->getPageObject()->getParentType());
620 $new_page = $new_def->getPageObject();
621 $old_def->getPageObject()->copy($new_page->getId(), $new_page->getParentType(), $new_page->getParentId(),
true);
631 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
632 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
635 foreach($old_recs as $old_record_obj)
638 foreach ($new_recs as $new_record_obj)
640 if ($old_record_obj->getRecordId() == $new_record_obj->getRecordId())
648 $source_primary =
array(
"obj_id"=>
array(
"integer", $old_term->getGlossaryId()));
649 $source_primary[
"sub_type"] =
array(
"text",
"term");
650 $source_primary[
"sub_id"] =
array(
"integer", $old_term->getId());
651 $source_primary[
"field_id"] =
array(
"integer", $def->getFieldId());
652 $target_primary =
array(
"obj_id"=>
array(
"integer", $new_term->getGlossaryId()));
653 $target_primary[
"sub_type"] =
array(
"text",
"term");
654 $target_primary[
"sub_id"] =
array(
"integer", $new_term->getId());
660 "obj_id" =>
"integer",
661 "sub_type" =>
"text",
662 "sub_id" =>
"integer",
663 "field_id" =>
"integer" 667 array(
"disabled"=>
"integer"));
675 return $new_term->getId();
688 $set = $ilDB->query(
"SELECT id FROM glossary_term WHERE ".
689 " glo_id = ".$ilDB->quote($a_glo_id,
"integer")
692 while ($rec = $ilDB->fetchAssoc($set))
& cloneMD($a_rbac_id, $a_obj_id, $a_obj_type)
static getDefinitionList($a_term_id)
static
static _hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
getId()
get term id (= glossary item id)
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
static getNumberOfUsages($a_term_id)
Get number of usages.
setGlossary(&$a_glossary)
set glossary object
static _extractObjIdOfTarget($a_target)
Extract object id out of target.
getImportId()
get import id
create()
create new glossary term
static _getIdForImportId($a_import_id)
get current term id for import id (static)
__construct($a_id=0)
Constructor public.
setLanguage($a_language)
set language
static getInstance()
Get singleton.
getLanguage()
get language
static cloneByPrimary($a_table, array $a_primary_def, array $a_source_primary, array $a_target_primary, array $a_additional=null)
Clone values by (partial) primary key.
static _getAllReferences($a_id)
get all reference ids of object
static lookupReferencesOfTerm($a_term_id)
Lookup references of a term.
static _exists($a_id)
checks wether a glossary term with specified id exists or not
getGlossaryId()
get glossary id
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
static getUsages($a_term_id)
Get number of usages.
setGlossaryId($a_glo_id)
set glossary id
static getFirstLetters($a_glo_id, $a_tax_node=0)
Get all terms for given set of glossary ids.
static getTermList($a_glo_id, $searchterm="", $a_first_letter="", $a_def="", $a_tax_node=0, $a_add_amet_fields=false, array $a_amet_filter=null, $a_include_references=false)
Get all terms for given set of glossary ids.
redirection script todo: (a better solution should control the processing via a xml file) ...
static _getSelectedRecordsByObject($a_obj_type, $a_obj_id, $a_sub_type="")
Get selected records by object.
static _getSourcesOfTarget($a_target_type, $a_target_id, $a_target_inst)
get all sources of a link target
static _lookLanguage($term_id)
lookup term language
Create styles array
The data for the language used.
setImportId($a_import_id)
set import id
setId($a_id)
set glossary term id (= glossary item id)
if(php_sapi_name() !='cli') $in
static _lookGlossaryID($term_id)
get glossary id form term id
Class ilGlossaryDefinition.
update()
update glossary term
static queryForRecords($a_obj_id, $a_subtype, $a_records, $a_obj_id_key, $a_obj_subid_key, array $a_amet_filter=null)
Query data for given object records.
static _copyTerm($a_term_id, $a_glossary_id)
Copy a term to a glossary.
static deleteReferencesOfTerm($a_term_id)
Delete all references of a term.
exportXML(&$a_xml_writer, $a_inst)
export xml
static getTermsOfGlossary($a_glo_id)
Get terms of glossary.
static getSubTreeItems($a_comp, $a_obj_id, $a_item_type, $a_tax_id, $a_node)
Get all assigned items under a node.
static _lookGlossaryTerm($term_id)
get glossary term
read()
read glossary term data