function getLinkedUserByType($type)
{
global $DB, $CFG_GLPI;
$userlinktable = getTableForItemType($this->obj->userlinkclass);
$fkfield = $this->obj->getForeignKeyField();
//Look for the user by his id
$query = $this->getDistinctUserSql() . ",\n `{$userlinktable}`.`use_notification` AS notif,\n `{$userlinktable}`.`alternative_email` AS altemail\n FROM `{$userlinktable}`\n LEFT JOIN `glpi_users` ON (`{$userlinktable}`.`users_id` = `glpi_users`.`id`)" . $this->getProfileJoinSql() . "\n WHERE `{$userlinktable}`.`{$fkfield}` = '" . $this->obj->fields["id"] . "'\n AND `{$userlinktable}`.`type` = '{$type}'";
foreach ($DB->request($query) as $data) {
//Add the user email and language in the notified users list
if ($data['notif']) {
$author_email = UserEmail::getDefaultForUser($data['users_id']);
$author_lang = $data["language"];
$author_id = $data['users_id'];
if (!empty($data['altemail']) && $data['altemail'] != $author_email && NotificationMail::isUserAddressValid($data['altemail'])) {
$author_email = $data['altemail'];
}
if (empty($author_lang)) {
$author_lang = $CFG_GLPI["language"];
}
if (empty($author_id)) {
$author_id = -1;
}
$this->addToAddressesList(array('email' => $author_email, 'language' => $author_lang, 'users_id' => $author_id));
}
}
// Anonymous user
$query = "SELECT `alternative_email`\n FROM `{$userlinktable}`\n WHERE `{$userlinktable}`.`{$fkfield}` = '" . $this->obj->fields["id"] . "'\n AND `{$userlinktable}`.`users_id` = 0\n AND `{$userlinktable}`.`use_notification` = 1\n AND `{$userlinktable}`.`type` = '{$type}'";
foreach ($DB->request($query) as $data) {
if (NotificationMail::isUserAddressValid($data['alternative_email'])) {
$this->addToAddressesList(array('email' => $data['alternative_email'], 'language' => $CFG_GLPI["language"], 'users_id' => -1));
}
}
}