/**
  * 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;
 }
Пример #2
0
 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]]);
     }
 }