public function after_save() { //Cargo el modelo para agregar las taxonomias al post Load::models('post_taxonomia'); $taxonomia = new PostTaxonomia(); //Determino si se han enviado categorias $categorias = Input::post('categorias') ? Input::post('categorias') : CATEGORIA_POR_DEFECTO; //Elimino las taxonomias registradas para no crear conflicto $taxonomia->eliminarPostTaxonomia($this->id); //Registro las categorias $taxonomia->registrarPostTaxonomia(Taxonomia::CATEGORIA, $categorias, $this->id, false); //Determino si se han enviado etiquetas $etiquetas = Input::post('etiquetas'); if ($etiquetas) { //Registro las etiquetas $taxonomia->registrarPostTaxonomia(Taxonomia::ETIQUETA, $etiquetas, $this->id, false); } }
/** * Metodo para registrar la clasificación del post * * @param string $tipo Tipo de clasificación a registrar * @param arrray | string $taxonomia Array o String de taxonomias a registrar * @param int $post Código del post * @param boolean $mensaje Indica si se muestra el mensaje de confirmación del registro * @return array */ public function registrarPostTaxonomia($tipo, $taxonomia, $post, $mensaje = false) { //verifico que contenga algo if ($taxonomia) { //Verifico si es categoria if ($tipo == Taxonomia::CATEGORIA) { //Verifico si la categoria es un array if (is_array($taxonomia)) { foreach ($taxonomia as $fila) { $post_categoria = new PostTaxonomia(); $post_categoria->post_id = $post; $post_categoria->taxonomia_id = $fila; $post_categoria->save(); } } else { $post_categoria = new PostTaxonomia(); $post_categoria->post_id = $post; $post_categoria->taxonomia_id = $taxonomia; $post_categoria->save(); } } else { //Separo las etiquetas por coma $taxonomia = explode(',', $taxonomia); //Si es un array if (is_array($taxonomia)) { foreach ($taxonomia as $fila) { $fila = trim($fila); //Quito los espacios $etiqueta = new Taxonomia(); //Verifico si está registrada if (!$etiqueta->getInformacionTaxonomia(Taxonomia::ETIQUETA, '', $fila)) { $etiqueta = new Taxonomia(); $etiqueta->nombre = $fila; $etiqueta->tipo = Taxonomia::ETIQUETA; $etiqueta->save(); } //Si guardo la etiqueta if (isset($etiqueta->id)) { $post_etiqueta = new PostTaxonomia(); $post_etiqueta->post_id = $post; $post_etiqueta->taxonomia_id = $etiqueta->id; $post_etiqueta->save(); } //Tengo que eliminar los pk para poder continuar porque lo que hace es actualizar ¿? $post_etiqueta->id = null; $etiqueta->id = null; } } else { $taxonomia = trim($taxonomia); $etiqueta = new Taxonomia(); if (!$etiqueta->getInformacionTaxonomia(Taxonomia::ETIQUETA, '', $taxonomia)) { $etiqueta = new Taxonomia(); $etiqueta->nombre = $taxonomia; $etiqueta->tipo = Taxonomia::ETIQUETA; $etiqueta->save(); } if (isset($etiqueta->id)) { $post_etiqueta = new PostTaxonomia(); $post_etiqueta->post_id = $post; $post_etiqueta->taxonomia_id = $etiqueta->id; $post_etiqueta->save(); } } } return true; } }