ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ILIAS\Registration\RegistrationCodeRepository Class Reference
+ Collaboration diagram for ILIAS\Registration\RegistrationCodeRepository:

Public Member Functions

 __construct (protected readonly ilDBInterface $db)
 
 getTotalCodeCount (?CodeFilter $code_filter=null)
 
 getCodesData (string $order_field, string $order_direction, int $offset, int $limit, CodeFilter $code_filter=null)
 
 loadCodesByIds (array $ids)
 
 deleteCodes (array $ids)
 
 getGenerationDates ()
 
 getCodesByFilter (CodeFilter $code_filter)
 

Private Member Functions

 filterToSQL (CodeFilter $code_filter,)
 

Private Attributes

const string TABLE_NAME = 'reg_registration_codes'
 

Detailed Description

Definition at line 26 of file RegistrationCodeRepository.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Registration\RegistrationCodeRepository::__construct ( protected readonly ilDBInterface  $db)

Definition at line 30 of file RegistrationCodeRepository.php.

32  {
33  }

Member Function Documentation

◆ deleteCodes()

ILIAS\Registration\RegistrationCodeRepository::deleteCodes ( array  $ids)
Parameters
list<int>$ids

Definition at line 145 of file RegistrationCodeRepository.php.

References ilDBConstants\T_INTEGER.

145  : bool
146  {
147  if (\count($ids)) {
148  return (bool) $this->db->manipulate('DELETE FROM ' . self::TABLE_NAME . ' WHERE ' . $this->db->in(
149  'code_id',
150  $ids,
151  false,
153  ));
154  }
155 
156  return false;
157  }

◆ filterToSQL()

ILIAS\Registration\RegistrationCodeRepository::filterToSQL ( CodeFilter  $code_filter)
private

Definition at line 35 of file RegistrationCodeRepository.php.

References ILIAS\Registration\CodeFilter\getAccessLimitation(), ILIAS\Registration\CodeFilter\getCode(), ILIAS\Registration\CodeFilter\getGenerated(), ILIAS\Registration\CodeFilter\getRole(), ilDBConstants\T_INTEGER, and ilDBConstants\T_TEXT.

Referenced by ILIAS\Registration\RegistrationCodeRepository\getCodesByFilter(), ILIAS\Registration\RegistrationCodeRepository\getCodesData(), and ILIAS\Registration\RegistrationCodeRepository\getTotalCodeCount().

37  : string {
38  $where = [];
39  if ($code_filter->getCode()) {
40  $where[] = $this->db->like('code', ilDBConstants::T_TEXT, '%' . $code_filter->getCode() . '%');
41  }
42  if ($code_filter->getRole()) {
43  $where[] = 'role = ' . $this->db->quote($code_filter->getRole(), ilDBConstants::T_INTEGER);
44  }
45  if ($code_filter->getGenerated()) {
46  $where[] = 'generated_on = ' . $this->db->quote($code_filter->getGenerated(), ilDBConstants::T_TEXT);
47  }
48  if ($code_filter->getAccessLimitation()) {
49  $where[] = 'alimit = ' . $this->db->quote($code_filter->getAccessLimitation(), ilDBConstants::T_TEXT);
50  }
51  if ($where !== []) {
52  return ' WHERE ' . implode(' AND ', $where);
53  }
54 
55  return '';
56  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCodesByFilter()

ILIAS\Registration\RegistrationCodeRepository::getCodesByFilter ( CodeFilter  $code_filter)
Returns
list<array{ code_id: int, code: string, role: int, generated_on: int, used: int, role_local: string, alimit: string, alimitdt: string, reg_enabled: int, ext_enabled: int, }

Definition at line 187 of file RegistrationCodeRepository.php.

References ILIAS\Registration\RegistrationCodeRepository\filterToSQL().

187  : array
188  {
189  $set = $this->db->query(
190  'SELECT * FROM ' . self::TABLE_NAME .
191  ($code_filter ? $this->filterToSQL($code_filter) : '')
192  );
193  $result = [];
194  while ($rec = $this->db->fetchAssoc($set)) {
195  $result[] = $rec;
196  }
197 
198  return $result;
199  }
+ Here is the call graph for this function:

◆ getCodesData()

ILIAS\Registration\RegistrationCodeRepository::getCodesData ( string  $order_field,
string  $order_direction,
int  $offset,
int  $limit,
CodeFilter  $code_filter = null 
)
Returns
list<array{ code_id: int, code: string, role: int, used: int, role_local: string, alimit: string, alimitdt: string, reg_enabled: int, ext_enabled: int, generated: int }

Definition at line 84 of file RegistrationCodeRepository.php.

References ILIAS\Registration\RegistrationCodeRepository\filterToSQL(), and ILIAS\Repository\int().

90  : array {
91  $sql = 'SELECT * FROM ' . self::TABLE_NAME . ($code_filter ? $this->filterToSQL($code_filter) : '');
92  if ($order_field) {
93  if ($order_field === 'generated') {
94  $order_field = 'generated_on';
95  }
96  $sql .= ' ORDER BY ' . $order_field . ' ' . $order_direction;
97  }
98 
99  $this->db->setLimit($limit, $offset);
100  $set = $this->db->query($sql);
101  $result = [];
102  while ($rec = $this->db->fetchAssoc($set)) {
103  $rec['generated'] = (int) $rec['generated_on'];
104  unset($rec['generated_on']);
105  $result[] = $rec;
106  }
107 
108  return $result;
109  }
+ Here is the call graph for this function:

◆ getGenerationDates()

ILIAS\Registration\RegistrationCodeRepository::getGenerationDates ( )
Returns
list<int>

Definition at line 162 of file RegistrationCodeRepository.php.

References ILIAS\Repository\int().

162  : array
163  {
164  $set = $this->db->query('SELECT DISTINCT(generated_on) genr FROM ' . self::TABLE_NAME . ' ORDER BY genr');
165  $result = [];
166  while ($rec = $this->db->fetchAssoc($set)) {
167  $result[] = (int) $rec['genr'];
168  }
169 
170  return $result;
171  }
+ Here is the call graph for this function:

◆ getTotalCodeCount()

ILIAS\Registration\RegistrationCodeRepository::getTotalCodeCount ( ?CodeFilter  $code_filter = null)

Definition at line 58 of file RegistrationCodeRepository.php.

References ILIAS\Registration\RegistrationCodeRepository\filterToSQL(), and ILIAS\Repository\int().

60  : int {
61  $set = $this->db->query('SELECT COUNT(*) AS cnt FROM ' . self::TABLE_NAME . ($code_filter ? $this->filterToSQL($code_filter) : ''));
62  $cnt = 0;
63  if ($rec = $this->db->fetchAssoc($set)) {
64  $cnt = (int) ($rec['cnt'] ?? 0);
65  }
66 
67  return $cnt;
68  }
+ Here is the call graph for this function:

◆ loadCodesByIds()

ILIAS\Registration\RegistrationCodeRepository::loadCodesByIds ( array  $ids)
Parameters
list<int>$ids
Returns
list<array{ code_id: int, code: string, role: int, used: int, role_local: string, alimit: string, alimitdt: string, reg_enabled: int, ext_enabled: int, generated: int }

Definition at line 126 of file RegistrationCodeRepository.php.

References ilDBConstants\T_INTEGER.

126  : array
127  {
128  $set = $this->db->query('SELECT * FROM ' . self::TABLE_NAME . ' WHERE ' . $this->db->in(
129  'code_id',
130  $ids,
131  false,
133  ));
134  $result = [];
135  while ($rec = $this->db->fetchAssoc($set)) {
136  $result[] = $rec;
137  }
138 
139  return $result;
140  }

Field Documentation

◆ TABLE_NAME

const string ILIAS\Registration\RegistrationCodeRepository::TABLE_NAME = 'reg_registration_codes'
private

Definition at line 28 of file RegistrationCodeRepository.php.


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