46 bool $a_call_by_reference =
true 49 $this->tpl = $DIC[
"tpl"];
51 $this->db = $DIC->database();
52 $this->
user = $DIC->user();
55 $this->content_style_domain = $DIC
58 $this->term_manager = $DIC->glossary()->internal()->domain()->term($this);
63 $id = parent::create();
73 'id' => array(
'integer', $this->
getId()),
74 'is_online' => array(
'text',
'n'),
76 'pres_mode' => array(
'text',
'table'),
77 'snippet_length' => array(
'integer', 200)
89 public function read(): void
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);
107 $set = $this->db->query(
108 "SELECT * FROM glo_glossaries " .
109 " WHERE id = " . $this->db->quote($this->getId(),
"integer")
112 while ($rec = $this->db->fetchAssoc($set)) {
113 $glos[] = $rec[
"glo_id"];
122 $this->virtual_mode = $a_mode;
123 $this->
virtual =
true;
127 $this->virtual_mode =
"none";
128 $this->
virtual =
false;
145 $this->pres_mode = $a_val;
156 $this->snippet_length = $a_val;
161 return ($this->snippet_length > 0)
162 ? $this->snippet_length
168 $this->online = $a_online;
181 $db = $DIC->database();
183 $q =
"SELECT is_online FROM glossary WHERE id = " .
200 $db = $DIC->database();
202 $set =
$db->
query(
"SELECT $a_property FROM glossary WHERE id = " .
206 return $rec[$a_property];
211 return (
int) self::lookup($a_id,
"snippet_length");
217 $this->glo_menu_active = $a_act_glo_menu;
227 $this->show_tax = $a_val;
237 $this->flashcards_active = $a_flash;
247 $this->flashcards_mode = $a_flash;
261 $this->auto_glossaries = array();
262 foreach ($a_val as $v) {
270 !in_array($glo_id, $this->auto_glossaries)) {
271 $this->auto_glossaries[] = $glo_id;
288 if ($g != $a_glo_id) {
312 'id' => array(
'integer', $this->
getId())
317 return parent::update();
323 $this->db->manipulate(
324 "DELETE FROM glo_glossaries WHERE " .
325 " id = " . $this->db->quote($this->getId(),
"integer")
331 'id' => array(
'integer', $this->
getId()),
332 'glo_id' => array(
'integer', $glo_id)
343 $db = $DIC->database();
347 "SELECT * FROM glo_glossaries " .
348 " WHERE id = " .
$db->
quote($a_id,
"integer")
352 $glos[] = (
int) $rec[
"glo_id"];
362 $set = $this->db->query(
363 "SELECT * FROM glossary_collection " .
364 " WHERE id = " . $this->db->quote($this->getId(),
"integer")
367 while ($rec = $this->db->fetchAssoc($set)) {
368 $glos[] = (
int) $rec[
"glo_id"];
377 "glossary_collection",
379 "id" => [
"integer", $this->
getId()],
380 "glo_id" => [
"integer", $glo_id]
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")
396 string $searchterm =
"",
397 string $a_letter =
"",
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 406 if ($a_omit_virtual) {
419 $a_include_references
429 return $first_letters;
437 bool $a_include_offline_childs =
false,
438 bool $ids_are_ref_ids =
false 442 $tree = $DIC->repositoryTree();
448 if ($virtual_mode ===
"coll") {
450 if ($ids_are_ref_ids) {
452 foreach ($glo_ids as $obj_id) {
455 $glo_ids = $glo_ref_ids;
458 if (!$a_include_offline_childs) {
463 if ($ids_are_ref_ids) {
464 if (!in_array($this->
getRefId(), $glo_ids)) {
467 } elseif (!in_array($this->
getId(), $glo_ids)) {
468 $glo_ids[] = $this->
getId();
470 } elseif ($ids_are_ref_ids) {
473 $glo_ids = [$this->
getId()];
489 public function delete():
bool 492 if (!parent::delete()) {
499 foreach ($terms as $term) {
500 $this->term_manager->deleteTerm((
int) $term[
"id"]);
509 $q =
"DELETE FROM glossary WHERE id = " . $this->db->quote($this->
getId());
510 $this->db->query(
$q);
522 $lng = $DIC->language();
526 foreach ($sms as $sm) {
528 $dep[$sm] =
$lng->
txt(
"glo_used_in_scorm");
536 if (count($tax_ids) > 0) {
538 return (
int) $tax_ids[0];
546 $new_obj = parent::cloneObject($target_id, $copy_id, $omit_tree);
556 if (!$cp_options->isRootNode($this->getRefId())) {
571 $this->content_style_domain->styleForRefId($this->
getRefId())->cloneTo($new_obj->getId());
577 $new_tax = $tax->cloneObject(0, 0,
true);
578 $map = $tax->getNodeMapping();
584 $new_tax_ass =
new ilTaxNodeAssignment(
"glo", $new_obj->getId(),
"term", $new_tax->getId());
588 $term_mappings = array();
591 $term_mappings[$term[
"id"]] = $new_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);
605 if (!empty($term_mappings)) {
606 $cp_options->appendMapping($this->
getRefId() .
'_glo_terms', $term_mappings);
611 $new_obj->addGlossaryForCollection($glo_id);
622 bool $ids_are_ref_ids =
false 624 $glo_ids = $a_glo_ids;
625 if ($ids_are_ref_ids) {
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")
636 $online_glo_ids = array();
637 while ($rec = $this->db->fetchAssoc($set)) {
638 $online_glo_ids[] = $rec[
"id"];
641 if (!$ids_are_ref_ids) {
642 return $online_glo_ids;
645 $online_ref_ids = array_filter($a_glo_ids,
static function (
$ref_id) use ($online_glo_ids):
bool {
650 return $online_ref_ids;
657 $lng = $DIC->language();
659 if ($a_sub_type ==
"term") {
678 $found_pages = array();
679 foreach ($source_terms as $source_term) {
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;
694 foreach ($found_pages as
$id => $fp) {
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
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)
addAutoGlossary(int $glo_id)
getGlossariesForCollection()
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.
static _createExportDirectory(int $a_obj_id, string $a_export_type="xml", string $a_obj_type="")
static _lookGlossaryTerm(int $term_id)
get glossary term
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)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
createExportDirectory(string $a_type="xml")
static lookupSnippetLength(int $a_id)
setVirtualMode(string $a_mode)
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.