Beispiel #1
0
            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 
Beispiel #2
0
 /**
  * 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;
 }