Hola, perdón por el restraso.
El archivo que he modificado ha sido este:
components/com_comprofiler/plugin/user/plug_cbgroupjive/plugins/cbgroupjivewall/cbgroupjivewall.php
GroupJive para enviar las notificaciones hace lo siguiente en este archivo:
Code:
foreach ( $notifications as $notification ) {
cbgjClass::getNotification( $notification->get( 'user_id' ), $row->get( 'user_id' ), $subject, $message, 1, $category, $group );
}
Cada iteración del for es un usuario que llamada como ves a la función "getNotification" de la clase "cbjSlass". Esa función dentro tiene la llamada a comprofilerMail y la llama una vez por cada usuario.
Lo que yo he hecho, es comentar exactamente las líneas que he puesto arriba, y he escrito mi código, (son unas cuantas líneas y no es necesario ponerlo), pero básicamente lo que hago es recuperar los usuarios a los que quiero enviar las notifiaciones y hacer lo siguiente:
Code:
foreach ($emails as $email){
$mailBCC .= $email.', ';
}
$this->sendMail( $id_user, 'lista_notificaciones@geokeda.es', $subject, $message, $mailHtml = 1, $mailFrom_email = null, $mailFrom_name = null, $mailCC = null, $mailBCC, $mailAttachments = null );
Como ves el inconveniente está en que todos los usuarios recibirán el correo con destinatario original "lista_notificaciones...", pero solo se llama una vez al método "comprofilermailer" (que es llamado desde sendMail) y una vez realizadas las comparaciones, es muchísimo mas rápido de esta forma, siempre y cuando no te sea un inconveniente lo que he comentado.