/** * 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 = ActivitatsExternesPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setIdactivitat($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setTitol($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setDescripcio($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setDatainicial($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setDatafinal($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setHora($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setUrl($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setPoblacio($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setAdreca($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setEntitat($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setCategoria($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setActiu($arr[$keys[11]]); } }
/** * 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(ActivitatsExternesPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(ActivitatsExternesPeer::DATABASE_NAME); $criteria->add(ActivitatsExternesPeer::IDACTIVITAT, $pks, Criteria::IN); $objs = ActivitatsExternesPeer::doSelect($criteria, $con); } return $objs; }
/** * ActivitatsPeer::getActivitatsHospici() * * Ens mostra un pager amb les activitats seleccionades * * @param mixed $idText * @param mixed $idSite * @param mixed $idPoble * @param mixed $idCategoria * @param mixed $idData * @param mixed $aDates * @param integer $p * @return $aRET = array( 'ON' => array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una població...' ) ), 'QUI' => array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una entitat...' ) ) , 'QUE' => array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una categoria...' ) ) , 'A' => array( Activitats or Activitatsexternes ) ); */ public static function getActivitatsCercaHospici($CER) { $idText = $CER['TEXT']; $idPoble = $CER['POBLE']; $idCategoria = $CER['CATEGORIA']; $idSite = $CER['SITE']; $datai = myUser::revDate($CER['DATAI']); $dataf = myUser::revDate($CER['DATAF']); $p = $CER['P']; $idText = addslashes($idText); //*************************************** // CONSULTEM LES ACTIVITATS INTERNES //*************************************** $C = new Criteria(); $C1 = $C->getNewCriterion(ActivitatsPeer::TMIG, "%{$idText}%", Criteria::LIKE); $C2 = $C->getNewCriterion(ActivitatsPeer::DMIG, "%{$idText}%", Criteria::LIKE); $C1->addOr($C2); $C->add($C1); $C1 = $C->getNewCriterion(HorarisPeer::DIA, $datai, Criteria::GREATER_EQUAL); $C2 = $C->getNewCriterion(HorarisPeer::DIA, $dataf, Criteria::LESS_EQUAL); $C1->addAnd($C2); $C->add($C1); if ($idPoble > 0) { $C->add(PoblacionsPeer::IDPOBLACIO, $idPoble); } if (!empty($idCategoria) && $idCategoria != '0') { $C->add(ActivitatsPeer::TIPUSACTIVITAT_IDTIPUSACTIVITAT, $idCategoria); } if (!empty($idSite) && $idSite != '0') { $C->add(SitesPeer::SITE_ID, $idSite); } $C->addJoin(ActivitatsPeer::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID); $C->addJoin(HorarisPeer::HORARISID, HorarisespaisPeer::HORARIS_HORARISID); $C->addJoin(HorarisespaisPeer::ESPAIS_ESPAIID, EspaisPeer::ESPAIID); $C->addJoin(ActivitatsPeer::SITE_ID, SitesPeer::SITE_ID); $C->addJoin(PoblacionsPeer::IDPOBLACIO, SitesPeer::POBLE); $C->add(ActivitatsPeer::ACTIU, true); $C->add(HorarisPeer::ACTIU, true); $C->add(HorarisespaisPeer::ACTIU, true); $C->add(EspaisPeer::ACTIU, true); $C->add(SitesPeer::ACTIU, true); $C->add(ActivitatsPeer::PUBLICAWEB, true); $C->addGroupByColumn(ActivitatsPeer::ACTIVITATID); $C->addAscendingOrderByColumn(HorarisPeer::DIA); $C->addAscendingOrderByColumn(ActivitatsPeer::TIPUSACTIVITAT_IDTIPUSACTIVITAT); //*************************************** // CONSULTEM LES ACTIVITATS EXTERNES //*************************************** $CE = new Criteria(); $C1 = $CE->getNewCriterion(ActivitatsExternesPeer::TITOL, "%{$idText}%", Criteria::LIKE); $C2 = $CE->getNewCriterion(ActivitatsExternesPeer::DESCRIPCIO, "%{$idText}%", Criteria::LIKE); $C1->addOr($C2); $CE->add($C1); $C1 = $CE->getNewCriterion(ActivitatsExternesPeer::DATAINICIAL, $datai, Criteria::GREATER_EQUAL); $C2 = $CE->getNewCriterion(ActivitatsExternesPeer::DATAINICIAL, $dataf, Criteria::LESS_EQUAL); $C1->addAnd($C2); $CE->add($C1); if ($idPoble > 0) { $CE->add(ActivitatsExternesPeer::POBLACIO, $idPoble); } if (!empty($idCategoria) && $idCategoria != '0') { $CE->add(ActivitatsExternesPeer::CATEGORIA, $idCategoria); } if (!empty($idSite) && $idSite != '0') { $CE->add(ActivitatsExternesPeer::ENTITAT, $idSite); } $CE->addGroupByColumn(ActivitatsExternesPeer::IDACTIVITAT); $CE->addAscendingOrderByColumn(ActivitatsExternesPeer::DATAINICIAL); $CE->addAscendingOrderByColumn(ActivitatsExternesPeer::CATEGORIA); //*************************************** // CARREGUEM ELS ARRAYS //*************************************** $aRET = array('ON' => array('ELEMENT' => array(0 => 'Escull una població...'), 'QUANTS' => array(0 => 0)), 'QUI' => array('ELEMENT' => array(0 => 'Escull una entitat...'), 'QUANTS' => array(0 => 0)), 'QUE' => array('ELEMENT' => array(0 => 'Escull una categoria...'), 'QUANTS' => array(0 => 0)), 'A' => array()); foreach (ActivitatsPeer::doSelect($C) as $OA) { $OTA = TipusactivitatPeer::retrieveByPK($OA->getTipusactivitatIdtipusactivitat()); if ($OTA instanceof Tipusactivitat) { if (!isset($aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()])) { $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()] = 0; } $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()]++; $aRET['QUE']['ELEMENT'][$OTA->getIdTipusactivitat()] = $OTA->getNom() . ' (' . $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()] . ')'; } $OS = SitesPeer::retrieveByPK($OA->getSiteId()); if ($OS instanceof Sites) { if (!isset($aRET['QUI']['QUANTS'][$OS->getSiteid()])) { $aRET['QUI']['QUANTS'][$OS->getSiteid()] = 0; } $aRET['QUI']['QUANTS'][$OS->getSiteid()]++; $aRET['QUI']['ELEMENT'][$OS->getSiteid()] = $OS->getNom() . ' (' . $aRET['QUI']['QUANTS'][$OS->getSiteid()] . ')'; } $OP = PoblacionsPeer::retrieveByPK($OS->getPoble()); if ($OP instanceof Poblacions) { if (!isset($aRET['ON']['QUANTS'][$OP->getIdpoblacio()])) { $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] = 0; } $aRET['ON']['QUANTS'][$OP->getIdpoblacio()]++; $aRET['ON']['ELEMENT'][$OP->getIdpoblacio()] = $OP->getNom() . ' (' . $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] . ')'; } $aRET['A'][$OA->getActivitatid()] = $OA; } foreach (ActivitatsExternesPeer::doSelect($CE) as $OAE) { if (!isset($aRET['QUE']['QUANTS'][$OAE->getCategoria()])) { $aRET['QUE']['QUANTS'][$OAE->getCategoria()] = 0; } $aRET['QUE']['QUANTS'][$OAE->getCategoria()]++; $aRET['QUE']['ELEMENT'][$OAE->getCategoria()] = $OAE->getCategoriaNom() . ' (' . $aRET['QUE']['QUANTS'][$OAE->getCategoria()] . ')'; $OS = SitesPeer::retrieveByPK($OAE->getEntitat()); if ($OS instanceof Sites && is_int($OAE->getEntitat())) { if (!isset($aRET['QUI']['QUANTS'][$OS->getSiteid()])) { $aRET['QUI']['QUANTS'][$OS->getSiteid()] = 0; } $aRET['QUI']['QUANTS'][$OS->getSiteid()]++; $aRET['QUI']['ELEMENT'][$OS->getSiteid()] = $OS->getNom() . ' (' . $aRET['QUI']['QUANTS'][$OS->getSiteid()] . ')'; } else { if (!isset($aRET['QUI']['QUANTS'][$OAE->getEntitat()])) { $aRET['QUI']['QUANTS'][$OAE->getEntitat()] = 0; } $aRET['QUI']['QUANTS'][$OAE->getEntitat()]++; $aRET['QUI']['ELEMENT'][$OAE->getEntitat()] = $OAE->getEntitat() . ' (' . $aRET['QUI']['QUANTS'][$OAE->getEntitat()] . ')'; } $OP = PoblacionsPeer::retrieveByPK($OAE->getPoblacio()); if ($OP instanceof Poblacions) { if (!isset($aRET['ON']['QUANTS'][$OP->getIdpoblacio()])) { $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] = 0; } $aRET['ON']['QUANTS'][$OP->getIdpoblacio()]++; $aRET['ON']['ELEMENT'][$OP->getIdpoblacio()] = $OP->getNom() . ' (' . $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] . ')'; } else { if (!isset($aRET['ON']['QUANTS'][$OAE->getgetPoblacio()])) { $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()] = 0; } $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()]++; $aRET['ON']['ELEMENT'][$OAE->getgetPoblacio()] = $OAE->getgetPoblacio() . ' (' . $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()] . ')'; } $aRET['A']['E' . $OAE->getIdactivitat()] = $OAE; } $aRET['ON']['ELEMENT'][0] = 'Escull una població (' . sizeof($aRET['A']) . ')...'; $aRET['QUI']['ELEMENT'][0] = 'Escull una entitat (' . sizeof($aRET['A']) . ')...'; $aRET['QUE']['ELEMENT'][0] = 'Escull una categoria (' . sizeof($aRET['A']) . ')...'; return $aRET; }
/** * Captura les dades de biblioteques per afegir-les a l'Hospici. * * */ public function executeImportData(sfWebRequest $request) { //Carreguem l'arxiu de coincidències amb els tipus d'activitats de la biblioteca $XML_T = simplexml_load_file('./documents/RelacioTipusActivitatsBiblioteques.txt'); $TAA = array(); foreach ($XML_T->t as $T) { $TAA[(string) $T->ext] = (string) $T->ccg; } $RET = array('NOVES' => 0, 'TROBADES' => 0); $XML = simplexml_load_file("http://www.bibgirona.cat/api/vhospici/events/event_items.xml?page=1&per_page=10"); $total = (int) $XML->info->paginesTotals; for ($i = 1; $i < $total; $i++) { $XML = simplexml_load_file("http://www.bibgirona.cat/api/vhospici/events/event_items.xml?page={$i}&per_page=10"); foreach ($XML->caixa as $C) { //Canviem el lloc pel que toca de la nostra bdd. Si no el trobem hi posem "altres" list($lloc, $entitat) = explode(' - ', $C->espais); if ($lloc == 'Vilobí dOnyar') { $lloc = 'Vilobí d\'Onyar'; } elseif ($lloc == 'La Jonquera') { $lloc = 'Jonquera, la'; } $SQL = new Criteria(); $SQL->add(PoblacionsPeer::NOM, '%' . $lloc . '%', Criteria::LIKE); $OP = PoblacionsPeer::doSelectOne($SQL); if (!$OP instanceof Poblacions) { $OP = PoblacionsPeer::retrieveByPK(1); } $idA = ActivitatsExternesPeer::ExisteixActivitat($OP->getIdPoblacio(), $C->data_inicial, $C->hora_inici, $C->url); if ($idA == 0) { $OA = new ActivitatsExternes(); $RET['NOVES']++; } else { $OA = ActivitatsExternesPeer::retrieveByPK($idA); $RET['TROBADES']++; } $OA->setTitol($C->titol); $OA->setDescripcio($C->text); $OA->setDatainicial($C->data_inicial); $OA->setDatafinal($C->data_fi); $OA->setHora($C->hora_inici); $OA->setUrl($C->url); $OA->setPoblacio($OP->getIdpoblacio()); $OA->setAdreca($entitat); $OA->setEntitat('Biblioteca ' . $entitat); $OA->setCategoria($TAA[(string) $C->tipus_activitat]); $OA->setActiu(true); $OA->save(); } } echo 'Noves: ' . $RET['NOVES'] . '<br />' . 'Trobades: ' . $RET['TROBADES']; return sfView::NONE; }