ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilStudyProgrammeAutoMembershipsDBRepository Class Reference

Class ilStudyProgrammeAutoMembershipsDBRepository. More...

+ Inheritance diagram for ilStudyProgrammeAutoMembershipsDBRepository:
+ Collaboration diagram for ilStudyProgrammeAutoMembershipsDBRepository:

Public Member Functions

 __construct (ilDBInterface $db, int $current_usr_id)
 
 readFor (int $prg_obj_id)
 Read auto-membership sources of programme.
Returns
ilStudyProgrammeAutoMembershipSource[]
More...
 
 create (int $prg_obj_id, string $source_type, int $source_id, bool $enabled, int $last_edited_usr_id=null, \DateTimeImmutable $last_edited=null)
 Build an auto-membership source. More...
 
 update (ilStudyProgrammeAutoMembershipSource $ams)
 Update an auto-membership source.
Returns
ilStudyProgrammeAutoCategory[]
More...
 
 delete (int $prg_obj_id, string $source_type, int $source_id)
 Delete a single source-setting. More...
 
 deleteFor (int $prg_obj_id)
 Delete all auto-membership sources of a programme. More...
 
 readFor (int $prg_obj_id)
 Read auto-membership sources of programme. More...
 
 create (int $prg_obj_id, string $source_type, int $source_id, bool $enabled, int $last_edited_usr_id=null, \DateTimeImmutable $last_edited=null)
 Build an auto-membership source. More...
 
 update (ilStudyProgrammeAutoMembershipSource $ams)
 Update an auto-membership source. More...
 
 delete (int $prg_obj_id, string $source_type, int $source_id)
 Delete a single source-setting. More...
 
 deleteFor (int $prg_obj_id)
 Delete all auto-membership sources of a programme. More...
 

Static Public Member Functions

static getProgrammesFor (string $source_type, int $source_id)
 Get all programmes' obj_ids monitoring the given source.
Returns
int[]
More...
 
static getProgrammesFor (string $source_type, int $source_id)
 Get all programmes' obj_ids monitoring the given source. More...
 

Data Fields

const TABLE = 'prg_auto_membership'
 
const FIELD_PRG_OBJ_ID = 'prg_obj_id'
 
const FIELD_SOURCE_TYPE = 'source_type'
 
const FIELD_SOURCE_ID = 'source_id'
 
const FIELD_ENABLED = 'enabled'
 
const FIELD_EDITOR_ID = 'last_usr_id'
 
const FIELD_LAST_EDITED = 'last_edited'
 

Protected Attributes

 $db
 
 $current_usr_id
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilStudyProgrammeAutoMembershipsDBRepository::__construct ( ilDBInterface  $db,
int  $current_usr_id 
)

Member Function Documentation

◆ create()

ilStudyProgrammeAutoMembershipsDBRepository::create ( int  $prg_obj_id,
string  $source_type,
int  $source_id,
bool  $enabled,
int  $last_edited_usr_id = null,
\DateTimeImmutable  $last_edited = null 
)

Build an auto-membership source.

Returns
ilStudyProgrammeAutoMembershipSource

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 67 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

75 if (is_null($last_edited_usr_id)) {
76 $last_edited_usr_id = $this->current_usr_id;
77 }
78 if (is_null($last_edited)) {
79 $last_edited = new \DateTimeImmutable();
80 }
82 $prg_obj_id,
83 $source_type,
84 $source_id,
85 $enabled,
86 $last_edited_usr_id,
87 $last_edited
88 );
89 }

References $current_usr_id.

Referenced by readFor().

+ Here is the caller graph for this function:

◆ delete()

ilStudyProgrammeAutoMembershipsDBRepository::delete ( int  $prg_obj_id,
string  $source_type,
int  $source_id 
)

Delete a single source-setting.

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 127 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

128 {
129 $query = 'DELETE FROM ' . self::TABLE
130 . PHP_EOL . 'WHERE prg_obj_id = ' . $this->db->quote($prg_obj_id, 'integer')
131 . PHP_EOL . 'AND ' . self::FIELD_SOURCE_TYPE . ' = ' . $this->db->quote($source_type, 'string')
132 . PHP_EOL . 'AND ' . self::FIELD_SOURCE_ID . ' = ' . $this->db->quote($source_id, 'integer');
133
134 $this->db->manipulate($query);
135 }
$query

References $query.

◆ deleteFor()

ilStudyProgrammeAutoMembershipsDBRepository::deleteFor ( int  $prg_obj_id)

Delete all auto-membership sources of a programme.

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 140 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

141 {
142 $query = 'DELETE FROM ' . self::TABLE
143 . PHP_EOL . 'WHERE prg_obj_id = ' . $this->db->quote($prg_obj_id, 'integer');
144 $this->db->manipulate($query);
145 }

References $query.

◆ getProgrammesFor()

static ilStudyProgrammeAutoMembershipsDBRepository::getProgrammesFor ( string  $source_type,
int  $source_id 
)
static

Get all programmes' obj_ids monitoring the given source.

Returns
int[]

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 150 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

150 : array
151 {
152 global $ilDB;
153 $query = 'SELECT ' . self::FIELD_PRG_OBJ_ID
154 . PHP_EOL . 'FROM ' . self::TABLE . ' prgs'
155 . PHP_EOL . 'INNER JOIN object_reference oref ON '
156 . 'prgs.' . self::FIELD_PRG_OBJ_ID . ' = oref.obj_id'
157 . PHP_EOL . 'WHERE ' . self::FIELD_SOURCE_TYPE . ' = ' . $ilDB->quote($source_type, 'text')
158 . PHP_EOL . 'AND ' . self::FIELD_SOURCE_ID . ' = ' . $ilDB->quote($source_id, 'integer')
159 . PHP_EOL . 'AND ' . self::FIELD_ENABLED . ' = 1'
160 . PHP_EOL . 'AND oref.deleted IS NULL';
161
162 $res = $ilDB->query($query);
163 $ret = $ilDB->fetchAll($res);
164 return $ret;
165 }
$ret
Definition: parser.php:6
foreach($_POST as $key=> $value) $res
global $ilDB

References $ilDB, $query, $res, and $ret.

◆ readFor()

ilStudyProgrammeAutoMembershipsDBRepository::readFor ( int  $prg_obj_id)

Read auto-membership sources of programme.

Returns
ilStudyProgrammeAutoMembershipSource[]

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 40 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

40 : array
41 {
42 $query = 'SELECT '
43 . self::FIELD_PRG_OBJ_ID . ','
44 . self::FIELD_SOURCE_TYPE . ','
45 . self::FIELD_SOURCE_ID . ','
46 . self::FIELD_ENABLED . ','
47 . self::FIELD_EDITOR_ID . ','
48 . self::FIELD_LAST_EDITED
49 . PHP_EOL . 'FROM ' . self::TABLE
50 . PHP_EOL . 'WHERE ' . self::FIELD_PRG_OBJ_ID . ' = '
51 . $this->db->quote($prg_obj_id, 'integer');
52 $res = $this->db->query($query);
53 $ret = [];
54 while ($rec = $this->db->fetchAssoc($res)) {
55 $ret[] = $this->create(
56 (int) $rec[self::FIELD_PRG_OBJ_ID],
57 $rec[self::FIELD_SOURCE_TYPE],
58 (int) $rec[self::FIELD_SOURCE_ID],
59 (bool) $rec[self::FIELD_ENABLED],
60 (int) $rec[self::FIELD_EDITOR_ID],
61 new \DateTimeImmutable($rec[self::FIELD_LAST_EDITED])
62 );
63 }
64 return $ret;
65 }
create(int $prg_obj_id, string $source_type, int $source_id, bool $enabled, int $last_edited_usr_id=null, \DateTimeImmutable $last_edited=null)
Build an auto-membership source.

References $query, $res, $ret, and create().

+ Here is the call graph for this function:

◆ update()

ilStudyProgrammeAutoMembershipsDBRepository::update ( ilStudyProgrammeAutoMembershipSource  $ams)

Update an auto-membership source.

Returns
ilStudyProgrammeAutoCategory[]

Implements ilStudyProgrammeAutoMembershipsRepository.

Definition at line 94 of file class.ilStudyProgrammeAutoMembershipsDBRepository.php.

95 {
96 $ilAtomQuery = $this->db->buildAtomQuery();
97 $ilAtomQuery->addTableLock(self::TABLE);
99 $ilAtomQuery->addQueryCallable(
100 function (ilDBInterface $db) use ($ams, $current_usr_id) {
101 $query = 'DELETE FROM ' . self::TABLE
102 . PHP_EOL . 'WHERE prg_obj_id = ' . $ams->getPrgObjId()
103 . PHP_EOL . 'AND ' . self::FIELD_SOURCE_TYPE . ' = ' . $this->db->quote($ams->getSourceType(), 'string')
104 . PHP_EOL . 'AND ' . self::FIELD_SOURCE_ID . ' = ' . $ams->getSourceId();
105 $db->manipulate($query);
106 $now = new \DateTimeImmutable();
107 $now = $now->format('Y-m-d H:i:s');
108 $db->insert(
109 self::TABLE,
110 [
111 self::FIELD_PRG_OBJ_ID => ['integer', $ams->getPrgObjId()],
112 self::FIELD_SOURCE_TYPE => ['text', $ams->getSourceType()],
113 self::FIELD_SOURCE_ID => ['integer', $ams->getSourceId()],
114 self::FIELD_ENABLED => ['integer', $ams->isEnabled()],
115 self::FIELD_EDITOR_ID => ['integer', $current_usr_id],
116 self::FIELD_LAST_EDITED => ['timestamp', $now]
117 ]
118 );
119 }
120 );
121 $ilAtomQuery->run();
122 }
Interface ilDBInterface.

References $query, ilStudyProgrammeAutoMembershipSource\getPrgObjId(), ilStudyProgrammeAutoMembershipSource\getSourceId(), ilStudyProgrammeAutoMembershipSource\getSourceType(), ilDBInterface\insert(), ilStudyProgrammeAutoMembershipSource\isEnabled(), and ilDBInterface\manipulate().

+ Here is the call graph for this function:

Field Documentation

◆ $current_usr_id

ilStudyProgrammeAutoMembershipsDBRepository::$current_usr_id
protected

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

Referenced by __construct(), and create().

◆ $db

ilStudyProgrammeAutoMembershipsDBRepository::$db
protected

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

Referenced by __construct().

◆ FIELD_EDITOR_ID

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_EDITOR_ID = 'last_usr_id'

◆ FIELD_ENABLED

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_ENABLED = 'enabled'

◆ FIELD_LAST_EDITED

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_LAST_EDITED = 'last_edited'

◆ FIELD_PRG_OBJ_ID

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_PRG_OBJ_ID = 'prg_obj_id'

◆ FIELD_SOURCE_ID

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_SOURCE_ID = 'source_id'

◆ FIELD_SOURCE_TYPE

const ilStudyProgrammeAutoMembershipsDBRepository::FIELD_SOURCE_TYPE = 'source_type'

◆ TABLE

const ilStudyProgrammeAutoMembershipsDBRepository::TABLE = 'prg_auto_membership'

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