19 declare(strict_types=1);
34 'collection' =>
'Collection',
35 'networked' =>
'Networked',
36 'hierarchical' =>
'Hierarchical',
57 $subs[
'Keyword'] =
'meta_keyword';
58 $subs[
'Language'] =
'meta_language';
59 $subs[
'Identifier'] =
'meta_identifier';
60 $subs[
'Description'] =
'meta_description';
77 if (!$a_identifier_id) {
81 $ide->setMetaId($a_identifier_id);
90 $ide->setParentType(
'meta_general');
105 if (!$a_language_id) {
109 $lan->setMetaId($a_language_id);
118 $lan->setParentType(
'meta_general');
133 if (!$a_description_id) {
137 $des->setMetaId($a_description_id);
146 $des->setParentType(
'meta_general');
161 if (!$a_keyword_id) {
165 $key->setMetaId($a_keyword_id);
174 $key->setParentType(
'meta_general');
182 switch ($a_structure) {
188 $this->structure = $a_structure;
203 $this->title = $a_title;
213 $this->title_language = $lng_obj;
218 return is_object($this->title_language) ? $this->title_language : null;
223 return is_object($this->title_language) ? $this->title_language->getLanguageCode() :
'';
228 $this->coverage = $a_coverage;
238 $this->coverage_language = $lng_obj;
243 return is_object($this->coverage_language) ? $this->coverage_language : null;
248 return is_object($this->coverage_language) ? $this->coverage_language->getLanguageCode() :
'';
254 $fields[
'meta_general_id'] = array(
'integer', $next_id = $this->db->nextId(
'il_meta_general'));
256 $this->log->debug(
"Insert General " . print_r($fields,
true));
260 if ($this->db->insert(
'il_meta_general', $fields)) {
276 return (
bool) $this->db->update(
279 array(
"meta_general_id" => array(
'integer', $this->
getMetaId()))
283 public function delete():
bool 313 $query =
"DELETE FROM il_meta_general " .
314 "WHERE meta_general_id = " . $this->db->quote($this->
getMetaId(),
'integer');
315 $res = $this->db->manipulate($query);
332 $structure = (string) array_search(
334 self::STRUCTURE_TRANSLATION
338 'rbac_id' => array(
'integer', $this->
getRBACId()),
339 'obj_id' => array(
'integer', $this->
getObjId()),
340 'obj_type' => array(
'text', $this->
getObjType()),
341 'general_structure' => array(
'text', $structure),
342 'title' => array(
'text', $this->
getTitle()),
352 $query =
"SELECT * FROM il_meta_general " .
353 "WHERE meta_general_id = " . $this->db->quote($this->
getMetaId(),
'integer');
355 $res = $this->db->query($query);
360 if (key_exists($row->general_structure ??
'', self::STRUCTURE_TRANSLATION)) {
361 $row->general_structure = self::STRUCTURE_TRANSLATION[$row->general_structure ??
''];
365 $this->
setObjId((
int) $row->obj_id);
368 $this->
setTitle((
string) $row->title);
388 foreach ($identifiers as
$id) {
391 $ide->toXML($writer);
394 if (!count($identifiers)) {
400 $ide->setExportMode(
true);
401 $ide->toXML($writer);
415 foreach ($languages as $id) {
417 $lan->toXML($writer);
422 foreach ($descriptions as $id) {
424 $des->toXML($writer);
426 if (!count($descriptions)) {
430 $des->toXML($writer);
435 foreach ($keywords as $id) {
437 $key->toXML($writer);
439 if (!count($keywords)) {
443 $key->toXML($writer);
460 public static function _getId(
int $a_rbac_id,
int $a_obj_id):
int 464 $ilDB = $DIC->database();
466 $query =
"SELECT meta_general_id FROM il_meta_general " .
467 "WHERE rbac_id = " .
$ilDB->quote($a_rbac_id,
'integer') .
" " .
468 "AND obj_id = " .
$ilDB->quote($a_obj_id,
'integer');
472 return (
int) $row->meta_general_id;
490 'meta_coverage_id' => [
'integer', $next_id = $this->db->nextId(
'il_meta_coverage')],
491 'rbac_id' => [
'integer', $this->
getRBACId()],
492 'obj_id' => [
'integer', $this->
getObjId()],
494 'parent_type' => [
'text',
'meta_general'],
495 'parent_id' => [
'integer', $this->
getMetaId()],
500 $this->coverage_id = $next_id;
519 $query =
"DELETE FROM il_meta_coverage WHERE parent_type = 'meta_general' 520 AND parent_id = " . $this->db->quote($this->
getMetaId(),
'integer');
521 $res = $this->db->manipulate($query);
529 $query =
"SELECT * FROM il_meta_coverage WHERE meta_coverage_id = " .
532 $res = $this->db->query($query);
533 if ($row = $this->db->fetchAssoc(
$res)) {
552 $query =
"SELECT meta_coverage_id FROM il_meta_coverage WHERE parent_type = 'meta_general' 553 AND parent_id = " . $this->db->quote($parent_id,
'integer') .
554 " ORDER BY meta_coverage_id";
556 $res = $this->db->query($query);
557 if ($row = $this->db->fetchAssoc(
$res)) {
558 $this->coverage_id = (
int) $row[
'meta_coverage_id'];
565 public function setMetaId(
int $a_meta_id,
bool $a_read_data =
true): void
568 parent::setMetaId($a_meta_id, $a_read_data);
int $coverage_id
Compatibility fix for legacy MD classes for new db tables.
getIdentifier(int $a_identifier_id)
getCoverageId()
Compatibility fix for legacy MD classes for new db tables.
setTitle(string $a_title)
deleteAllCoverages()
Compatibility fix for legacy MD classes for new db tables.
setStructure(string $a_structure)
readCoverageId(int $parent_id)
Compatibility fix for legacy MD classes for new db tables.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getId(int $a_rbac_id, int $a_obj_id)
static _getIds(int $a_rbac_id, int $a_obj_id, int $a_parent_id, string $a_parent_type)
xmlEndTag(string $tag)
Writes an endtag.
setCoverage(string $a_coverage)
ilMDLanguageItem $title_language
const ilMDLanguageItem $coverage_language
setMetaId(int $a_meta_id, bool $a_read_data=true)
Compatibility fix for legacy MD classes for new db tables.
static _getIds(int $a_rbac_id, int $a_obj_id, int $a_parent_id, string $a_parent_type)
getDescription(int $a_description_id)
getCoverageLanguageCode()
toXML(ilXmlWriter $writer)
static _getIds(int $a_rbac_id, int $a_obj_id, int $a_parent_id, string $a_parent_type)
createOrUpdateCoverage()
Compatibility fix for legacy MD classes for new db tables.
readFirstCoverage()
Compatibility fix for legacy MD classes for new db tables.
setTitleLanguage(ilMDLanguageItem $lng_obj)
static _getIds(int $a_rbac_id, int $a_obj_id, int $a_parent_id, string $a_parent_type)
getLanguage(int $a_language_id)
getKeyword(int $a_keyword_id)
const STRUCTURE_TRANSLATION
Compatibility fix for legacy MD classes for new db tables.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
setCoverageLanguage(ilMDLanguageItem $lng_obj)
setObjType(string $a_type)