return $a->amount > $b->amount ? -1 : 1; }); break; } ?> <div class="widget gestrew"> <div class="message"> <?php echo Text::get('dashboard-rewards-notice'); ?> </div> <div class="rewards"> <?php $num = 1; foreach ($rewards as $rewardId => $rewardData) { $who = Invest::choosed($rewardData->id); ?> <div class="reward <?php if ($num % 4 == 0) { echo " last"; } ?> "> <div class="orden"><?php echo $num; ?> </div> <span class="aporte"><?php echo Text::get('dashboard-rewards-management-amount'); ?> <span class="num"><?php
/** * Realiza el envio masivo a participantees o cofinanciadores * * @param type $option 'messegers' || 'rewards' * @param type $project Instancia del proyecto de trabajo * @return boolean */ public static function process_mailing($option, $project) { $who = array(); // verificar que hay mensaje if (empty($_POST['message'])) { Message::Error(Text::get('dashboard-investors-mail-text-required')); return false; } else { $msg_content = nl2br(\strip_tags($_POST['message'])); } // si a todos los participantes if ($option == 'messegers' && !empty($_POST['msg_all'])) { // a todos los participantes foreach (Model\Message::getMessegers($project->id) as $messeger => $msgData) { if ($messeger == $project->owner) { continue; } $who[$messeger] = $messeger; // unset($msgData); // los datos del mensaje del participante no se usan } } elseif ($option == 'rewards' && !empty($_POST['msg_all'])) { // a todos los cofinanciadores foreach (Model\Invest::investors($project->id, false, true) as $user => $investor) { // no duplicar $who[$investor->user] = $investor->user; } } elseif (!empty($_POST['msg_user'])) { // a usuario individual $who[$_POST['msg_user']] = $_POST['msg_user']; } elseif ($option == 'rewards') { $msg_rewards = array(); // estos son msg_reward-[rewardId], a un grupo de recompensa foreach ($_POST as $key => $value) { $parts = explode('-', $key); if ($parts[0] == 'msg_reward' && $value == 1) { $msg_rewards[] = $parts[1]; } } // para cada recompensa foreach ($msg_rewards as $reward) { foreach (Model\Invest::choosed($reward) as $user) { $who[$user] = $user; } } } // no hay destinatarios if (count($who) == 0) { Message::Error(Text::get('dashboard-investors-mail-nowho')); return false; } // obtener contenido // segun destinatarios $allsome = explode('/', Text::get('regular-allsome')); $enviandoa = !empty($_POST['msg_all']) ? $allsome[0] : $allsome[1]; if ($option == 'messegers') { Message::Info(Text::get('dashboard-messegers-mail-sendto', $enviandoa)); } else { Message::Info(Text::get('dashboard-investors-mail-sendto', $enviandoa)); } // Obtenemos la plantilla para asunto y contenido $template = Template::get(2); // Sustituimos los datos if (!empty($_POST['subject'])) { $subject = $_POST['subject']; } else { $subject = str_replace('%PROJECTNAME%', $project->name, $template->title); } $remite = $project->name . ' ' . Text::get('regular-from') . ' '; $remite .= NODE_ID != GOTEO_NODE ? NODE_NAME : GOTEO_MAIL_NAME; $search = array('%MESSAGE%', '%PROJECTNAME%', '%PROJECTURL%', '%OWNERURL%', '%OWNERNAME%'); $replace = array($msg_content, $project->name, SITE_URL . "/project/" . $project->id, SITE_URL . "/user/profile/" . $project->owner, $project->user->name); $content = \str_replace($search, $replace, $template->text); // para usar el proceso Sender: // - $who debe ser compatible con el formato $receivers // (falta nombre e email), sacarlo con getMini $receivers = array(); foreach ($who as $userId) { $user = Model\User::getMini($userId); $user->user = $user->id; $receivers[] = $user; } // - en la plantilla hay que cambiar %NAME% por %USERNAME% para que sender reemplace // - // - se crea un registro de tabla mail $sql = "INSERT INTO mail (id, email, html, template, node) VALUES ('', :email, :html, :template, :node)"; $values = array(':email' => 'any', ':html' => $content, ':template' => $template->id, ':node' => \GOTEO_NODE); $query = \Goteo\Core\Model::query($sql, $values); $mailId = \Goteo\Core\Model::insertId(); // - se usa el metodo initializeSending para grabar el envío (parametro para autoactivar) // , también metemos el reply y repplyName (remitente) en la instancia de envío if (\Goteo\Library\Sender::initiateSending($mailId, $subject, $receivers, 1, $project->user->email, $remite)) { Message::Info(Text::get('dashboard-investors-mail-sended', 'la cola de envíos')); // cambiar este texto } else { Message::Error(Text::get('dashboard-investors-mail-fail', 'la cola de envíos')); // cambiar este texto } return true; }