/** * Retrieve object using using composite pkey values. * @param int $idllista * @param int $idmissatge * @param PropelPDO $con * @return LlistesLlistesMissatges */ public static function retrieveByPK($idllista, $idmissatge, PropelPDO $con = null) { $key = serialize(array((string) $idllista, (string) $idmissatge)); if (null !== ($obj = LlistesLlistesMissatgesPeer::getInstanceFromPool($key))) { return $obj; } if ($con === null) { $con = Propel::getConnection(LlistesLlistesMissatgesPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $criteria = new Criteria(LlistesLlistesMissatgesPeer::DATABASE_NAME); $criteria->add(LlistesLlistesMissatgesPeer::IDLLISTA, $idllista); $criteria->add(LlistesLlistesMissatgesPeer::IDMISSATGE, $idmissatge); $v = LlistesLlistesMissatgesPeer::doSelect($criteria, $con); return !empty($v) ? $v[0] : null; }
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 = LlistesLlistesMissatgesPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setIdllista($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setIdmissatge($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setActiu($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setSiteId($arr[$keys[3]]); } }