/**
  * Afegeix un o més emails entrats amb \n als llistats de correu. 
  * */
 public static function addEmails($emails, $idL, $idS)
 {
     $RET = array('AFEGITS' => 0, 'ERRORS' => array());
     //Per cada correu
     foreach (explode("\n", $emails) as $MAIL) {
         $email = trim($MAIL);
         $C = new Criteria();
         $C->add(LlistesEmailsPeer::EMAIL, $email);
         $OM = LlistesEmailsPeer::doSelectOne($C);
         //Si el correu no existeix, el validem i l'entrem
         if (!$OM instanceof LlistesEmails) {
             if (ValidaMail($email)) {
                 //Creem el correu als mails generals
                 $OLE = new LlistesEmails();
                 $OLE->setEmail($email);
                 $OLE->setAlta(date('Y-m-d', time()));
                 $OLE->setActiu(true);
                 $OLE->setSiteid($idS);
                 $OLE->save();
                 //Lliguem el mail general amb la llista
                 $OLLE = new LlistesLlistesEmails();
                 $OLLE->setIdllista($idL);
                 $OLLE->setIdemail($OLE->getIdemail());
                 $OLLE->setAlta(date('Y-m-d', time()));
                 $OLLE->setActiu(true);
                 $OLLE->setSiteid($idS);
                 $OLLE->save();
             } else {
                 $RET['ERRORS'][] = trim($MAIL) . ' és invàlid. <br />';
             }
             //Si el correu ja existeix...
         } else {
             //Si no està actiu avisem...
             if ($OM->getActiu() == false) {
                 $RET['ERRORS'][] = trim($MAIL) . ' està marcat com inactiu. Contacta amb informatica@casadecultura.org. <br />';
                 //Si el correu existeix i està actiu, l'actualitzem a la llista actual...
             } else {
                 $C = new Criteria();
                 $C->add(self::IDLLISTA, $idL);
                 $C->add(self::IDEMAIL, $OM->getIdemail());
                 $OLLE = self::doSelectOne($C);
                 //Si no està a la llista actual, l'hi afegim...
                 if (!$OLLE instanceof LlistesLlistesEmails) {
                     $OLLE = new LlistesLlistesEmails();
                     $OLLE->setIdllista($idL);
                     $OLLE->setIdemail($OM->getIdemail());
                     $OLLE->setAlta(date('Y-m-d', time()));
                     $OLLE->setActiu(true);
                     $OLLE->setSiteid($idS);
                     $OLLE->save();
                     //Si ja hi és, l'activem...
                 } else {
                     $OLLE->setActiu(true);
                     $OLLE->save();
                 }
             }
         }
     }
     return $RET;
 }
 public function executeGLlistes(sfWebRequest $request)
 {
     $this->setLayout('gestio');
     $this->IDS = $this->getUser()->getSessionPar('idS');
     $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => ''));
     $this->FCerca = new CercaForm();
     //Per si venim d'una cerca uqe no toca.
     if (!is_array($this->CERCA)) {
         $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => ''));
     }
     $this->FCerca->bind($this->CERCA);
     $this->IDL = $request->getParameter('IDL', 0);
     $this->IDM = $request->getParameter('IDM', 0);
     $this->PAGINA = $request->getParameter('PAGINA');
     $this->MODE = "";
     $accio = $request->getParameter('accio');
     //if($request->hasParameter('BSAVE_MISSATGE')) $accio = 'SM';
     if ($request->hasParameter('BDELETE_MISSATGE')) {
         $accio = 'DM';
     }
     if ($request->hasParameter('BSEGUEIX_LLISTES')) {
         $accio = 'LL';
     }
     //    if($request->hasParameter('BSAVE_LLISTES')) $accio = 'SL';
     if ($request->hasParameter('BSEGUEIX_ENVIAMENT')) {
         $accio = 'SE';
     }
     if ($request->hasParameter('BSEND_PROVA')) {
         $accio = 'SP';
     }
     if ($request->hasParameter('BSEND_LLISTES')) {
         $accio = 'SLL';
     }
     if ($request->hasParameter('BSAVELIST')) {
         $accio = 'SAVELIST';
     }
     if ($request->hasParameter('BCERCAMAIL')) {
         $accio = 'CERCA_MAIL';
     }
     if ($request->hasParameter('BCERCAMAILDNI')) {
         $accio = 'CERCA_MAIL_DNI';
     }
     if ($request->hasParameter('BCERCABAIXES')) {
         $accio = 'CERCA_BAIXES';
     }
     switch ($accio) {
         //Esborrem un missatge
         case 'DM':
             $RM = $request->getParameter('llistes_missatges');
             $OM = LlistesMissatgesPeer::retrieveByPK($RM['idMissatge']);
             if ($OM instanceof LlistesMissatges) {
                 $OM->setActiu(false)->save();
             }
             $this->redirect('gestio/gLlistes');
             break;
             //Edita un missatge
         //Edita un missatge
         case 'EM':
             $this->FMissatge = LlistesMissatgesPeer::initialize($this->IDM, $this->IDS);
             $this->MODE = 'EDITA_MISSATGE';
             break;
             //Nou missatge
         //Nou missatge
         case 'NM':
             $this->FMissatge = LlistesMissatgesPeer::initialize($this->IDM, $this->IDS);
             $this->MODE = 'EDITA_MISSATGE';
             break;
             //Guarda un missatge (Rel amb LL)
             //        case 'SM':
             //                $this->FMissatge = LlistesMissatgesPeer::initialize($this->IDM,$this->IDS);
             //                $RM = $request->getParameter('llistes_missatges');
             //                $this->FMissatge = LlistesMissatgesPeer::initialize($RM['idMissatge'],$this->IDS);
             //                $this->FMissatge->bind($RM);
             //                if($this->FMissatge->isValid()){
             //                    $this->FMissatge->save();
             //                    $this->IDM = $this->FMissatge->getObject()->getIdmissatge();
             //                    $this->getUser()->addLogAction('SAVE_MISS','gLlistes',null,$this->FMissatge->getObject());
             //                    $this->MODE = 'EDITA_MISSATGE';
             //                } else { $this->MODE = 'EDITA_MISSATGE'; }
             //            break;
             //Guarda un missatge i mostra les llistes (Rel amb SM)
         //Guarda un missatge (Rel amb LL)
         //        case 'SM':
         //                $this->FMissatge = LlistesMissatgesPeer::initialize($this->IDM,$this->IDS);
         //                $RM = $request->getParameter('llistes_missatges');
         //                $this->FMissatge = LlistesMissatgesPeer::initialize($RM['idMissatge'],$this->IDS);
         //                $this->FMissatge->bind($RM);
         //                if($this->FMissatge->isValid()){
         //                    $this->FMissatge->save();
         //                    $this->IDM = $this->FMissatge->getObject()->getIdmissatge();
         //                    $this->getUser()->addLogAction('SAVE_MISS','gLlistes',null,$this->FMissatge->getObject());
         //                    $this->MODE = 'EDITA_MISSATGE';
         //                } else { $this->MODE = 'EDITA_MISSATGE'; }
         //            break;
         //Guarda un missatge i mostra les llistes (Rel amb SM)
         case 'LL':
             $this->FMissatge = LlistesMissatgesPeer::initialize($this->IDM, $this->IDS);
             $RM = $request->getParameter('llistes_missatges');
             $this->FMissatge = LlistesMissatgesPeer::initialize($RM['idMissatge'], $this->IDS);
             $this->FMissatge->bind($RM);
             if ($this->FMissatge->isValid()) {
                 $this->FMissatge->save();
                 $this->IDM = $this->FMissatge->getObject()->getIdmissatge();
                 $this->getUser()->addLogAction('SAVE_MISS', 'gLlistes', null, $this->FMissatge->getObject());
                 $this->MODE = 'ESCULL_LLISTA';
                 $this->LLISTES = LlistesLlistesPeer::getLlistesAll($this->IDS);
                 $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($this->IDM);
             } else {
                 $this->MODE = 'EDITA_MISSATGE';
             }
             break;
         case 'EL':
             $this->IDM = $request->getParameter('idM', 0);
             $this->LLISTES = $request->getParameter('llistes', array());
             $this->MODE = 'ESCULL_LLISTA';
             $this->LLISTES = LlistesLlistesPeer::getLlistesAll($this->IDS);
             $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($this->IDM);
             break;
             //        case 'SL':
             //                $this->IDM = $request->getParameter('idM',0);
             //                $this->LLISTES = $request->getParameter('llistes',array());
             //                $this->MODE = 'ESCULL_LLISTA';
             //                LlistesLlistesMissatgesPeer::doGuardar($this->IDM, $this->LLISTES);
             //                $this->LLISTES = LlistesLlistesPeer::getLlistesAll($this->IDS);
             //                $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($this->IDM);
             //            break;
         //        case 'SL':
         //                $this->IDM = $request->getParameter('idM',0);
         //                $this->LLISTES = $request->getParameter('llistes',array());
         //                $this->MODE = 'ESCULL_LLISTA';
         //                LlistesLlistesMissatgesPeer::doGuardar($this->IDM, $this->LLISTES);
         //                $this->LLISTES = LlistesLlistesPeer::getLlistesAll($this->IDS);
         //                $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($this->IDM);
         //            break;
         case 'SE':
             $this->IDM = $request->getParameter('idM', 0);
             $this->LLISTES = $request->getParameter('llistes', array());
             LlistesLlistesMissatgesPeer::doGuardar($this->IDM, $this->LLISTES, $this->IDS);
             $this->MISSATGE = LlistesMissatgesPeer::retrieveByPK($this->IDM);
             $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($this->IDM);
             $this->MODE = 'EDITA_ENVIAMENT';
             break;
         case 'SP':
             $email = $request->getParameter('email', '*****@*****.**');
             $missatge = $request->getParameter('missatge');
             $llistes = $request->getParameter('llistes');
             $this->MISSATGE = LlistesMissatgesPeer::retrieveByPK($missatge);
             $this->MODE = 'EDITA_ENVIAMENT';
             $this->LLISTES_ENV = LlistesLlistesPeer::getLlistesMissatge($missatge);
             if ($this->MISSATGE instanceof LlistesMissatges) {
                 $this->sendMail(OptionsPeer::getString('MAIL_FROM', $this->IDS), $email, $this->MISSATGE->getTitol(), $this->MISSATGE->getText());
             } else {
                 $this->sendMail(OptionsPeer::getString('MAIL_FROM', $this->IDS), $email, "No s'ha trobat el missatge amb codi " . $missatge, '');
             }
             break;
         case 'SLL':
             $email = $request->getParameter('email', '*****@*****.**');
             $missatge = $request->getParameter('missatge');
             $llistes = $request->getParameter('llistes');
             $this->MISSATGE = LlistesMissatgesPeer::retrieveByPK($missatge);
             $this->MODE = 'CARREGA_DADES';
             $this->EMAILS = LlistesLlistesEmailsPeer::getEmailsFromLlistesAll($llistes);
             $this->MISSATGE = LlistesMissatgesPeer::retrieveByPK($missatge);
             //            try {
             //                $MAILS = array();
             //                foreach($this->EMAILS as $OM):
             //                    $MAILS[$OM->getIdemail()] = $OM->getEmail();
             //                endforeach;
             //                $this->NUM_MAILS = sizeof($MAILS);
             //                $RET = $this->sendMail(OptionsPeer::getString('MAIL_FROM',$this->IDS),$MAILS,$this->MISSATGE->getTitol(),$this->MISSATGE->getText());
             //                $this->EMAIL_INC = $RET['MAILS_INC'];
             //            } catch (Exception $e) { echo $e->toString(); }
             $this->MISSATGE->setDataEnviament(date('Y-m-d', time()));
             $this->MISSATGE->save();
             //Enviament a totes les llistes
             //Generem l'arxiu en bash per utilitzar amb el mutt.
             $mail_dir = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'mailing/';
             $mail_dir_site = $mail_dir;
             $this->arxiu_mails = $mail_dir_site . $this->IDS . '-mails.csv';
             $this->arxiu_text = $mail_dir_site . $this->IDS . '-missatge.csv';
             $this->arxiu_titol = $mail_dir_site . $this->IDS . '-titol.csv';
             $this->arxiu_bash = $mail_dir_site . $this->IDS . '-bash.sh';
             $fd = fopen($this->arxiu_mails, 'w+');
             foreach ($this->EMAILS as $OM) {
                 fwrite($fd, $OM->getEmail() . chr(10));
             }
             fclose($fd);
             //Guardem els arxius que usarem.
             file_put_contents($this->arxiu_text, $this->MISSATGE->getText());
             file_put_contents($this->arxiu_titol, $this->MISSATGE->getTitol());
             $OS = SitesPeer::retrieveByPK($this->IDS);
             //Creem el bash que executarem amb el cron.
             $ARXIU = '#!/bin/bash ' . chr(10);
             $ARXIU .= "mails=\$(cat {$this->arxiu_mails} | sort | uniq) " . chr(10);
             $ARXIU .= "contenido=\$(cat {$this->arxiu_text}) " . chr(10);
             $ARXIU .= "export EMAIL=\"{$OS->getNom()} <{$OS->getEmail()}>\"" . chr(10);
             $ARXIU .= "for user in \$mails" . chr(10);
             $ARXIU .= "do" . chr(10);
             $ARXIU .= "echo \$contenido | mutt -e \"set content_type=text/html\" -F \"/home/informatica/www/phplist/CCG/templates/muttrc\" -s \"\$(cat {$this->arxiu_titol})\" \$user " . chr(10);
             $ARXIU .= "done" . chr(10);
             file_put_contents($this->arxiu_bash, $ARXIU);
             break;
         case 'EDITLIST':
             $this->LLISTA = LlistesLlistesPeer::retrieveByPK($this->IDL);
             $this->EMAILS = LlistesLlistesEmailsPeer::getEmailsFromLlistes(array($this->IDL), $request->getParameter('P', 1));
             $this->MODE = 'EDIT_LIST';
             break;
         case 'SAVELIST':
             if (empty($this->IDL)) {
                 $this->LLISTA = new LlistesLlistes();
             } else {
                 $this->LLISTA = LlistesLlistesPeer::retrieveByPK($this->IDL);
             }
             $this->LLISTA->setNom($request->getParameter('nom_llista'));
             $this->LLISTA->setSiteId($this->IDS);
             $this->LLISTA->setActiu(true);
             $this->LLISTA->save();
             $this->IDL = $this->LLISTA->getIdllista();
             $this->INPUTS = LlistesLlistesEmailsPeer::addEmails($request->getParameter('llistat_mails'), $this->IDL, $this->IDS);
             $this->EMAILS = LlistesLlistesEmailsPeer::getEmailsFromLlistes(array($this->IDL), $request->getParameter('P', 1));
             myUser::addLogTimeline('alta', 'usuaris_llistes', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->IDL);
             $this->MODE = 'EDIT_LIST';
             break;
         case 'NEWLIST':
             $this->LLISTA = new LlistesLlistes();
             $this->EMAILS = LlistesLlistesEmailsPeer::getEmailsFromLlistes(array($this->IDL), $request->getParameter('P', 1));
             $this->MODE = 'EDIT_LIST';
             break;
         case 'BML':
             LlistesLlistesEmailsPeer::baixaEmail($request->getParameter('IDE'), $request->getParameter('IDL'));
             $this->LLISTA = LlistesLlistesPeer::retrieveByPK($this->IDL);
             $this->EMAILS = LlistesLlistesEmailsPeer::getEmailsFromLlistes(array($this->IDL), $request->getParameter('P', 1));
             $this->MODE = 'EDIT_LIST';
             break;
             //FEM CERCA DE MAILS
         //FEM CERCA DE MAILS
         case 'CERCA_MAIL':
             $this->LLISTAT_EMAILS = LlistesEmailsPeer::cercaMail($request->getParameter('email'), $this->IDS);
             break;
         case 'CERCA_MAIL_DNI':
             $this->LLISTAT_EMAILS = LlistesEmailsPeer::cercaMailDNI($request->getParameter('dni'), $this->IDS);
             break;
         case 'BAIXA_GENERAL':
             LlistesEmailsPeer::baixaGeneral($request->getParameter('idM'), $this->IDS);
             break;
         case 'CERCA_BAIXES':
             $this->LLISTAT_EMAILS = LlistesEmailsPeer::getAllBaixes($this->IDS);
             break;
     }
     //Inicialitzem els valors comuns
     $this->MISSATGES = LlistesMissatgesPeer::getMissatgesAll($this->IDS, $this->PAGINA);
     $this->LLISTES = LlistesLlistesPeer::getLlistesAll($this->IDS);
 }
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = LlistesEmailsPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setIdemail($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setEmail($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setAlta($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setBaixa($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setActiu($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setSiteId($arr[$keys[5]]);
     }
 }
     <?php 
 $A_U = array();
 $LOU = LlistesEmailsPeer::getUsuari($OE->getEmail());
 foreach ($LOU as $OU) {
     if ($OU instanceof Usuaris) {
         $A_U[$OU->getUsuariId()] = $OU->getDni() . ' - ' . $OU->getNomComplet();
     }
 }
 if (empty($LOU)) {
     $A_U = array(0 => "No s'ha trobat cap coincidència");
 }
 $A_L = array();
 foreach (LlistesEmailsPeer::getLlistes($OE->getEmail()) as $O) {
     $A_L[$O->getIdllista()] = $O->getNom();
     if ($OE->getActiu()) {
         $A_L[$O->getIdllista()] .= LlistesEmailsPeer::isActiuEmailALlista($OE->getIdemail(), $O->getIdllista()) ? '(A)' : '(B)';
     } else {
         $A_L[$O->getIdllista()] .= '(B)';
     }
 }
 if ($OE->getActiu()) {
     $text = "Alta del dia " . $OE->getAlta('d-m-Y') . '<br />' . link_to('Donar-lo de baixa', 'gestio/gLlistes?accio=BAIXA_GENERAL&idM=' . $OE->getIdemail());
 } else {
     $text = "Alta del dia " . $OE->getAlta('d-m-Y') . '<br />Baixa del dia ' . $OE->getBaixa('d-m-Y');
 }
 ?>
              
         <tr>
             <td style="width: 50px;"><?php 
 echo $OE->getEmail();
 ?>
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(LlistesEmailsPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(LlistesEmailsPeer::DATABASE_NAME);
         $criteria->add(LlistesEmailsPeer::IDEMAIL, $pks, Criteria::IN);
         $objs = LlistesEmailsPeer::doSelect($criteria, $con);
     }
     return $objs;
 }