37    public function __construct($a_data, $a_id, $a_call_by_reference)
 
   44        $this->tabs = 
$DIC->tabs();
 
   45        $this->rbacsystem = 
$DIC->rbac()->system();
 
   48        $this->lng->loadLanguageModule(
'mail');
 
   56        $next_class = $this->ctrl->getNextClass($this);
 
   57        $cmd = $this->ctrl->getCmd();
 
   60        switch ($next_class) {
 
   61            case 'ilpermissiongui':
 
   63                $this->ctrl->forwardCommand($perm_gui);
 
   66            case 'ilmailtemplategui':
 
   68                    $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
   91        return $this->rbacsystem->checkAccess(
'write', $this->object->getRefId());
 
   99        return $this->rbacsystem->checkAccess(
'read', $this->object->getRefId());
 
  107        return $this->rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId());
 
  124            $this->tabs->addTarget(
 
  126                $this->ctrl->getLinkTarget($this, 
'view'),
 
  131                'showExternalSettingsForm',
 
  132                'saveExternalSettingsForm',
 
  142            $this->tabs->addTarget(
 
  144                $this->ctrl->getLinkTargetByClass(
'ilmailtemplategui', 
'showTemplates'),
 
  151            $this->tabs->addTarget(
 
  153                $this->ctrl->getLinkTargetByClass(array(get_class($this), 
'ilpermissiongui'), 
'perm'),
 
  154                array(
'perm', 
'info', 
'owner'),
 
  166            $this->tabs->addSubTab(
 
  167                self::SETTINGS_SUB_TAB_ID_GENERAL,
 
  168                $this->lng->txt(
'mail_settings_general_tab'),
 
  169                $this->ctrl->getLinkTarget($this, 
'view')
 
  172            if ($this->
settings->get(
'mail_allow_external')) {
 
  173                $this->tabs->addSubTab(
 
  174                    self::SETTINGS_SUB_TAB_ID_EXTERNAL,
 
  175                    $this->lng->txt(
'mail_settings_external_tab'),
 
  176                    $this->ctrl->getLinkTarget($this, 
'showExternalSettingsForm')
 
  180            $this->tabs->activateSubTab($activeSubTab);
 
  198            $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
  203        if ($form === 
null) {
 
  208        $this->tpl->setContent($form->getHTML());
 
  218        $form->setFormAction($this->ctrl->getFormAction($this, 
'save'));
 
  219        $form->setTitle($this->lng->txt(
'general_settings'));
 
  221        $cb = 
new ilCheckboxInputGUI($this->lng->txt(
'mail_allow_external'), 
'mail_allow_external');
 
  222        $cb->setInfo($this->lng->txt(
'mail_allow_external_info'));
 
  227        include_once 
'Services/Mail/classes/Form/class.ilIncomingMailInputGUI.php';
 
  230        $this->ctrl->setParameterByClass(
'ilobjuserfoldergui', 
'ref_id', 
USER_FOLDER_ID);
 
  231        $incoming_mail_gui->setInfo(sprintf(
 
  232            $this->lng->txt(
'mail_settings_incoming_type_see_also'),
 
  233            $this->ctrl->getLinkTargetByClass(
'ilobjuserfoldergui', 
'settings')
 
  235        $this->ctrl->clearParametersByClass(
'ilobjuserfoldergui');
 
  236        $form->addItem($incoming_mail_gui);
 
  238        $show_mail_settings_gui = 
new ilCheckboxInputGUI($this->lng->txt(
'show_mail_settings'), 
'show_mail_settings');
 
  239        $show_mail_settings_gui->setInfo($this->lng->txt(
'show_mail_settings_info'));
 
  240        $show_mail_settings_gui->setValue(1);
 
  241        $form->addItem($show_mail_settings_gui);
 
  243        $ti = 
new ilNumberInputGUI($this->lng->txt(
'mail_maxsize_attach'), 
'mail_maxsize_attach');
 
  244        $ti->setSuffix($this->lng->txt(
'kb'));
 
  245        $ti->setInfo($this->lng->txt(
'mail_max_size_attachments_total'));
 
  246        $ti->setMaxLength(10);
 
  252        $mn->setTitle($this->lng->txt(
'mail_member_notification'));
 
  255        $cron_mail = 
new ilSelectInputGUI($this->lng->txt(
'cron_mail_notification'), 
'mail_notification');
 
  256        $cron_options = array(
 
  257            0 => $this->lng->txt(
'cron_mail_notification_never'),
 
  258            1 => $this->lng->txt(
'cron_mail_notification_cron')
 
  260        $cron_mail->setOptions($cron_options);
 
  261        $cron_mail->setInfo(sprintf(
 
  262            $this->lng->txt(
'cron_mail_notification_desc'),
 
  263            $this->lng->txt(
'mail_allow_external')
 
  266        $form->addItem($cron_mail);
 
  275            $form->addCommandButton(
'save', $this->lng->txt(
'save'));
 
  287            'mail_allow_external' => $this->
settings->get(
'mail_allow_external'),
 
  288            'incoming_type' => (
int) $this->settings->get(
'mail_incoming_mail'),
 
  291            'show_mail_settings' => $this->settings->get(
'show_mail_settings', 1),
 
  292            'mail_maxsize_attach' => $this->settings->get(
'mail_maxsize_attach'),
 
  293            'mail_notification' => $this->settings->get(
'mail_notification')
 
  303            $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
  307        if ($form->checkInput()) {
 
  308            $incoming_type = (int) $form->getInput(
'incoming_type');
 
  312                $mail_address_option = (int) $form->getInput(
'mail_address_option');
 
  315                    $mail_address_option = (int) $form->getInput(
'mail_address_option_both');
 
  319            $this->
settings->set(
'mail_allow_external', (
int) $form->getInput(
'mail_allow_external'));
 
  320            $this->
settings->set(
'mail_incoming_mail', $incoming_type);
 
  321            $this->
settings->set(
'show_mail_settings', (
int) $form->getInput(
'show_mail_settings'));
 
  323            $this->
settings->set(
'mail_address_option', $mail_address_option);
 
  324            $this->
settings->set(
'mail_maxsize_attach', $form->getInput(
'mail_maxsize_attach'));
 
  325            $this->
settings->set(
'mail_notification', (
int) $form->getInput(
'mail_notification'));
 
  327            ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'), 
true);
 
  328            $this->ctrl->redirect($this);
 
  331        $form->setValuesByPost();
 
  341            $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
  346        if ($form === 
null) {
 
  353            $btn->setUrl($this->ctrl->getLinkTarget($this, 
'sendTestUserMail'));
 
  354            $btn->setCaption(
'mail_external_send_test_usr');
 
  355            $GLOBALS[
'DIC']->toolbar()->addButtonInstance($btn);
 
  358            $btn->setUrl($this->ctrl->getLinkTarget($this, 
'sendTestSystemMail'));
 
  359            $btn->setCaption(
'mail_external_send_test_sys');
 
  360            $GLOBALS[
'DIC']->toolbar()->addButtonInstance($btn);
 
  363        $this->tpl->setContent($form->getHTML());
 
  382            $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
  395        $mail->setSaveInSentbox(
false);
 
  396        $mail->appendInstallationSignature(
true);
 
  398        $lngVariablePrefix = 
'sys';
 
  400            $lngVariablePrefix = 
'usr';
 
  407            $this->lng->txt(
'mail_email_' . $lngVariablePrefix . 
'_subject'),
 
  408            $this->lng->txt(
'mail_email_' . $lngVariablePrefix . 
'_body'),
 
  412        ilUtil::sendSuccess($this->lng->txt(
'mail_external_test_sent'));
 
  423        $form->setFormAction($this->ctrl->getFormAction($this, 
'saveExternalSettingsForm'));
 
  424        $form->setTitle($this->lng->txt(
'mail_settings_external_frm_head'));
 
  426        $smtp = 
new ilCheckboxInputGUI($this->lng->txt(
'mail_smtp_status'), 
'mail_smtp_status');
 
  427        $smtp->setInfo($this->lng->txt(
'mail_smtp_status_info'));
 
  430        $form->addItem($smtp);
 
  432        $host = 
new ilTextInputGUI($this->lng->txt(
'mail_smtp_host'), 
'mail_smtp_host');
 
  433        $host->setInfo($this->lng->txt(
'mail_smtp_host_info'));
 
  434        $host->setRequired(
true);
 
  436        $smtp->addSubItem($host);
 
  438        $port = 
new ilNumberInputGUI($this->lng->txt(
'mail_smtp_port'), 
'mail_smtp_port');
 
  439        $port->setInfo($this->lng->txt(
'mail_smtp_port_info'));
 
  440        $port->allowDecimals(
false);
 
  441        $port->setMinValue(0);
 
  442        $port->setMinValue(0);
 
  443        $port->setRequired(
true);
 
  445        $smtp->addSubItem($port);
 
  447        $encryption = 
new ilSelectInputGUI($this->lng->txt(
'mail_smtp_encryption'), 
'mail_smtp_encryption');
 
  448        $encryptionOptions = array(
 
  449            '' => $this->lng->txt(
'please_choose'),
 
  450            'tls' => $this->lng->txt(
'mail_smtp_encryption_tls'),
 
  451            'ssl' => $this->lng->txt(
'mail_smtp_encryption_ssl')
 
  454        $encryption->setOptions($encryptionOptions);
 
  456        $smtp->addSubItem($encryption);
 
  460        $user->setDisableHtmlAutoComplete(
true);
 
  461        $smtp->addSubItem(
$user);
 
  467        $password->setDisableHtmlAutoComplete(
true);
 
  470        $pre = 
new ilTextInputGUI($this->lng->txt(
'mail_subject_prefix'), 
'mail_subject_prefix');
 
  472        $pre->setMaxLength(32);
 
  473        $pre->setInfo($this->lng->txt(
'mail_subject_prefix_info'));
 
  475        $form->addItem($pre);
 
  477        $send_html = 
new ilCheckboxInputGUI($this->lng->txt(
'mail_send_html'), 
'mail_send_html');
 
  478        $send_html->setInfo($this->lng->txt(
'mail_send_html_info'));
 
  479        $send_html->setValue(1);
 
  481        $form->addItem($send_html);
 
  484        $sh->setTitle($this->lng->txt(
'mail_settings_user_frm_head'));
 
  488            $this->lng->txt(
'mail_system_usr_from_addr'),
 
  489            'mail_system_usr_from_addr' 
  491        $user_from_address->setInfo($this->lng->txt(
'mail_system_usr_from_addr_info'));
 
  492        $user_from_address->setRequired(
true);
 
  494        $form->addItem($user_from_address);
 
  496        $useGlobalReplyToAddress = 
new ilCheckboxInputGUI($this->lng->txt(
'mail_use_global_reply_to_addr'), 
'use_global_reply_to_addr');
 
  497        $useGlobalReplyToAddress->setInfo($this->lng->txt(
'mail_use_global_reply_to_addr_info'));
 
  498        $useGlobalReplyToAddress->setValue(1);
 
  500        $form->addItem($useGlobalReplyToAddress);
 
  502            $this->lng->txt(
'mail_global_reply_to_addr'),
 
  503            'global_reply_to_addr' 
  505        $globalReplyTo->setInfo($this->lng->txt(
'mail_global_reply_to_addr_info'));
 
  506        $globalReplyTo->setRequired(
true);
 
  508        $useGlobalReplyToAddress->addSubItem($globalReplyTo);
 
  510        $user_from_name = 
new ilTextInputGUI($this->lng->txt(
'mail_system_usr_from_name'), 
'mail_system_usr_from_name');
 
  511        $user_from_name->setInfo($this->lng->txt(
'mail_system_usr_from_name_info'));
 
  512        $user_from_name->setRequired(
true);
 
  514        $form->addItem($user_from_name);
 
  517            $this->lng->txt(
'mail_system_usr_env_from_addr'),
 
  518            'mail_system_usr_env_from_addr' 
  520        $user_envelope_from_addr->setInfo($this->lng->txt(
'mail_system_usr_env_from_addr_info'));
 
  522        $form->addItem($user_envelope_from_addr);
 
  525        $sh->setTitle($this->lng->txt(
'mail_settings_system_frm_head'));
 
  529            $this->lng->txt(
'mail_system_sys_from_addr'),
 
  530            'mail_system_sys_from_addr' 
  532        $system_from_addr->setInfo($this->lng->txt(
'mail_system_sys_from_addr_info'));
 
  533        $system_from_addr->setRequired(
true);
 
  535        $form->addItem($system_from_addr);
 
  538            $this->lng->txt(
'mail_system_sys_from_name'),
 
  539            'mail_system_sys_from_name' 
  541        $system_from_name->setRequired(
true);
 
  543        $form->addItem($system_from_name);
 
  546            $this->lng->txt(
'mail_system_sys_reply_to_addr'),
 
  547            'mail_system_sys_reply_to_addr' 
  549        $system_reply_to_addr->setRequired(
true);
 
  551        $form->addItem($system_reply_to_addr);
 
  554            $this->lng->txt(
'mail_system_sys_env_from_addr'),
 
  555            'mail_system_sys_env_from_addr' 
  557        $system_return_path->setInfo($this->lng->txt(
'mail_system_sys_env_from_addr_info'));
 
  559        $form->addItem($system_return_path);
 
  561        $signature = 
new ilTextAreaInputGUI($this->lng->txt(
'mail_system_sys_signature'), 
'mail_system_sys_signature');
 
  562        $signature->setRows(8);
 
  564        $form->addItem($signature);
 
  568                     array(
'placeholder' => 
'CLIENT_NAME', 
'label' => $this->lng->txt(
'mail_nacc_client_name')),
 
  569                     array(
'placeholder' => 
'CLIENT_DESC', 
'label' => $this->lng->txt(
'mail_nacc_client_desc')),
 
  570                     array(
'placeholder' => 
'CLIENT_URL', 
'label' => $this->lng->txt(
'mail_nacc_ilias_url'))
 
  571                 ) as $key => $value) {
 
  572            $placeholders->addPlaceholder($value[
'placeholder'], $value[
'label']);
 
  575        $form->addItem($placeholders);
 
  578            $form->addCommandButton(
'saveExternalSettingsForm', $this->lng->txt(
'save'));
 
  589        $subjectPrefix = $this->
settings->get(
'mail_subject_prefix');
 
  590        if (
false === $subjectPrefix) {
 
  595            'mail_smtp_status' => (
bool) $this->
settings->get(
'mail_smtp_status'),
 
  596            'mail_smtp_host' => $this->settings->get(
'mail_smtp_host'),
 
  597            'mail_smtp_port' => (
int) $this->settings->get(
'mail_smtp_port'),
 
  598            'mail_smtp_user' => $this->settings->get(
'mail_smtp_user'),
 
  599            'mail_smtp_password' => strlen($this->
settings->get(
'mail_smtp_password')) > 0 ? self::PASSWORD_PLACE_HOLDER : 
'',
 
  600            'mail_smtp_encryption' => $this->settings->get(
'mail_smtp_encryption'),
 
  601            'mail_subject_prefix' => $subjectPrefix,
 
  602            'mail_send_html' => (
int) $this->settings->get(
'mail_send_html'),
 
  603            'mail_system_usr_from_addr' => $this->settings->get(
'mail_system_usr_from_addr'),
 
  604            'mail_system_usr_from_name' => $this->settings->get(
'mail_system_usr_from_name'),
 
  605            'mail_system_usr_env_from_addr' => $this->settings->get(
'mail_system_usr_env_from_addr'),
 
  606            'mail_system_sys_from_addr' => $this->settings->get(
'mail_system_sys_from_addr'),
 
  607            'mail_system_sys_from_name' => $this->settings->get(
'mail_system_sys_from_name'),
 
  608            'mail_system_sys_reply_to_addr' => $this->settings->get(
'mail_system_sys_reply_to_addr'),
 
  609            'mail_system_sys_env_from_addr' => $this->settings->get(
'mail_system_sys_env_from_addr'),
 
  610            'mail_system_sys_signature' => $this->settings->get(
'mail_system_sys_signature'),
 
  611            'use_global_reply_to_addr' => (
bool) $this->settings->get(
'use_global_reply_to_addr'),
 
  612            'global_reply_to_addr' => $this->settings->get(
'global_reply_to_addr'),
 
  622            $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->ilias->error_obj->WARNING);
 
  626        $isFormValid = $form->checkInput();
 
  629            $form->setValuesByPost();
 
  634        $isSmtpEnabled = (bool) $form->getInput(
'mail_smtp_status');
 
  635        if ($isSmtpEnabled && $form->getInput(
'mail_smtp_user') && !$form->getInput(
'mail_smtp_password')) {
 
  636            $form->getItemByPostVar(
'mail_smtp_password')->setRequired(
true);
 
  637            $form->getItemByPostVar(
'mail_smtp_password')->setAlert($this->lng->txt(
'mail_smtp_password_req'));
 
  638            $form->setValuesByPost();
 
  643        $this->
settings->set(
'mail_smtp_status', (
int) $form->getInput(
'mail_smtp_status'));
 
  644        $this->
settings->set(
'mail_smtp_host', $form->getInput(
'mail_smtp_host'));
 
  645        $this->
settings->set(
'mail_smtp_port', (
int) $form->getInput(
'mail_smtp_port'));
 
  646        $this->
settings->set(
'mail_smtp_user', $form->getInput(
'mail_smtp_user'));
 
  647        if ($form->getInput(
'mail_smtp_password') != self::PASSWORD_PLACE_HOLDER) {
 
  648            $this->
settings->set(
'mail_smtp_password', $form->getInput(
'mail_smtp_password'));
 
  650        $this->
settings->set(
'mail_smtp_encryption', $form->getInput(
'mail_smtp_encryption'));
 
  652        $this->
settings->set(
'mail_send_html', $form->getInput(
'mail_send_html'));
 
  653        $this->
settings->set(
'mail_subject_prefix', $form->getInput(
'mail_subject_prefix'));
 
  654        $this->
settings->set(
'mail_system_usr_from_addr', $form->getInput(
'mail_system_usr_from_addr'));
 
  655        $this->
settings->set(
'mail_system_usr_from_name', $form->getInput(
'mail_system_usr_from_name'));
 
  656        $this->
settings->set(
'mail_system_usr_env_from_addr', $form->getInput(
'mail_system_usr_env_from_addr'));
 
  657        $this->
settings->set(
'mail_system_sys_from_addr', $form->getInput(
'mail_system_sys_from_addr'));
 
  658        $this->
settings->set(
'mail_system_sys_from_name', $form->getInput(
'mail_system_sys_from_name'));
 
  659        $this->
settings->set(
'mail_system_sys_reply_to_addr', $form->getInput(
'mail_system_sys_reply_to_addr'));
 
  660        $this->
settings->set(
'mail_system_sys_env_from_addr', $form->getInput(
'mail_system_sys_env_from_addr'));
 
  661        $this->
settings->set(
'use_global_reply_to_addr', (
int) $form->getInput(
'use_global_reply_to_addr'));
 
  662        $this->
settings->set(
'global_reply_to_addr', $form->getInput(
'global_reply_to_addr'));
 
  663        $this->
settings->set(
'mail_system_sys_signature', $form->getInput(
'mail_system_sys_signature'));
 
  665        ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'), 
true);
 
  666        $this->ctrl->redirect($this, 
'showExternalSettingsForm');
 
  672    public static function _goto($a_target)
 
  678        if (
$DIC->rbac()->system()->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
 
  682                $_GET[
'cmd'] = 
'frameset';
 
  683                $_GET[
'target'] = 
'';
 
  685                $_GET[
'baseClass'] = 
'ilRepositoryGUI';
 
  688                        $DIC->language()->txt(
'msg_no_perm_read_item'),
 
  699        $DIC[
'ilErr']->raiseError(
$DIC->language()->txt(
'msg_no_perm_read'), 
$DIC[
'ilErr']->FATAL);
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
const MAIL_SUBJECT_PREFIX
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions"ilObjectExcep...
sendTestSystemMailObject()
getExternalSettingsForm()
__construct($a_data, $a_id, $a_call_by_reference)
ilObjMailGUI constructor.
saveObject()
save object@access public
const SETTINGS_SUB_TAB_ID_GENERAL
populateGeneralSettingsForm(ilPropertyFormGUI $form)
saveExternalSettingsFormObject()
sendTestMail($isManualMail=false)
const SETTINGS_SUB_TAB_ID_EXTERNAL
getAdminTabs()
administration tabs show only permissions and trash folder
showExternalSettingsFormObject(ilPropertyFormGUI $form=null)
const PASSWORD_PLACE_HOLDER
isPermissionChangeAllowed()
getTabs()
get tabs abstract method.@abstract overwrite in derived GUI class of your object type @access public
buildSettingsSubTabs($activeSubTab)
showGeneralSettingsForm(ilPropertyFormGUI $form=null)
executeCommand()
execute command
populateExternalSettingsForm(ilPropertyFormGUI $form)
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
redirection script todo: (a better solution should control the processing via a xml file)