ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilOrgUnitTypeTranslation Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Collaboration diagram for ilOrgUnitTypeTranslation:

Public Member Functions

 __construct (int $a_org_type_id=0, string $a_lang_code='')
 
 getMember (string $a_member)
 Get translated value for a member, returns null if no translation exists. More...
 
 setMember (string $a_member, string $a_value)
 Set translation value for a member, either update or add value. More...
 
 create ()
 Insert all translated member into database. More...
 
 update ()
 Update translations in database. More...
 
 delete ()
 Delete object. More...
 
 setLang (string $lang)
 Getters & Setters. More...
 
 getLang ()
 
 getMembers ()
 
 getOrguTypeId ()
 
 setOrguTypeId (int $id)
 

Static Public Member Functions

static getInstance (int $a_orgu_type_id, string $a_lang_code)
 Get instance of an ilOrgUnitType object Returns object from cache or from database, returns null if no object was found. More...
 

Data Fields

const TABLE_NAME = 'orgu_types_trans'
 

Protected Member Functions

 insertMember (string $member, string $value)
 Protected. More...
 
 updateMember (string $member, string $value)
 Update a (member,value) pair in database. More...
 
 trackChange (string $a_member, bool $is_new)
 Track a member that was either updated or added. More...
 
 resetTrackChanges ()
 Reset tracked members. More...
 
 read ()
 Read object data from database. More...
 

Protected Attributes

int $orgu_type_id
 
string $lang = ''
 
array $members = []
 
array $changes = []
 
array $members_new = []
 
ilDBInterface $db
 
ILIAS DI LoggingServices $log
 

Static Protected Attributes

static array $instances = []
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning Class ilOrgUnitTypeTranslation This class represents a translation for a given ilOrgUnit object and language.

Author
: Stefan Wanzenried sw@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch

Definition at line 25 of file class.ilOrgUnitTypeTranslation.php.

Constructor & Destructor Documentation

◆ __construct()

ilOrgUnitTypeTranslation::__construct ( int  $a_org_type_id = 0,
string  $a_lang_code = '' 
)

Definition at line 38 of file class.ilOrgUnitTypeTranslation.php.

References $DIC, ILIAS\Repository\int(), and read().

39  {
40  global $DIC;
41  $this->db = $DIC->database();
42  $this->log = $DIC->logger();
43  if ($a_org_type_id && $a_lang_code) {
44  $this->orgu_type_id = (int) $a_org_type_id;
45  $this->lang = $a_lang_code;
46  $this->read();
47  }
48  }
read()
Read object data from database.
global $DIC
Definition: shib_login.php:25
+ Here is the call graph for this function:

Member Function Documentation

◆ create()

ilOrgUnitTypeTranslation::create ( )

Insert all translated member into database.

Definition at line 155 of file class.ilOrgUnitTypeTranslation.php.

References insertMember(), and resetTrackChanges().

155  : void
156  {
157  foreach ($this->members as $member => $value) {
158  $this->insertMember($member, $value);
159  }
160  $this->resetTrackChanges();
161  }
resetTrackChanges()
Reset tracked members.
insertMember(string $member, string $value)
Protected.
+ Here is the call graph for this function:

◆ delete()

ilOrgUnitTypeTranslation::delete ( )

Delete object.

Definition at line 182 of file class.ilOrgUnitTypeTranslation.php.

References $DIC, $ilDB, getLang(), and getOrguTypeId().

182  : void
183  {
184  $sql = 'DELETE FROM ' . self::TABLE_NAME . ' WHERE orgu_type_id = ' . $this->db->quote(
185  $this->getOrguTypeId(),
186  'integer'
187  ) .
188  ' AND lang = ' . $this->db->quote($this->getLang(), 'text');
189  $this->db->manipulate($sql);
190  }
+ Here is the call graph for this function:

◆ getInstance()

static ilOrgUnitTypeTranslation::getInstance ( int  $a_orgu_type_id,
string  $a_lang_code 
)
static

Get instance of an ilOrgUnitType object Returns object from cache or from database, returns null if no object was found.

Parameters
int$a_orgu_type_idID of an ilOrgUnitType object
string$a_lang_codeLanguage code
Returns
ilOrgUnitTypeTranslation|null

Definition at line 58 of file class.ilOrgUnitTypeTranslation.php.

References $DIC, Vendor\Package\$e, ilDBInterface\fetchObject(), ilDBInterface\numRows(), ilDBInterface\query(), and ilDBInterface\quote().

Referenced by ilOrgUnitType\loadTranslation().

59  {
60  if (!$a_orgu_type_id || !$a_lang_code) {
61  return null;
62  }
63  $cache_id = $a_orgu_type_id . $a_lang_code;
64  if (isset(self::$instances[$cache_id])) {
65  return self::$instances[$cache_id];
66  } else {
67  try {
68  $trans = new self($a_orgu_type_id, $a_lang_code);
69  self::$instances[$cache_id] = $trans;
70 
71  return $trans;
72  } catch (ilOrgUnitTypeException $e) {
73  return null;
74  }
75  }
76  }
Class ilOrgUnitTypeException.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLang()

ilOrgUnitTypeTranslation::getLang ( )

Definition at line 290 of file class.ilOrgUnitTypeTranslation.php.

References $lang.

Referenced by delete(), insertMember(), and updateMember().

290  : string
291  {
292  return $this->lang;
293  }
+ Here is the caller graph for this function:

◆ getMember()

ilOrgUnitTypeTranslation::getMember ( string  $a_member)

Get translated value for a member, returns null if no translation exists.

Parameters
string$a_memberName of the variable, e.g. title,description
Returns
string|null

Definition at line 135 of file class.ilOrgUnitTypeTranslation.php.

Referenced by update().

135  : ?string
136  {
137  return (isset($this->members[$a_member])) ? (string) $this->members[$a_member] : null;
138  }
+ Here is the caller graph for this function:

◆ getMembers()

ilOrgUnitTypeTranslation::getMembers ( )

Definition at line 295 of file class.ilOrgUnitTypeTranslation.php.

References $members.

295  : array
296  {
297  return $this->members;
298  }

◆ getOrguTypeId()

ilOrgUnitTypeTranslation::getOrguTypeId ( )

Definition at line 300 of file class.ilOrgUnitTypeTranslation.php.

References $orgu_type_id.

Referenced by delete(), insertMember(), and updateMember().

300  : int
301  {
302  return $this->orgu_type_id;
303  }
+ Here is the caller graph for this function:

◆ insertMember()

ilOrgUnitTypeTranslation::insertMember ( string  $member,
string  $value 
)
protected

Protected.

Insert a (member,value) pair in database

Definition at line 212 of file class.ilOrgUnitTypeTranslation.php.

References getLang(), and getOrguTypeId().

Referenced by create(), and update().

212  : void
213  {
214  $this->db->insert(self::TABLE_NAME, array(
215  'orgu_type_id' => array('integer', $this->getOrguTypeId()),
216  'lang' => array('text', $this->getLang()),
217  'member' => array('text', $member),
218  'value' => array('text', $value),
219  ));
220  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ read()

ilOrgUnitTypeTranslation::read ( )
protected

Read object data from database.

Exceptions
ilOrgUnitTypeException

Definition at line 264 of file class.ilOrgUnitTypeTranslation.php.

Referenced by __construct().

264  : void
265  {
266  $sql = 'SELECT * FROM ' . self::TABLE_NAME . ' WHERE orgu_type_id = ' . $this->db->quote(
267  $this->orgu_type_id,
268  'integer'
269  ) .
270  ' AND lang = ' . $this->db->quote($this->lang, 'text');
271  $set = $this->db->query($sql);
272  if (!$this->db->numRows($set)) {
273  throw new ilOrgUnitTypeException("OrgUnit type translation for OrgUnit type {$this->orgu_type_id} and language {$this->lang} does not exist in database");
274  }
275  while ($rec = $this->db->fetchObject($set)) {
276  $this->members[$rec->member] = (string) $rec->value;
277  }
278  }
Class ilOrgUnitTypeException.
+ Here is the caller graph for this function:

◆ resetTrackChanges()

ilOrgUnitTypeTranslation::resetTrackChanges ( )
protected

Reset tracked members.

Definition at line 254 of file class.ilOrgUnitTypeTranslation.php.

Referenced by create(), and update().

254  : void
255  {
256  $this->changes = array();
257  $this->members_new = array();
258  }
+ Here is the caller graph for this function:

◆ setLang()

ilOrgUnitTypeTranslation::setLang ( string  $lang)

Getters & Setters.

Definition at line 285 of file class.ilOrgUnitTypeTranslation.php.

References $lang.

285  : void
286  {
287  $this->lang = $lang;
288  }

◆ setMember()

ilOrgUnitTypeTranslation::setMember ( string  $a_member,
string  $a_value 
)

Set translation value for a member, either update or add value.

Parameters
string$a_memberName of the variable, e.g. title,description
string$a_valueValue of the translation

Definition at line 145 of file class.ilOrgUnitTypeTranslation.php.

References trackChange().

146  {
147  $is_new = !isset($this->members[$a_member]);
148  $this->members[$a_member] = (string) $a_value;
149  $this->trackChange($a_member, $is_new);
150  }
trackChange(string $a_member, bool $is_new)
Track a member that was either updated or added.
+ Here is the call graph for this function:

◆ setOrguTypeId()

ilOrgUnitTypeTranslation::setOrguTypeId ( int  $id)

Definition at line 305 of file class.ilOrgUnitTypeTranslation.php.

References $id.

305  : void
306  {
307  $this->orgu_type_id = $id;
308  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:24

◆ trackChange()

ilOrgUnitTypeTranslation::trackChange ( string  $a_member,
bool  $is_new 
)
protected

Track a member that was either updated or added.

Parameters
string$a_memberName of a variable, e.g. title,description
bool$is_newTrue if the member did not exist before

Definition at line 241 of file class.ilOrgUnitTypeTranslation.php.

Referenced by setMember().

241  : void
242  {
243  if (!in_array($a_member, $this->changes)) {
244  $this->changes[] = $a_member;
245  }
246  if ($is_new && !in_array($a_member, $this->members_new)) {
247  $this->members_new[] = $a_member;
248  }
249  }
+ Here is the caller graph for this function:

◆ update()

ilOrgUnitTypeTranslation::update ( )

Update translations in database.

Newly added members are inserted.

Definition at line 166 of file class.ilOrgUnitTypeTranslation.php.

References getMember(), insertMember(), resetTrackChanges(), and updateMember().

166  : void
167  {
168  foreach ($this->changes as $changed_member) {
169  // Check if the member needs to be updated or inserted into database
170  if (in_array($changed_member, $this->members_new)) {
171  $this->insertMember($changed_member, $this->getMember($changed_member));
172  } else {
173  $this->updateMember($changed_member, $this->getMember($changed_member));
174  }
175  }
176  $this->resetTrackChanges();
177  }
updateMember(string $member, string $value)
Update a (member,value) pair in database.
resetTrackChanges()
Reset tracked members.
getMember(string $a_member)
Get translated value for a member, returns null if no translation exists.
insertMember(string $member, string $value)
Protected.
+ Here is the call graph for this function:

◆ updateMember()

ilOrgUnitTypeTranslation::updateMember ( string  $member,
string  $value 
)
protected

Update a (member,value) pair in database.

Definition at line 225 of file class.ilOrgUnitTypeTranslation.php.

References getLang(), and getOrguTypeId().

Referenced by update().

225  : void
226  {
227  $this->db->update(self::TABLE_NAME, array(
228  'value' => array('text', $value),
229  ), array(
230  'orgu_type_id' => array('integer', $this->getOrguTypeId()),
231  'lang' => array('text', $this->getLang()),
232  'member' => array('text', $member),
233  ));
234  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $changes

array ilOrgUnitTypeTranslation::$changes = []
protected

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

◆ $db

ilDBInterface ilOrgUnitTypeTranslation::$db
protected

Definition at line 33 of file class.ilOrgUnitTypeTranslation.php.

◆ $instances

array ilOrgUnitTypeTranslation::$instances = []
staticprotected

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

◆ $lang

string ilOrgUnitTypeTranslation::$lang = ''
protected

Definition at line 29 of file class.ilOrgUnitTypeTranslation.php.

Referenced by getLang(), and setLang().

◆ $log

ILIAS DI LoggingServices ilOrgUnitTypeTranslation::$log
protected

Definition at line 34 of file class.ilOrgUnitTypeTranslation.php.

◆ $members

array ilOrgUnitTypeTranslation::$members = []
protected

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

Referenced by getMembers().

◆ $members_new

array ilOrgUnitTypeTranslation::$members_new = []
protected

Definition at line 32 of file class.ilOrgUnitTypeTranslation.php.

◆ $orgu_type_id

int ilOrgUnitTypeTranslation::$orgu_type_id
protected

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

Referenced by getOrguTypeId().

◆ TABLE_NAME

const ilOrgUnitTypeTranslation::TABLE_NAME = 'orgu_types_trans'

Definition at line 27 of file class.ilOrgUnitTypeTranslation.php.


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