/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param PropelPDO $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(PropelPDO $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; // We call the save method on the following object(s) if they // were passed to this object by their coresponding set // method. This object relates to these object(s) by a // foreign key reference. if ($this->aEtiqueta !== null) { if ($this->aEtiqueta->isModified() || $this->aEtiqueta->isNew()) { $affectedRows += $this->aEtiqueta->save($con); } $this->setEtiqueta($this->aEtiqueta); } if ($this->aPartido !== null) { if ($this->aPartido->isModified() || $this->aPartido->isNew()) { $affectedRows += $this->aPartido->save($con); } $this->setPartido($this->aPartido); } if ($this->asfGuardUser !== null) { if ($this->asfGuardUser->isModified() || $this->asfGuardUser->isNew()) { $affectedRows += $this->asfGuardUser->save($con); } $this->setsfGuardUser($this->asfGuardUser); } // If this object has been modified, then save it to the database. if ($this->isModified()) { if ($this->isNew()) { $pk = EtiquetaPartidoPeer::doInsert($this, $con); $affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which // should always be true here (even though technically // BasePeer::doInsert() can insert multiple rows). $this->setNew(false); } else { $affectedRows += EtiquetaPartidoPeer::doUpdate($this, $con); } $this->resetModified(); // [HL] After being saved an object is no longer 'modified' } $this->alreadyInSave = false; } return $affectedRows; }
/** * Guarda las etiquetas de un articulo * @param $etiquetas int * @param $articulo_id int * @return bool */ public function addTagsPost($etiquetas = null, $articulo_id = null) { //verificando que tenga etiquetas if ($etiquetas) { $etiquetas = explode(',', $etiquetas); foreach ($etiquetas as $tag) { $etiqueta = new Etiqueta(); $etiqueta->name = $tag; $etiqueta->url = strtr($tag, ' ', '-'); $etiqueta->save(); $articulo_etiqueta = new ArticuloEtiqueta(); $articulo_etiqueta->articulo_id = $articulo_id; $articulo_etiqueta->etiqueta_id = $etiqueta->id; $articulo_etiqueta->save(); } return true; //TODO Hacia falta retornar verdadero } return false; }
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(); } } } } }