/** * 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; }