19declare(strict_types=1);
33 $query = $this->db->queryF(
34 'SELECT * FROM ' . self::TABLE_NAME .
' WHERE usr_id = %s',
40 while ($row = $this->db->fetchObject($query)) {
41 $setting_values[$row->keyword] = $row->value;
44 return $setting_values;
49 $this->db->manipulateF(
50 'DELETE FROM ' . self::TABLE_NAME .
' WHERE usr_id = %s',
58 $this->db->manipulateF(
59 'DELETE FROM ' . self::TABLE_NAME .
' WHERE usr_id = %s AND keyword = %s',
67 $query =
'INSERT INTO ' . self::TABLE_NAME .
' VALUES ' . implode(
75 array_keys($settings_array)
78 $this->db->manipulate($query);
99 string $profile_data_table_name,
100 string $login_data_column_name,
101 string $firstname_data_column_name,
102 string $lastname_data_column_name,
103 string $primary_email_data_column_name,
104 string $secondary_email_data_column_name
106 return 'SELECT ' . $this->buildConditionalSearchFieldString(
107 $login_data_column_name,
108 $firstname_data_column_name,
109 $lastname_data_column_name,
110 $primary_email_data_column_name,
111 $secondary_email_data_column_name
112 ) .
" FROM {$profile_data_table_name}" . PHP_EOL
113 . $this->buildConditionalSearchJoinString($profile_data_table_name);
117 string $login_data_column_name,
118 string $firstname_data_column_name,
119 string $lastname_data_column_name,
120 string $primary_email_data_column_name,
121 string $secondary_email_data_column_name
126 $login_data_column_name,
128 "(CASE WHEN ({$firstname_data_column_name} IS NOT NULL" . PHP_EOL
129 .
'AND (profilevisibility.value = %s OR profilevisibility.value = %s))' . PHP_EOL
130 .
"THEN {$firstname_data_column_name} ELSE '' END) {$firstname_data_column_name}",
135 "(CASE WHEN ({$lastname_data_column_name} IS NOT NULL" . PHP_EOL
136 .
'AND (profilevisibility.value = %s OR profilevisibility.value = %s))' . PHP_EOL
137 .
"THEN {$lastname_data_column_name} ELSE '' END) {$lastname_data_column_name}",
142 "(CASE WHEN ({$primary_email_data_column_name} IS NOT NULL" . PHP_EOL
143 .
'AND (profilevisibility.value = %s OR profilevisibility.value = %s)' . PHP_EOL
144 .
'AND primaryemailvisibility.value = %s)' . PHP_EOL
145 .
"THEN {$primary_email_data_column_name} ELSE '' END) {$primary_email_data_column_name}",
151 "(CASE WHEN ({$secondary_email_data_column_name} IS NOT NULL" . PHP_EOL
152 .
'AND (profilevisibility.value = %s OR profilevisibility.value = %s)' . PHP_EOL
153 .
'AND secondaryemailvisibility.value = %s)' . PHP_EOL
154 .
"THEN {$secondary_email_data_column_name} ELSE '' END) {$secondary_email_data_column_name}",
164 string $profile_data_table_name
166 return 'LEFT OUTER JOIN ' . self::TABLE_NAME .
' profilevisibility' . PHP_EOL
167 .
"ON profilevisibility.usr_id = {$profile_data_table_name}.usr_id" . PHP_EOL
168 .
'AND profilevisibility.keyword = ' . $this->db->quote(
'public_profile', \
ilDBConstants::T_TEXT) . PHP_EOL
169 .
'LEFT OUTER JOIN ' . self::TABLE_NAME .
' firstnamevisibility' . PHP_EOL
170 .
"ON firstnamevisibility.usr_id = {$profile_data_table_name}.usr_id" . PHP_EOL
171 .
'AND firstnamevisibility.keyword = ' . $this->db->quote(
'public_firstname', \
ilDBConstants::T_TEXT) . PHP_EOL
172 .
'LEFT OUTER JOIN ' . self::TABLE_NAME .
' lastnamevisibility' . PHP_EOL
173 .
"ON lastnamevisibility.usr_id = {$profile_data_table_name}.usr_id" . PHP_EOL
174 .
'AND lastnamevisibility.keyword = ' . $this->db->quote(
'public_lastname', \
ilDBConstants::T_TEXT) . PHP_EOL
175 .
'LEFT OUTER JOIN ' . self::TABLE_NAME .
' primaryemailvisibility' . PHP_EOL
176 .
"ON primaryemailvisibility.usr_id = {$profile_data_table_name}.usr_id" . PHP_EOL
177 .
'AND primaryemailvisibility.keyword = ' . $this->db->quote(
'public_email', \
ilDBConstants::T_TEXT) . PHP_EOL
178 .
'LEFT OUTER JOIN ' . self::TABLE_NAME .
' secondaryemailvisibility' . PHP_EOL
179 .
"ON secondaryemailvisibility.usr_id = {$profile_data_table_name}.usr_id" . PHP_EOL
180 .
'AND secondaryemailvisibility.keyword = ' . $this->db->quote(
'public_second_email', \
ilDBConstants::T_TEXT);
deleteSingleFor(int $user_id, string $key)
buildConditionalSearchJoinString(string $profile_data_table_name)
buildConditionalSearchFieldString(string $login_data_column_name, string $firstname_data_column_name, string $lastname_data_column_name, string $primary_email_data_column_name, string $secondary_email_data_column_name)
__construct(private readonly \ilDBInterface $db)
storeSingleFor(int $user_id, string $key, string $value)
storeFor(int $user_id, array $settings_array)
getSearchSelectConditionalOnVisibility(string $profile_data_table_name, string $login_data_column_name, string $firstname_data_column_name, string $lastname_data_column_name, string $primary_email_data_column_name, string $secondary_email_data_column_name)
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...