19declare(strict_types=1);
39 return 'incoming_mail';
44 return (
new \
ilSetting())->get(
'show_mail_settings',
'0') ===
'1';
49 return $lng->txt(
'mail_incoming');
54 return AvailablePages::MainSettings;
59 return AvailableSections::Communication;
63 FieldFactory $field_factory,
69 $lng->loadLanguageModule(
'mail');
73 return $field_factory->switchableGroup(
78 $lng->txt(
'mail_incoming_smtp')
81 empty($user->getEmail()) &&
82 empty($user->getSecondEmail())
87 $lng->txt(
'mail_incoming_both')
90 empty($user->getEmail()) &&
91 empty($user->getSecondEmail())
95 $lng->txt(
'mail_incoming')
96 )->withAdditionalTransformation(
108 $lng->loadLanguageModule(
'mail');
110 $input = new \ilIncomingMailInputGUI(
$lng->txt(
'mail_incoming'),
'incoming_mail');
111 $input->setFreeOptionChoice(
false);
112 $input->setUser($user);
113 $input->setValueByArray(
115 ? $this->retrieveValueFromUser($user)
129 $setting = (
int) $settings->
get(
'mail_incoming_mail', (string) \
ilMailOptions::INCOMING_LOCAL);
130 $value = match ($setting) {
150 $current = $this->retrieveValueFromUser($user);
156 return $current !== $default;
164 $mail_options = $this->mailOptionsFor($user);
165 if ($input ===
null) {
166 $settings = new \ilSetting();
167 $mail_options->setIncomingType(
170 $mail_options->setEmailAddressmode(
173 $mail_options->updateOptions();
178 $incoming_type = \is_array($input) ? $input[
'incoming_mail'] : (
int) $input;
179 $mail_options->setIncomingType($incoming_type);
181 $mail_options->updateOptions();
186 if (\is_array($input)) {
187 $address_mode = $input[
'mail_address_option'];
188 } elseif ($form !==
null) {
189 $address_mode = (
int) $form->getInput(
'mail_address_option');
191 $address_mode = $mail_options->getEmailAddressMode();
193 if (\is_int($address_mode)) {
194 $mail_options->setEmailAddressmode($address_mode);
197 $mail_options->updateOptions();
204 $mail_options = $this->mailOptionsFor($user);
207 'incoming_mail' => $mail_options->getIncomingType(),
208 'mail_address_option' => $mail_options->getEmailAddressMode()
217 function (array $v) use (
$refinery, $user): array {
218 $email_address_option = $v[1][
'mail_address_option'] ?? null;
219 if ($user !==
null) {
227 $incoming_type =
$refinery->kindlyTo()->int()->transform($v[0]);
228 if ($email_address_option ===
null) {
233 'incoming_mail' => $incoming_type,
234 'mail_address_option' => $email_address_option ===
null && $user !==
null
235 ? $this->mailOptionsFor($user)->getStoredEmailAddressMode()
239 ])->transform($email_address_option)
249 $value = $user !== null
250 ? $this->retrieveValueFromUser($user)
252 'incoming_mail' => (
int) $settings->
get(
'mail_incoming_mail', (string) \
ilMailOptions::INCOMING_LOCAL),
253 'mail_address_option' => (
int) $settings->
get(
'mail_address_option', (string) \
ilMailOptions::FIRST_EMAIL)
258 return $value[
'incoming_mail'];
262 0 => $value[
'incoming_mail'],
264 'mail_address_option' => $value[
'mail_address_option']
271 FieldFactory $field_factory,
274 if ($user === null || (empty($user->getEmail()) && empty($user->getSecondEmail()))) {
279 'mail_address_option' => $field_factory
285 $lng->txt(
'mail_first_email'),
287 ?
$lng->txt(
'first_email_missing_info')
292 $lng->txt(
'mail_second_email'),
294 ?
$lng->txt(
'second_email_missing_info')
303 if (!\array_key_exists($user->
getId(), $this->mail_options_by_user)) {
304 $this->mail_options_by_user[$user->
getId()] = new \ilMailOptions($user->
getId());
307 return $this->mail_options_by_user[$user->
getId()];
getLegacyInput(Language $lng, \ilSetting $settings, ?\ilObjUser $user=null)
You don't need to add a post_var to the input as the User will handle this for you,...
getDefaultValueForDisplay(Language $lng, \ilSetting $settings)
persistUserInput(\ilObjUser $user, mixed $input, ?\ilPropertyFormGUI $form=null)
getInput(FieldFactory $field_factory, Language $lng, Refinery $refinery, \ilSetting $settings, ?\ilObjUser $user=null)
buildValueSetterArray(\ilSetting $settings, ?\ilObjUser $user=null)
buildTransformation(Refinery $refinery, ?\ilObjUser $user=null)
hasUserPersonalizedSetting(\ilSetting $settings, \ilObjUser $user)
isAvailable()
If this function returns false the setting will not be shown, even if it's PropertyAttributes would a...
array $mail_options_by_user
buildEmailInputs(Language $lng, FieldFactory $field_factory, ?\ilObjUser $user)
mailOptionsFor(\ilObjUser $user)
retrieveValueFromUser(\ilObjUser $user)
final const int INCOMING_BOTH
final const int FIRST_EMAIL
final const int INCOMING_LOCAL
final const int BOTH_EMAIL
final const int INCOMING_EMAIL
final const int SECOND_EMAIL
get(string $a_keyword, ?string $a_default_value=null)
get setting
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists('../ilias.ini.php'))