/** * 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; } }
/** * Método para editar las taxonomias * * @param string $tipo Tipo de taxonomia a editar 'etiqueta' o 'categoria' * @param int $id Codigo de la taxonomía * @param string $key Palabra 'key' que viene en la url * @param string $valueKey Llave de seguridad para prevenir que se edite directamente desde la url */ public function editar($tipo, $id = null, $key = 'key', $valueKey = '') { if ($tipo === 'categoria' or $tipo === 'etiqueta') { //Asigno el título a la página $this->title = $tipo == 'categoria' ? 'Editar categoría' : 'Editar etiqueta'; //Verifico si ha enviado los datos a través del formulario if (Input::hasPost('taxonomia')) { //Verifico que el formulario coincida con la llave almacenada en sesion if (SecurityKey::isValid()) { $taxonomia = new Taxonomia(Input::post('taxonomia')); //Aplico la autocarga $taxonomia = $taxonomia->modificarTaxonomia(true); } else { Flash::info('La llave de acceso ha caducado. Por favor intente nuevamente'); } Router::redirect('dc-admin/' . $tipo . '/'); } else { //Armo la llave con el código de la url $this->validKey = md5($id . $this->ipKey . $this->expKey . $tipo); //Verifico que la llave de la url sea igual a la llave creada internamente if ($this->validKey === $valueKey) { $this->tipo = $tipo == 'categoria' ? Taxonomia::CATEGORIA : Taxonomia::ETIQUETA; $taxonomia = new Taxonomia(); $this->taxonomia = $taxonomia->getInformacionTaxonomia($this->tipo, $id); //Asigno la clasificación $this->clasificacion = $this->tipo === Taxonomia::CATEGORIA ? 'categoría' : 'etiqueta'; } else { Flash::error('Acceso denegado al sistema.'); Router::redirect('dc-admin/' . $tipo . '/'); } } } else { Flash::info('Acceso incorrecto al sistema.'); Router::redirect('dc-admin/'); } }