public static function newTag($entity, $texto) { $user = sfContext::getInstance()->getUser(); if ($user->isAuthenticated() && $texto) { $tags = preg_split("/[\\s,]+/", $texto); foreach ($tags as $tag) { $c = new Criteria(); $c1 = new VoCriterion($c, EtiquetaPeer::TEXTO, SfVoUtil::strtolowerEs($tag)); $c1->setIgnoreAccent(true); //$c->add(EtiquetaPeer::TEXTO, strtolower($tag) . ' collate utf8_bin'); $c->add($c1); $c->add(EtiquetaPeer::CULTURE, $user->getCulture()); $etiqueta = EtiquetaPeer::doSelectOne($c); if (!$etiqueta) { $etiqueta = new Etiqueta(); $etiqueta->setTexto(SfVoUtil::strtolowerEs($tag)); $etiqueta->setCulture($user->getCulture()); $etiqueta->save(); } if ($entity->getType() == Politico::NUM_ENTITY) { $c->add(EtiquetaPoliticoPeer::ETIQUETA_ID, $etiqueta->getId()); $c->add(EtiquetaPoliticoPeer::CULTURE, $user->getCulture()); $c->add(EtiquetaPoliticoPeer::POLITICO_ID, $entity->getId()); $c->add(EtiquetaPoliticoPeer::SF_GUARD_USER_ID, $user->getGuardUser()->getId()); $etiquetaPolitico = EtiquetaPoliticoPeer::doSelectOne($c); if (!$etiquetaPolitico) { $etiquetaPolitico = new EtiquetaPolitico(); $etiquetaPolitico->setPoliticoId($entity->getId()); $etiquetaPolitico->setEtiquetaId($etiqueta->getId()); $etiquetaPolitico->setCulture($user->getCulture()); $etiquetaPolitico->setFecha(time()); $etiquetaPolitico->setSfGuardUserId($user->getGuardUser()->getId()); $etiquetaPolitico->save(); } else { $etiquetaPolitico->setFecha(time()); $etiquetaPolitico->save(); } } elseif ($entity->getType() == Partido::NUM_ENTITY) { $c->add(EtiquetaPartidoPeer::ETIQUETA_ID, $etiqueta->getId()); $c->add(EtiquetaPartidoPeer::CULTURE, $user->getCulture()); $c->add(EtiquetaPartidoPeer::PARTIDO_ID, $entity->getId()); $c->add(EtiquetaPartidoPeer::SF_GUARD_USER_ID, $user->getGuardUser()->getId()); $etiquetaPartido = EtiquetaPartidoPeer::doSelectOne($c); if (!$etiquetaPartido) { $etiquetaPartido = new EtiquetaPartido(); $etiquetaPartido->setPartidoId($entity->getId()); $etiquetaPartido->setEtiquetaId($etiqueta->getId()); $etiquetaPartido->setCulture($user->getCulture()); $etiquetaPartido->setFecha(time()); $etiquetaPartido->setSfGuardUserId($user->getGuardUser()->getId()); $etiquetaPartido->save(); } else { $etiquetaPartido->setFecha(time()); $etiquetaPartido->save(); } } elseif ($entity->getType() == Propuesta::NUM_ENTITY) { $c->add(EtiquetaPropuestaPeer::ETIQUETA_ID, $etiqueta->getId()); $c->add(EtiquetaPropuestaPeer::CULTURE, $user->getCulture()); $c->add(EtiquetaPropuestaPeer::PROPUESTA_ID, $entity->getId()); $c->add(EtiquetaPropuestaPeer::SF_GUARD_USER_ID, $user->getGuardUser()->getId()); $etiquetaPropuesta = EtiquetaPropuestaPeer::doSelectOne($c); if (!$etiquetaPropuesta) { $etiquetaPropuesta = new EtiquetaPropuesta(); $etiquetaPropuesta->setPropuestaId($entity->getId()); $etiquetaPropuesta->setEtiquetaId($etiqueta->getId()); $etiquetaPropuesta->setCulture($user->getCulture()); $etiquetaPropuesta->setFecha(time()); $etiquetaPropuesta->setSfGuardUserId($user->getGuardUser()->getId()); $etiquetaPropuesta->save(); } else { $etiquetaPropuesta->setFecha(time()); $etiquetaPropuesta->save(); } } } } }
/** * Declares an association between this object and a Etiqueta object. * * @param Etiqueta $v * @return EtiquetaPartido The current object (for fluent API support) * @throws PropelException */ public function setEtiqueta(Etiqueta $v = null) { if ($v === null) { $this->setEtiquetaId(NULL); } else { $this->setEtiquetaId($v->getId()); } $this->aEtiqueta = $v; // Add binding for other direction of this n:n relationship. // If this object has already been added to the Etiqueta object, it will not be re-added. if ($v !== null) { $v->addEtiquetaPartido($this); } return $this; }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param Etiqueta $value A Etiqueta object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(Etiqueta $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = serialize(array((string) $obj->getId(), (string) $obj->getCulture())); } // if key === null self::$instances[$key] = $obj; } }