NotificationTarget::addToAddressesList PHP Method

addToAddressesList() public method

Add new mail with lang to current email array
public addToAddressesList ( array $data )
$data array array of data (mail, lang[, id for user])
    function addToAddressesList(array $data)
    {
        global $CFG_GLPI;
        // No email set : get default for user
        if (!isset($data['email']) && isset($data['users_id'])) {
            $data['email'] = UserEmail::getDefaultForUser($data['users_id']);
        }
        $new_mail = trim(Toolbox::strtolower($data['email']));
        $new_lang = '';
        // Default USER TYPE is ANONYMOUS
        $notificationoption = array('usertype' => self::ANONYMOUS_USER);
        if (isset($data['language'])) {
            $new_lang = trim($data['language']);
        }
        $username = '';
        if (isset($data['name']) && !empty($data['name'])) {
            $username = $data['name'];
        }
        if (isset($data['users_id']) && $data['users_id'] > 0) {
            $user = new User();
            if (!$user->getFromDB($data['users_id']) || $user->getField('is_deleted') == 1 || $user->getField('is_active') == 0 || !is_null($user->getField('begin_date')) && $user->getField('begin_date') > $_SESSION["glpi_currenttime"] || !is_null($user->getField('end_date')) && $user->getField('end_date') < $_SESSION["glpi_currenttime"]) {
                // unknown, deleted or disabled user
                return false;
            }
            $filt = getEntitiesRestrictRequest('AND', 'glpi_profiles_users', '', $this->getEntity(), true);
            $prof = Profile_User::getUserProfiles($data['users_id'], $filt);
            if (!count($prof)) {
                // No right on the entity of the object
                return false;
            }
            if (empty($username)) {
                $username = formatUserName(0, $user->getField('name'), $user->getField('realname'), $user->getField('firstname'), 0, 0, true);
            }
            // It is a GLPI user :
            $notificationoption['usertype'] = self::GLPI_USER;
            if (Auth::isAlternateAuth($user->fields['authtype']) || $user->fields['authtype'] == Auth::NOT_YET_AUTHENTIFIED && Auth::isAlternateAuth(Auth::checkAlternateAuthSystems())) {
                $notificationoption['usertype'] = self::EXTERNAL_USER;
            }
        }
        // Pass user type as argument ? forced for specific cases
        if (isset($data['usertype'])) {
            $notificationoption['usertype'] = $data['usertype'];
        }
        $notificationoption = array_merge($this->addAdditionnalUserInfo($data), $notificationoption);
        if (!empty($new_mail)) {
            if (NotificationMail::isUserAddressValid($new_mail) && !isset($this->target[$new_mail])) {
                $param = array('language' => empty($new_lang) ? $CFG_GLPI["language"] : $new_lang, 'email' => $new_mail, 'additionnaloption' => $notificationoption, 'username' => $username);
                if (isset($data['users_id']) && $data['users_id']) {
                    $param['users_id'] = $data['users_id'];
                }
                $this->target[$new_mail] = $param;
            }
        }
    }