ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
class.ilObjGlossary.php
Go to the documentation of this file.
1 <?php
2 
23 {
24  protected \ILIAS\Glossary\Term\TermManager $term_manager;
25  protected \ILIAS\Style\Content\DomainService $content_style_domain;
27  protected array $file_ids = [];
28  protected array $mob_ids = [];
29  protected bool $show_tax = false;
30  protected int $style_id = 0;
31  protected bool $glo_menu_active = false;
32  protected bool $online = false;
33  protected int $snippet_length = 0;
34  protected string $pres_mode = "";
35  protected bool $virtual = false;
36  protected string $virtual_mode = "";
37  protected bool $flashcards_active = false;
38  protected string $flashcards_mode = "";
40  public array $auto_glossaries = array();
41  protected ilObjUser $user;
42 
43 
44  public function __construct(
45  int $a_id = 0,
46  bool $a_call_by_reference = true
47  ) {
48  global $DIC;
49  $this->tpl = $DIC["tpl"];
50 
51  $this->db = $DIC->database();
52  $this->user = $DIC->user();
53  $this->type = "glo";
54  parent::__construct($a_id, $a_call_by_reference);
55  $this->content_style_domain = $DIC
56  ->contentStyle()
57  ->domain();
58  $this->term_manager = $DIC->glossary()->internal()->domain()->term($this);
59  }
60 
61  public function create(bool $a_upload = false): int
62  {
63  $id = parent::create();
64 
65  // meta data will be created by
66  // import parser
67  if (!$a_upload) {
68  $this->createMetaData();
69  }
70  $this->db->insert(
71  'glossary',
72  array(
73  'id' => array('integer', $this->getId()),
74  'is_online' => array('text', 'n'),
75  'virtual' => array('text', $this->getVirtualMode()),
76  'pres_mode' => array('text', 'table'),
77  'snippet_length' => array('integer', 200)
78  )
79  );
80 
81  $this->setPresentationMode("table");
82  $this->setSnippetLength(200);
83 
84  $this->updateAutoGlossaries();
85 
86  return $id;
87  }
88 
89  public function read(): void
90  {
91  parent::read();
92 
93  $q = "SELECT * FROM glossary WHERE id = " .
94  $this->db->quote($this->getId(), "integer");
95  $gl_set = $this->db->query($q);
96  $gl_rec = $this->db->fetchAssoc($gl_set);
97  $this->setOnline(ilUtil::yn2tf($gl_rec["is_online"]));
98  $this->setVirtualMode((string) ($gl_rec["virtual"] ?? ""));
99  $this->setActiveGlossaryMenu(ilUtil::yn2tf($gl_rec["glo_menu_active"]));
100  $this->setPresentationMode((string) $gl_rec["pres_mode"]);
101  $this->setSnippetLength((int) $gl_rec["snippet_length"]);
102  $this->setShowTaxonomy((bool) $gl_rec["show_tax"]);
103  $this->setActiveFlashcards(ilUtil::yn2tf($gl_rec["flash_active"]));
104  $this->setFlashcardsMode($gl_rec["flash_mode"]);
105 
106  // read auto glossaries
107  $set = $this->db->query(
108  "SELECT * FROM glo_glossaries " .
109  " WHERE id = " . $this->db->quote($this->getId(), "integer")
110  );
111  $glos = array();
112  while ($rec = $this->db->fetchAssoc($set)) {
113  $glos[] = $rec["glo_id"];
114  }
115  $this->setAutoGlossaries($glos);
116  }
117 
118  public function setVirtualMode(string $a_mode): void
119  {
120  switch ($a_mode) {
121  case "coll":
122  $this->virtual_mode = $a_mode;
123  $this->virtual = true;
124  break;
125 
126  default:
127  $this->virtual_mode = "none";
128  $this->virtual = false;
129  break;
130  }
131  }
132 
133  public function getVirtualMode(): string
134  {
135  return $this->virtual_mode;
136  }
137 
138  public function isVirtual(): bool
139  {
140  return $this->virtual;
141  }
142 
143  public function setPresentationMode(string $a_val): void
144  {
145  $this->pres_mode = $a_val;
146  }
147 
148  public function getPresentationMode(): string
149  {
150  return $this->pres_mode;
151  }
152 
154  public function setSnippetLength(int $a_val): void
155  {
156  $this->snippet_length = $a_val;
157  }
158 
159  public function getSnippetLength(): int
160  {
161  return ($this->snippet_length > 0)
162  ? $this->snippet_length
163  : 200;
164  }
165 
166  public function setOnline(bool $a_online): void
167  {
168  $this->online = $a_online;
169  }
170 
171  public function getOnline(): bool
172  {
173  return $this->online;
174  }
175 
176  public static function _lookupOnline(
177  int $a_id
178  ): bool {
179  global $DIC;
180 
181  $db = $DIC->database();
182 
183  $q = "SELECT is_online FROM glossary WHERE id = " .
184  $db->quote($a_id, "integer");
185  $lm_set = $db->query($q);
186  $lm_rec = $db->fetchAssoc($lm_set);
187 
188  return ilUtil::yn2tf($lm_rec["is_online"]);
189  }
190 
194  protected static function lookup(
195  int $a_id,
196  string $a_property
197  ): string {
198  global $DIC;
199 
200  $db = $DIC->database();
201 
202  $set = $db->query("SELECT $a_property FROM glossary WHERE id = " .
203  $db->quote($a_id, "integer"));
204  $rec = $db->fetchAssoc($set);
205 
206  return $rec[$a_property];
207  }
208 
209  public static function lookupSnippetLength(int $a_id): int
210  {
211  return (int) self::lookup($a_id, "snippet_length");
212  }
213 
214 
215  public function setActiveGlossaryMenu(bool $a_act_glo_menu): void
216  {
217  $this->glo_menu_active = $a_act_glo_menu;
218  }
219 
220  public function isActiveGlossaryMenu(): bool
221  {
222  return $this->glo_menu_active;
223  }
224 
225  public function setShowTaxonomy(bool $a_val): void
226  {
227  $this->show_tax = $a_val;
228  }
229 
230  public function getShowTaxonomy(): bool
231  {
232  return $this->show_tax;
233  }
234 
235  public function setActiveFlashcards(bool $a_flash): void
236  {
237  $this->flashcards_active = $a_flash;
238  }
239 
240  public function isActiveFlashcards(): bool
241  {
243  }
244 
245  public function setFlashcardsMode(string $a_flash): void
246  {
247  $this->flashcards_mode = $a_flash;
248  }
249 
250  public function getFlashcardsMode(): string
251  {
252  return $this->flashcards_mode;
253  }
254 
258  public function setAutoGlossaries(
259  array $a_val
260  ): void {
261  $this->auto_glossaries = array();
262  foreach ($a_val as $v) {
263  $this->addAutoGlossary($v);
264  }
265  }
266 
267  public function addAutoGlossary(int $glo_id): void
268  {
269  if ($glo_id > 0 && ilObject::_lookupType($glo_id) == "glo" &&
270  !in_array($glo_id, $this->auto_glossaries)) {
271  $this->auto_glossaries[] = $glo_id;
272  }
273  }
274 
278  public function getAutoGlossaries(): array
279  {
280  return $this->auto_glossaries;
281  }
282 
283  public function removeAutoGlossary(
284  int $a_glo_id
285  ): void {
286  $glo_ids = array();
287  foreach ($this->getAutoGlossaries() as $g) {
288  if ($g != $a_glo_id) {
289  $glo_ids[] = $g;
290  }
291  }
292  $this->setAutoGlossaries($glo_ids);
293  }
294 
295  public function update(): bool
296  {
297  $this->updateMetaData();
298 
299  $this->db->update(
300  'glossary',
301  array(
302  'is_online' => array('text', ilUtil::tf2yn($this->getOnline())),
303  'virtual' => array('text', $this->getVirtualMode()),
304  'glo_menu_active' => array('text', ilUtil::tf2yn($this->isActiveGlossaryMenu())),
305  'pres_mode' => array('text', $this->getPresentationMode()),
306  'show_tax' => array('integer', $this->getShowTaxonomy()),
307  'snippet_length' => array('integer', $this->getSnippetLength()),
308  'flash_active' => array('text', ilUtil::tf2yn($this->isActiveFlashcards())),
309  'flash_mode' => array('text', $this->getFlashcardsMode())
310  ),
311  array(
312  'id' => array('integer', $this->getId())
313  )
314  );
315 
316  $this->updateAutoGlossaries();
317  return parent::update();
318  }
319 
320  public function updateAutoGlossaries(): void
321  {
322  // update auto glossaries
323  $this->db->manipulate(
324  "DELETE FROM glo_glossaries WHERE " .
325  " id = " . $this->db->quote($this->getId(), "integer")
326  );
327  foreach ($this->getAutoGlossaries() as $glo_id) {
328  $this->db->insert(
329  'glo_glossaries',
330  array(
331  'id' => array('integer', $this->getId()),
332  'glo_id' => array('integer', $glo_id)
333  )
334  );
335  }
336  }
337 
338  public static function lookupAutoGlossaries(
339  int $a_id
340  ): array {
341  global $DIC;
342 
343  $db = $DIC->database();
344 
345  // read auto glossaries
346  $set = $db->query(
347  "SELECT * FROM glo_glossaries " .
348  " WHERE id = " . $db->quote($a_id, "integer")
349  );
350  $glos = array();
351  while ($rec = $db->fetchAssoc($set)) {
352  $glos[] = (int) $rec["glo_id"];
353  }
354  return $glos;
355  }
356 
360  public function getGlossariesForCollection(): array
361  {
362  $set = $this->db->query(
363  "SELECT * FROM glossary_collection " .
364  " WHERE id = " . $this->db->quote($this->getId(), "integer")
365  );
366  $glos = [];
367  while ($rec = $this->db->fetchAssoc($set)) {
368  $glos[] = (int) $rec["glo_id"];
369  }
370 
371  return $glos;
372  }
373 
374  public function addGlossaryForCollection(int $glo_id): void
375  {
376  $this->db->replace(
377  "glossary_collection",
378  [
379  "id" => ["integer", $this->getId()],
380  "glo_id" => ["integer", $glo_id]
381  ],
382  []
383  );
384  }
385 
386  public function removeGlossaryFromCollection(int $glo_id): void
387  {
388  $this->db->manipulate(
389  "DELETE FROM glossary_collection WHERE " .
390  " id = " . $this->db->quote($this->getId(), "integer") .
391  " AND glo_id = " . $this->db->quote($glo_id, "integer")
392  );
393  }
394 
395  public function getTermList(
396  string $searchterm = "",
397  string $a_letter = "",
398  string $a_def = "",
399  int $a_tax_node = 0,
400  bool $a_include_offline_childs = false,
401  bool $a_add_amet_fields = false,
402  ?array $a_amet_filter = null,
403  bool $a_omit_virtual = false,
404  bool $a_include_references = false
405  ): array {
406  if ($a_omit_virtual) {
407  $glo_ref_ids[] = $this->getRefId();
408  } else {
409  $glo_ref_ids = $this->getAllGlossaryIds($a_include_offline_childs, true);
410  }
412  $glo_ref_ids,
413  $searchterm,
414  $a_letter,
415  $a_def,
416  $a_tax_node,
417  $a_add_amet_fields,
418  $a_amet_filter,
419  $a_include_references
420  );
421  return $list;
422  }
423 
424  public function getFirstLetters(
425  int $a_tax_node = 0
426  ): array {
427  $glo_ids = $this->getAllGlossaryIds();
428  $first_letters = ilGlossaryTerm::getFirstLetters($glo_ids, $a_tax_node);
429  return $first_letters;
430  }
431 
436  public function getAllGlossaryIds(
437  bool $a_include_offline_childs = false,
438  bool $ids_are_ref_ids = false
439  ): array {
440  global $DIC;
441 
442  $tree = $DIC->repositoryTree();
443 
444  if ($this->isVirtual()) {
445  $glo_ids = array();
446 
447  $virtual_mode = $this->getRefId() ? $this->getVirtualMode() : '';
448  if ($virtual_mode === "coll") {
449  $glo_ids = $this->getGlossariesForCollection();
450  if ($ids_are_ref_ids) {
451  $glo_ref_ids = [];
452  foreach ($glo_ids as $obj_id) {
453  $glo_ref_ids[] = current(ilObject::_getAllReferences($obj_id));
454  }
455  $glo_ids = $glo_ref_ids;
456  }
457  }
458  if (!$a_include_offline_childs) {
459  $glo_ids = $this->removeOfflineGlossaries($glo_ids, $ids_are_ref_ids);
460  }
461  // always show entries of current glossary (if no permission is given, user will not come to the presentation screen)
462  // see bug #14477
463  if ($ids_are_ref_ids) {
464  if (!in_array($this->getRefId(), $glo_ids)) {
465  $glo_ids[] = $this->getRefId();
466  }
467  } elseif (!in_array($this->getId(), $glo_ids)) {
468  $glo_ids[] = $this->getId();
469  }
470  } elseif ($ids_are_ref_ids) {
471  $glo_ids = [$this->getRefId()];
472  } else {
473  $glo_ids = [$this->getId()];
474  }
475 
476  return $glo_ids;
477  }
478 
479  public function createExportDirectory(string $a_type = "xml"): string
480  {
481  return ilExport::_createExportDirectory($this->getId(), $a_type, $this->getType());
482  }
483 
484  public function getExportDirectory(string $a_type = "xml"): string
485  {
486  return ilExport::_getExportDirectory($this->getId(), $a_type, $this->getType());
487  }
488 
489  public function delete(): bool
490  {
491  // always call parent delete function first!!
492  if (!parent::delete()) {
493  return false;
494  }
495 
496  // delete terms
497  if (!$this->isVirtual()) {
498  $terms = $this->getTermList();
499  foreach ($terms as $term) {
500  $this->term_manager->deleteTerm((int) $term["id"]);
501  }
502  }
503 
504  // delete term references
505  $refs = new ilGlossaryTermReferences($this->getId());
506  $refs->delete();
507 
508  // delete glossary data entry
509  $q = "DELETE FROM glossary WHERE id = " . $this->db->quote($this->getId());
510  $this->db->query($q);
511 
512  // delete meta data
513  $this->deleteMetaData();
514 
515  return true;
516  }
517 
518  public static function getDeletionDependencies(int $obj_id): array
519  {
520  global $DIC;
521 
522  $lng = $DIC->language();
523 
524  $dep = array();
526  foreach ($sms as $sm) {
527  $lng->loadLanguageModule("content");
528  $dep[$sm] = $lng->txt("glo_used_in_scorm");
529  }
530  return $dep;
531  }
532 
533  public function getTaxonomyId(): int
534  {
535  $tax_ids = ilObjTaxonomy::getUsageOfObject($this->getId());
536  if (count($tax_ids) > 0) {
537  // glossaries handle max. one taxonomy
538  return (int) $tax_ids[0];
539  }
540  return 0;
541  }
542 
543 
544  public function cloneObject(int $target_id, int $copy_id = 0, bool $omit_tree = false): ?ilObject
545  {
546  $new_obj = parent::cloneObject($target_id, $copy_id, $omit_tree);
547  $this->cloneMetaData($new_obj);
548 
549  $tax_ass = null;
550  $new_tax_ass = null;
551  $map = [];
552 
553  //copy online status if object is not the root copy object
554  $cp_options = ilCopyWizardOptions::_getInstance($copy_id);
555 
556  if (!$cp_options->isRootNode($this->getRefId())) {
557  $new_obj->setOnline($this->getOnline());
558  }
559 
560  // $new_obj->setTitle($this->getTitle());
561  $new_obj->setDescription($this->getDescription());
562  $new_obj->setVirtualMode($this->getVirtualMode());
563  $new_obj->setPresentationMode($this->getPresentationMode());
564  $new_obj->setSnippetLength($this->getSnippetLength());
565  $new_obj->setAutoGlossaries($this->getAutoGlossaries());
566  $new_obj->setActiveFlashcards($this->isActiveFlashcards());
567  $new_obj->setFlashcardsMode($this->getFlashcardsMode());
568  $new_obj->update();
569 
570  // set/copy stylesheet
571  $this->content_style_domain->styleForRefId($this->getRefId())->cloneTo($new_obj->getId());
572 
573  // copy taxonomy
574  if (($tax_id = $this->getTaxonomyId()) > 0) {
575  // clone it
576  $tax = new ilObjTaxonomy($tax_id);
577  $new_tax = $tax->cloneObject(0, 0, true);
578  $map = $tax->getNodeMapping();
579 
580  // assign new taxonomy to new glossary
581  ilObjTaxonomy::saveUsage($new_tax->getId(), $new_obj->getId());
582 
583  $tax_ass = new ilTaxNodeAssignment("glo", $this->getId(), "term", $tax_id);
584  $new_tax_ass = new ilTaxNodeAssignment("glo", $new_obj->getId(), "term", $new_tax->getId());
585  }
586 
587  // copy terms
588  $term_mappings = array();
589  foreach (ilGlossaryTerm::getTermList([$this->getRefId()]) as $term) {
590  $new_term_id = ilGlossaryTerm::_copyTerm($term["id"], $new_obj->getId());
591  $term_mappings[$term["id"]] = $new_term_id;
592 
593  // copy tax node assignments
594  if ($tax_id > 0) {
595  $assignmts = $tax_ass->getAssignmentsOfItem($term["id"]);
596  foreach ($assignmts as $a) {
597  if ($map[$a["node_id"]] > 0) {
598  $new_tax_ass->addAssignment($map[$a["node_id"]], $new_term_id);
599  }
600  }
601  }
602  }
603 
604  // add mapping of term_ids to copy wizard options
605  if (!empty($term_mappings)) {
606  $cp_options->appendMapping($this->getRefId() . '_glo_terms', $term_mappings);
607  }
608 
609  // copy collection glossaries
610  foreach ($this->getGlossariesForCollection() as $glo_id) {
611  $new_obj->addGlossaryForCollection($glo_id);
612  }
613 
614  return $new_obj;
615  }
616 
620  public function removeOfflineGlossaries(
621  array $a_glo_ids,
622  bool $ids_are_ref_ids = false
623  ): array {
624  $glo_ids = $a_glo_ids;
625  if ($ids_are_ref_ids) {
626  $glo_ids = array_map(static function ($id): int {
628  }, $a_glo_ids);
629  }
630 
631  $set = $this->db->query(
632  "SELECT id FROM glossary " .
633  " WHERE " . $this->db->in("id", $glo_ids, false, "integer") .
634  " AND is_online = " . $this->db->quote("y", "text")
635  );
636  $online_glo_ids = array();
637  while ($rec = $this->db->fetchAssoc($set)) {
638  $online_glo_ids[] = $rec["id"];
639  }
640 
641  if (!$ids_are_ref_ids) {
642  return $online_glo_ids;
643  }
644 
645  $online_ref_ids = array_filter($a_glo_ids, static function ($ref_id) use ($online_glo_ids): bool {
646  return in_array(ilObject::_lookupObjectId($ref_id), $online_glo_ids);
647  });
648 
649 
650  return $online_ref_ids;
651  }
652 
653  public static function getAdvMDSubItemTitle(int $a_obj_id, string $a_sub_type, int $a_sub_id): string
654  {
655  global $DIC;
656 
657  $lng = $DIC->language();
658 
659  if ($a_sub_type == "term") {
660  $lng->loadLanguageModule("glo");
661 
662  return $lng->txt("glo_term") . ' "' . ilGlossaryTerm::_lookGlossaryTerm($a_sub_id) . '"';
663  }
664  return "";
665  }
666 
670  public function autoLinkGlossaryTerms(
671  int $a_glo_ref_id
672  ): void {
673  // get terms of target glossary
674  $terms = ilGlossaryTerm::getTermList([$a_glo_ref_id]);
675 
676  // for each get page: get content
677  $source_terms = ilGlossaryTerm::getTermList([$this->getRefId()]);
678  $found_pages = array();
679  foreach ($source_terms as $source_term) {
680  $pg = new ilGlossaryDefPage($source_term["id"]);
681  $c = $pg->getXMLContent();
682  foreach ($terms as $t) {
683  if (is_int(stripos($c, $t["term"]))) {
684  $found_pages[$source_term["id"]]["terms"][] = $t;
685  if (!isset($found_pages[$source_term["id"]]["page"])) {
686  $found_pages[$source_term["id"]]["page"] = $pg;
687  }
688  }
689  }
690  reset($terms);
691  }
692 
693  // ilPCParagraph autoLinkGlossariesPage with page and terms
694  foreach ($found_pages as $id => $fp) {
695  ilPCParagraph::autoLinkGlossariesPage($fp["page"], $fp["terms"]);
696  }
697  }
698 
702  public function supportsLongTextQuery(): bool
703  {
704  return true;
705  }
706 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setSnippetLength(int $a_val)
Set definition snippet length (in overview)
cloneObject(int $target_id, int $copy_id=0, bool $omit_tree=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getTermList(string $searchterm="", string $a_letter="", string $a_def="", int $a_tax_node=0, bool $a_include_offline_childs=false, bool $a_add_amet_fields=false, ?array $a_amet_filter=null, bool $a_omit_virtual=false, bool $a_include_references=false)
getAllGlossaryIds(bool $a_include_offline_childs=false, bool $ids_are_ref_ids=false)
Get all glossary ids.
setAutoGlossaries(array $a_val)
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
removeAutoGlossary(int $a_glo_id)
ilGlossaryDefPage $page_object
addGlossaryForCollection(int $glo_id)
fetchAssoc(ilDBStatement $statement)
setActiveFlashcards(bool $a_flash)
setPresentationMode(string $a_val)
static autoLinkGlossariesPage(ilPageObject $a_page, array $a_terms)
Auto link glossary of whole page.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setOnline(bool $a_online)
static _lookupOnline(int $a_id)
static _getAllReferences(int $id)
get all reference ids for object ID
ilTree $tree
static getScormModulesForGlossary(int $a_glo_id)
Get SCORM modules that assign a certain glossary.
static getUsageOfObject(int $a_obj_id, bool $a_include_titles=false)
quote($value, string $type)
loadLanguageModule(string $a_module)
Load language module.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getAdvMDSubItemTitle(int $a_obj_id, string $a_sub_type, int $a_sub_id)
static tf2yn(bool $a_tf)
addAutoGlossary(int $glo_id)
$c
Definition: deliver.php:25
setActiveGlossaryMenu(bool $a_act_glo_menu)
setFlashcardsMode(string $a_flash)
static _getExportDirectory(int $a_obj_id, string $a_type="xml", string $a_obj_type="", string $a_entity="")
Get export directory for an repository object
static getTermList(array $a_glo_ref_id, string $searchterm="", string $a_first_letter="", string $a_def="", int $a_tax_node=0, bool $a_add_amet_fields=false, ?array $a_amet_filter=null, bool $a_include_references=false)
Get all terms for given set of glossary ids.
static _copyTerm(int $a_term_id, int $a_glossary_id)
Copy a term to a glossary.
ilGlobalTemplateInterface $tpl
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getExportDirectory(string $a_type="xml")
create(bool $a_upload=false)
__construct(int $a_id=0, bool $a_call_by_reference=true)
cloneMetaData(ilObject $target_obj)
Copy meta data.
Interface for repository objects to use adv md with subitems.
ilLanguage $lng
static _createExportDirectory(int $a_obj_id, string $a_export_type="xml", string $a_obj_type="")
ilDBInterface $db
static _lookGlossaryTerm(int $term_id)
get glossary term
global $DIC
Definition: shib_login.php:26
static _lookupObjectId(int $ref_id)
query(string $query)
Run a (read-only) Query on the database.
removeOfflineGlossaries(array $a_glo_ids, bool $ids_are_ref_ids=false)
Remove offline glossaries from obj id array.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getAssignmentsOfItem(int $a_item_id)
Get assignments for item.
static saveUsage(int $a_tax_id, int $a_obj_id)
$lm_set
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
__construct(Container $dic, ilPlugin $plugin)
createExportDirectory(string $a_type="xml")
static lookupSnippetLength(int $a_id)
setVirtualMode(string $a_mode)
$q
Definition: shib_logout.php:23
autoLinkGlossaryTerms(int $a_glo_ref_id)
Auto link glossary terms.
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
setShowTaxonomy(bool $a_val)
static yn2tf(string $a_yn)
static lookupAutoGlossaries(int $a_id)
removeGlossaryFromCollection(int $glo_id)
static _getInstance(int $a_copy_id)
static getDeletionDependencies(int $obj_id)
static _lookupType(int $id, bool $reference=false)
getFirstLetters(int $a_tax_node=0)
ILIAS Style Content DomainService $content_style_domain
static getFirstLetters(array $a_glo_id, int $a_tax_node=0)
supportsLongTextQuery()
Is long text search supported.
ILIAS Glossary Term TermManager $term_manager
static lookup(int $a_id, string $a_property)
Lookup glossary property.