ILIAS  release_8 Revision v8.24
ilAdvancedMDFieldTranslations Class Reference

Class ilAdvancedMDFieldTranslations. More...

+ Collaboration diagram for ilAdvancedMDFieldTranslations:

Public Member Functions

 getRecordId ()
 
 getDefaultLanguage ()
 
 getActivatedLanguages (int $field_id, bool $with_default=true)
 
 isConfigured (int $field_id, string $lang_key)
 
 getTranslation (int $field_id, string $lang_key)
 
 getTranslations (int $field_id)
 
 getDefaultTranslation (int $field_id)
 
 read ()
 
 getFormTranslationInfo (int $field_id, string $active_language)
 
 modifyTranslationInfoForTitle (int $field_id, ilPropertyFormGUI $form, ilTextInputGUI $title, string $active_language)
 
 modifyTranslationInfoForDescription (int $field_id, ilPropertyFormGUI $form, ilTextAreaInputGUI $description, string $active_language)
 
 updateFromForm (int $field_id, string $active_language, ilPropertyFormGUI $form)
 
 getTitleForLanguage (int $field_id, string $language)
 
 getDescriptionForLanguage (int $field_id, string $language)
 

Static Public Member Functions

static getInstanceByRecordId (int $record_id)
 

Private Member Functions

 __construct (int $record_id)
 

Private Attributes

int $record_id
 
ilAdvancedMDRecord $record
 
array $definitions
 
array $translations = []
 
ilAdvancedMDRecordTranslations $record_translations
 
string $default_language = ''
 
ilDBInterface $db
 
ilLanguage $lng
 

Static Private Attributes

static array $instances = []
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilAdvancedMDFieldTranslations::__construct ( int  $record_id)
private

Definition at line 43 of file class.ilAdvancedMDFieldTranslations.php.

44 {
45 global $DIC;
46
47 $this->db = $DIC->database();
48 $this->lng = $DIC->language();
49 $this->lng->loadLanguageModule('meta');
50
51 $this->record_id = $record_id;
52 $this->record_translations = ilAdvancedMDRecordTranslations::getInstanceByRecordId($this->record_id);
53 $this->read();
54 }
global $DIC
Definition: feed.php:28

References $DIC, $record_id, ilAdvancedMDRecordTranslations\getInstanceByRecordId(), ILIAS\Repository\lng(), and read().

+ Here is the call graph for this function:

Member Function Documentation

◆ getActivatedLanguages()

ilAdvancedMDFieldTranslations::getActivatedLanguages ( int  $field_id,
bool  $with_default = true 
)
Parameters
int$field_id
bool$with_default
Returns
array<int, string>

Definition at line 79 of file class.ilAdvancedMDFieldTranslations.php.

79 : array
80 {
81 $activated = [];
82 foreach ($this->getTranslations($field_id) as $language => $translation) {
83 if ($language == self::getDefaultLanguage() && !$with_default) {
84 continue;
85 }
86 $activated[] = $language;
87 }
88 return $activated;
89 }

References getTranslations().

+ Here is the call graph for this function:

◆ getDefaultLanguage()

ilAdvancedMDFieldTranslations::getDefaultLanguage ( )

Definition at line 69 of file class.ilAdvancedMDFieldTranslations.php.

References $default_language.

◆ getDefaultTranslation()

ilAdvancedMDFieldTranslations::getDefaultTranslation ( int  $field_id)
Returns
ilAdvancedMDRecordTranslation | null

Definition at line 121 of file class.ilAdvancedMDFieldTranslations.php.

122 {
123 foreach ($this->getTranslations($field_id) as $translation) {
124 if ($translation->getLangKey() == $this->default_language) {
125 return $translation;
126 }
127 }
128 return null;
129 }
Class ilAdvancedMDFieldTranslation.

References getTranslations().

+ Here is the call graph for this function:

◆ getDescriptionForLanguage()

ilAdvancedMDFieldTranslations::getDescriptionForLanguage ( int  $field_id,
string  $language 
)

Definition at line 247 of file class.ilAdvancedMDFieldTranslations.php.

247 : string
248 {
249 if ($this->getTranslation($field_id, $language) && strlen($this->getTranslation(
250 $field_id,
251 $language
252 )->getDescription())) {
253 return $this->getTranslation($field_id, $language)->getDescription();
254 }
255 if ($this->getTranslation($field_id, $this->getDefaultLanguage()) &&
256 strlen($this->getTranslation($field_id, $this->getDefaultLanguage())->getDescription())
257 ) {
258 return $this->getTranslation($field_id, $this->getDefaultLanguage())->getDescription();
259 }
260 if ($this->definitions[$field_id] instanceof ilAdvancedMDFieldDefinition) {
261 return $this->definitions[$field_id]->getDescription();
262 }
263 return '';
264 }
getTranslation(int $field_id, string $lang_key)

◆ getFormTranslationInfo()

ilAdvancedMDFieldTranslations::getFormTranslationInfo ( int  $field_id,
string  $active_language 
)

Definition at line 160 of file class.ilAdvancedMDFieldTranslations.php.

160 : string
161 {
162 if (count($this->getTranslations($field_id)) <= 1) {
163 return '';
164 }
165
166 $txt = '';
167 $txt = $this->lng->txt('md_adv_int_current') . ' ' . $this->lng->txt('meta_l_' . $active_language);
168 $txt .= ', ';
169 foreach ($this->getTranslations($field_id) as $translation) {
170 if ($translation->getLangKey() == $this->getDefaultLanguage()) {
171 $txt .= ($this->lng->txt('md_adv_int_default') . ' ' . $this->lng->txt('meta_l_' . $translation->getLangKey()));
172 break;
173 }
174 }
175 return $txt;
176 }
$txt
Definition: error.php:13

References $txt, getTranslations(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getInstanceByRecordId()

◆ getRecordId()

ilAdvancedMDFieldTranslations::getRecordId ( )

Definition at line 64 of file class.ilAdvancedMDFieldTranslations.php.

64 : int
65 {
66 return $this->record_id;
67 }

References $record_id.

Referenced by read().

+ Here is the caller graph for this function:

◆ getTitleForLanguage()

ilAdvancedMDFieldTranslations::getTitleForLanguage ( int  $field_id,
string  $language 
)

Definition at line 227 of file class.ilAdvancedMDFieldTranslations.php.

227 : string
228 {
229 if ($this->getTranslation($field_id, $language) && strlen($this->getTranslation(
230 $field_id,
231 $language
232 )->getTitle())) {
233 return $this->getTranslation($field_id, $language)->getTitle();
234 }
235 if (
236 $this->getTranslation($field_id, $this->getDefaultLanguage()) &&
237 strlen(($this->getTranslation($field_id, $this->getDefaultLanguage())->getTitle()))
238 ) {
239 return $this->getTranslation($field_id, $this->getDefaultLanguage())->getTitle();
240 }
241 if ($this->definitions[$field_id] instanceof ilAdvancedMDFieldDefinition) {
242 return $this->definitions[$field_id]->getTitle();
243 }
244 return '';
245 }

◆ getTranslation()

ilAdvancedMDFieldTranslations::getTranslation ( int  $field_id,
string  $lang_key 
)

Definition at line 99 of file class.ilAdvancedMDFieldTranslations.php.

100 {
101 if (!$this->isConfigured($field_id, $lang_key)) {
102 return null;
103 }
104 return $this->translations[$field_id][$lang_key];
105 }
isConfigured(int $field_id, string $lang_key)

References isConfigured().

+ Here is the call graph for this function:

◆ getTranslations()

ilAdvancedMDFieldTranslations::getTranslations ( int  $field_id)
Returns
array<string, ilAdvancedMDFieldTranslation>

Definition at line 110 of file class.ilAdvancedMDFieldTranslations.php.

110 : array
111 {
112 if (isset($this->translations[$field_id])) {
113 return $this->translations[$field_id];
114 }
115 return [];
116 }

Referenced by getActivatedLanguages(), getDefaultTranslation(), and getFormTranslationInfo().

+ Here is the caller graph for this function:

◆ isConfigured()

ilAdvancedMDFieldTranslations::isConfigured ( int  $field_id,
string  $lang_key 
)

Definition at line 91 of file class.ilAdvancedMDFieldTranslations.php.

91 : bool
92 {
93 if (!$this->record_translations->isConfigured($lang_key)) {
94 return false;
95 }
96 return isset($this->translations[$field_id][$lang_key]);
97 }

Referenced by getTranslation().

+ Here is the caller graph for this function:

◆ modifyTranslationInfoForDescription()

ilAdvancedMDFieldTranslations::modifyTranslationInfoForDescription ( int  $field_id,
ilPropertyFormGUI  $form,
ilTextAreaInputGUI  $description,
string  $active_language 
)

Definition at line 197 of file class.ilAdvancedMDFieldTranslations.php.

202 : void {
203 if (!strlen($active_language)) {
204 return;
205 }
206 $show_info = ($active_language !== $this->getDefaultLanguage() && $this->getDefaultLanguage());
207 $default = $this->getDefaultTranslation($field_id);
208 if ($default instanceof ilAdvancedMDFieldTranslation && $show_info) {
209 $description->setInfo($default->getLangKey() . ': ' . $default->getDescription());
210 }
211 if ($this->getTranslation($field_id, $active_language) instanceof ilAdvancedMDFieldTranslation) {
212 $description->setValue($this->getTranslation($field_id, $active_language)->getDescription());
213 }
214 }

◆ modifyTranslationInfoForTitle()

ilAdvancedMDFieldTranslations::modifyTranslationInfoForTitle ( int  $field_id,
ilPropertyFormGUI  $form,
ilTextInputGUI  $title,
string  $active_language 
)

Definition at line 178 of file class.ilAdvancedMDFieldTranslations.php.

183 : void {
184 if (!strlen($active_language)) {
185 return;
186 }
187 $show_info = ($active_language !== $this->getDefaultLanguage() && $this->getDefaultLanguage());
188 $default = $this->getDefaultTranslation($field_id);
189 if ($default instanceof ilAdvancedMDFieldTranslation && $show_info) {
190 $title->setInfo($default->getLangKey() . ': ' . $default->getTitle());
191 }
192 if ($this->getTranslation($field_id, $active_language) instanceof ilAdvancedMDFieldTranslation) {
193 $title->setValue($this->getTranslation($field_id, $active_language)->getTitle());
194 }
195 }

◆ read()

ilAdvancedMDFieldTranslations::read ( )

Definition at line 131 of file class.ilAdvancedMDFieldTranslations.php.

131 : void
132 {
133 $query = 'select fi.field_id tfield, de.field_id ofield, fi.title, fi.description, ri.lang_code ' .
134 'from adv_md_record_int ri join adv_mdf_definition de on ri.record_id = de.record_id ' .
135 'left join adv_md_field_int fi on (ri.lang_code = fi.lang_code and de.field_id = fi.field_id) ' .
136 'where ri.record_id = ' . $this->db->quote($this->getRecordId(), ilDBConstants::T_INTEGER);
137 $res = $this->db->query($query);
138
139 $this->record = ilAdvancedMDRecord::_getInstanceByRecordId($this->record_id);
140 $this->default_language = $this->record->getDefaultLanguage();
141
142 $this->translations = [];
143 $this->definitions = ilAdvancedMDFieldDefinition::getInstancesByRecordId($this->record_id, false);
144 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
145 $this->translations[$row->ofield][$row->lang_code] = new ilAdvancedMDFieldTranslation(
146 (int) $row->ofield,
147 (string) $row->title,
148 (string) $row->description,
149 (string) $row->lang_code
150 );
151 if ((string) $row->lang_code == $this->default_language && $row->tfield == null) {
152 $this->translations[(int) $row->ofield][(string) $row->lang_code]->setTitle($this->definitions[(int) $row->ofield]->getTitle());
153 $this->translations[(int) $row->ofield][(string) $row->lang_code]->setDescription(
154 $this->definitions[(int) $row->ofield]->getDescription()
155 );
156 }
157 }
158 }
static getInstancesByRecordId( $a_record_id, $a_only_searchable=false, string $language='')
Get definitions by record id.
static _getInstanceByRecordId(int $a_record_id)
$res
Definition: ltiservices.php:69
$query

References $query, $res, ilAdvancedMDRecord\_getInstanceByRecordId(), ilDBConstants\FETCHMODE_OBJECT, ilAdvancedMDFieldDefinition\getInstancesByRecordId(), getRecordId(), ILIAS\Repository\int(), and ilDBConstants\T_INTEGER.

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateFromForm()

ilAdvancedMDFieldTranslations::updateFromForm ( int  $field_id,
string  $active_language,
ilPropertyFormGUI  $form 
)

Definition at line 216 of file class.ilAdvancedMDFieldTranslations.php.

216 : void
217 {
218 $translation = $this->getTranslation($field_id, $active_language);
219 if (!$translation instanceof ilAdvancedMDFieldTranslation) {
220 return;
221 }
222 $translation->setTitle($form->getInput('title'));
223 $translation->setDescription($form->getInput('description'));
224 $translation->update();
225 }
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...

References ilPropertyFormGUI\getInput().

+ Here is the call graph for this function:

Field Documentation

◆ $db

ilDBInterface ilAdvancedMDFieldTranslations::$db
private

Definition at line 36 of file class.ilAdvancedMDFieldTranslations.php.

◆ $default_language

string ilAdvancedMDFieldTranslations::$default_language = ''
private

Definition at line 31 of file class.ilAdvancedMDFieldTranslations.php.

Referenced by getDefaultLanguage().

◆ $definitions

array ilAdvancedMDFieldTranslations::$definitions
private

Definition at line 23 of file class.ilAdvancedMDFieldTranslations.php.

◆ $instances

array ilAdvancedMDFieldTranslations::$instances = []
staticprivate

Definition at line 15 of file class.ilAdvancedMDFieldTranslations.php.

◆ $lng

ilLanguage ilAdvancedMDFieldTranslations::$lng
private

Definition at line 41 of file class.ilAdvancedMDFieldTranslations.php.

◆ $record

ilAdvancedMDRecord ilAdvancedMDFieldTranslations::$record
private

Definition at line 18 of file class.ilAdvancedMDFieldTranslations.php.

◆ $record_id

int ilAdvancedMDFieldTranslations::$record_id
private

◆ $record_translations

ilAdvancedMDRecordTranslations ilAdvancedMDFieldTranslations::$record_translations
private

Definition at line 30 of file class.ilAdvancedMDFieldTranslations.php.

◆ $translations

array ilAdvancedMDFieldTranslations::$translations = []
private

Definition at line 28 of file class.ilAdvancedMDFieldTranslations.php.


The documentation for this class was generated from the following file: