170 {
171 $members = array();
172
173 if (!is_array($old_mail_data = $this->umail->getSavedData())) {
174 $this->umail->savePostData(
175 $this->
user->getId(),
176 array(),
177 "",
178 "",
179 "",
180 "",
181 "",
182 "",
183 "",
184 ""
185 );
186 }
187
188 require_once './Services/Object/classes/class.ilObject.php';
189 require_once 'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
190
191 $ids = ((int)
$_GET[
'search_grp']) ? array((
int)
$_GET[
'search_grp']) :
$_POST[
'search_grp'];
192 foreach ($ids as $grp_id) {
194 foreach ($ref_ids as $ref_id) {
196 (int) $ref_id,
197 $this->
user->getId(),
199 );
200 if (!$can_send_mails) {
201 continue;
202 }
203
204 $roles = $this->rbacreview->getAssignableChildRoles($ref_id);
205 foreach ($roles as $role) {
206 if (substr($role['title'], 0, 14) == 'il_grp_member_' ||
207 substr($role['title'], 0, 13) == 'il_grp_admin_') {
208 if (isset($old_mail_data['rcp_to']) &&
209 trim($old_mail_data['rcp_to']) != '') {
210 $rcpt = (new \ilRoleMailboxAddress($role['obj_id']))->value();
211 if (!$this->umail->existsRecipient($rcpt, (string) $old_mail_data['rcp_to'])) {
212 array_push($members, $rcpt);
213 }
214 } else {
216 }
217 }
218 }
219 }
220 }
221
222 if (count($members)) {
223 $mail_data = $this->umail->appendSearchResult($members, 'to');
224 } else {
225 $mail_data = $this->umail->getSavedData();
226 }
227
228 $this->umail->savePostData(
229 $mail_data["user_id"],
230 $mail_data["attachments"],
231 $mail_data["rcp_to"],
232 $mail_data["rcp_cc"],
233 $mail_data["rcp_bcc"],
234 $mail_data["m_email"],
235 $mail_data["m_subject"],
236 $mail_data["m_message"],
237 $mail_data["use_placeholders"],
238 $mail_data['tpl_ctx_id'],
239 $mail_data['tpl_ctx_params']
240 );
241
243 }
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable.
static _getAllReferences($a_id)
get all reference ids of object
static canSendMailToMembers( $ref_id_or_instance, ?int $usr_id=null, ?int $mail_obj_ref_id=null)
This method was introduced as a band-aid fix for #22764.
Class ilRoleMailboxAddress.
static redirect($a_script)