public function __construct($url) { $tipo_controller = new Tipo_controller(); $termino_controller = new Termino_controller(); $path = parse_url($url, PHP_URL_PATH); $this->url = $path; $segments = explode('/', rtrim($path, '/')); if (!isset($segments[3])) { $segments[3] = 'index'; } $this->segmento = array_splice($segments, 2); $this->palabras_reservadas['tipos'] = $tipo_controller->obtener_slugs(); $this->palabras_reservadas['terminos'] = $termino_controller->obtener_slugs(); $this->objeto = null; }
* */ include_once '../config.php'; // Incluímos el archivo de control require_once RUTA_ADMIN . '/control.php'; // Incluímos la librería de funciones de admin require_once RUTA_ADMIN . '/funciones_admin.php'; require_once RUTA_ADMIN . '/funciones_input.php'; // Incluímos los controladores necesarios require_once RUTA_CONTROLLERS . '/Tipo_controller.php'; require_once RUTA_CONTROLLERS . '/Contenido_controller.php'; include_once RUTA_CONTROLLERS . '/Termino_controller.php'; require_once RUTA_CONTROLLERS . '/Taxonomia_controller.php'; $contenido_controller = new ContenidoController(); $tipo_controller = new Tipo_controller(); $termino_controller = new Termino_controller(); $taxonomia_controller = new Taxonomia_controller(); if ($_GET['tipo'] == 'contenido' && isset($_GET['id']) && is_numeric($_GET['id'])) { $contenido = $contenido_controller->obtener_tipo_by_id($_GET['id']); $tipo = $tipo_controller->obtener_tipo_by_id($contenido->id_tipo); $titulo = $tipo->nombre_singular; $datos_extra = $contenido_controller->obtener_campos_extra_by_tipo($contenido->id_tipo); // var_dump($contenido); $maxlength = ''; if ($tipo->opciones != '') { $dato = json_decode($tipo->opciones); $maxlength = $dato->maxlength; } $inputs = array(); $inputs[]['text'] = array('label' => 'Titulo', 'name' => 'titulo', 'id' => 'titulo', 'placeholder' => '', 'ayuda' => 'Edite si lo desea el titulo del contenido existente', 'value' => $contenido->titulo, 'maxlength' => $maxlength, 'obligatorio' => 'S', 'opciones' => NULL, 'validaciones' => 'required:true,'); $inputs[]['ckeditor'] = array('label' => 'Contenido', 'name' => 'contenido', 'id' => 'contenido', 'placeholder' => '', 'ayuda' => 'Edite si lo desea la descripción acerca del contenido existente', 'value' => $contenido->contenido, 'obligatorio' => 'S', 'opciones' => NULL, 'validaciones' => 'required:true,', 'maxlength' => 100);
* */ include_once '../config.php'; // Incluímos el archivo de control require_once RUTA_ADMIN . '/control.php'; // Incluímos la librería de funciones de admin require_once RUTA_ADMIN . '/funciones_admin.php'; require_once RUTA_ADMIN . '/funciones_input.php'; // Incluímos los controladores necesarios require_once RUTA_CONTROLLERS . '/Tipo_controller.php'; require_once RUTA_CONTROLLERS . '/Taxonomia_controller.php'; if ($_GET['tipo'] != 9) { include_once RUTA_CONTROLLERS . '/Contenido_controller.php'; include_once RUTA_CONTROLLERS . '/Termino_controller.php'; $contenido_controller = new ContenidoController(); $termino_controller = new Termino_controller(); $tipo_controller = new Tipo_controller(); $taxonomia_controller = new Taxonomia_controller(); $datos_extra = $contenido_controller->obtener_campos_extra_by_tipo($_GET['tipo']); // var_dump($datos_extra); $tipo = $tipo_controller->obtener_tipo_by_id($_GET['tipo']); $titulo = $tipo->nombre_singular; $maxlength = ''; if ($tipo->opciones != '') { $dato = json_decode($tipo->opciones); $maxlength = $dato->maxlength; } $inputs = array(); $inputs[]['text'] = array('label' => 'Titulo', 'name' => 'titulo', 'id' => 'titulo', 'placeholder' => '', 'ayuda' => 'Introduzca el titulo del nuevo contenido', 'value' => '', 'maxlength' => $maxlength, 'obligatorio' => 'S', 'opciones' => NULL, 'validaciones' => 'required:true,'); $inputs[]['ckeditor'] = array('label' => 'Contenido', 'name' => 'contenido', 'id' => 'contenido', 'placeholder' => '', 'ayuda' => 'Introduzca una pequeña descripción acerca del nuevo contenido', 'value' => '', 'obligatorio' => 'S', 'opciones' => NULL, 'validaciones' => 'required:true,'); foreach ($datos_extra as $datos) {
public function actualizar_contenido($contenido, $obj_campos_extra, $lista_terminos) { $bd = pdo_bd::get_instance(); $res = $res2 = $res3 = $res_borrado = true; require_once RUTA_CONTROLLERS . '/Termino_controller.php'; $termino_controller = new Termino_controller(); $sql_contenido = 'UPDATE wg_contenidos SET id_usuario = :id_usuario , fecha_publicacion = :f_publicacion, fecha_modificacion = :f_modificacion, contenido = :contenido, titulo = :titulo, estado = :estado, slug = :slug, id_tipo = :id_tipo WHERE id = :id'; $sql_contenido_extra = 'UPDATE wg_contenidos_extra SET id_contenido = :id_contenido, id_tipo = :id_tipo, nombre = :nombre, valor = :valor, opciones = :opciones WHERE id_contenido = :id_content AND nombre = :nombre_actualizar'; $sql_contenido_termino = 'INSERT INTO wg_contenidos_terminos( id_contenido, id_termino ) VALUES ( :id_contenido , :id_termino )'; $sql_eliminar_terminos = 'DELETE FROM wg_contenidos_terminos WHERE id_contenido = :id_contenido'; $pdo = $bd->prepare($sql_contenido); $pdo2 = $bd->prepare($sql_contenido_extra); $pdo3 = $bd->prepare($sql_contenido_termino); $pdo->execute(array('id_usuario' => $contenido->id_usuario, 'f_publicacion' => $contenido->fecha_publicacion, 'f_modificacion' => $contenido->fecha_modificacion, 'contenido' => $contenido->contenido, 'titulo' => $contenido->titulo, 'estado' => $contenido->estado, 'slug' => $contenido->slug, 'id_tipo' => $contenido->id_tipo, 'id' => $contenido->id)); $res = $pdo->rowCount() > 0 ? true : false; if (count($obj_campos_extra) > 0) { // tiene campos extra foreach ($obj_campos_extra as $obj) { // $dato = json_decode( $obj->opciones ); var_dump($obj); $atributo = $obj->nombre; var_dump($contenido->{$atributo}); $pdo2->execute(array('id_contenido' => $contenido->id, 'id_tipo' => $contenido->id_tipo, 'nombre' => $obj->nombre, 'valor' => $contenido->{$atributo}, 'opciones' => $obj->opciones, 'id_content' => $contenido->id, 'nombre_actualizar' => $obj->nombre)); $res2 = $pdo2->rowCount() > 0 ? true : false; // si el numero de filas afectadas es 0 significa que cuando se creo el contenido no se introdujo un valor para // ese contenido extra y al editar puede ser que haya cubierto el campo por lo que hay que añadirlo al sistema if ($pdo2->rowCount() == 0) { $pdo_aux = $bd->prepare('INSERT INTO wg_contenidos_extra(id_contenido, id_tipo, nombre, valor, opciones) VALUES (:id_contenido , :id_tipo , :nombre , :valor , :opciones )'); $pdo_aux->execute(array('id_contenido' => $contenido->id, 'id_tipo' => $contenido->id_tipo, 'nombre' => $obj->nombre, 'valor' => $contenido->{$atributo}, 'opciones' => $obj->opciones)); if ($pdo_aux->rowCount() == 0) { echo 'fatal error'; exit; } else { $res2 = true; } } } } if (!empty($lista_terminos) && count($termino_controller->obtener_terminos_checked_by_id_contenido($contenido->id)) > 0) { // si no es null el contenido tiene terminos $pdo_borrar = $bd->prepare($sql_eliminar_terminos); $pdo_borrar->execute(array('id_contenido' => $contenido->id)); $res_borrado = $pdo_borrar->rowCount() > 0 ? true : false; foreach ($lista_terminos as $termino) { $pdo3->execute(array('id_contenido' => $contenido->id, 'id_termino' => $termino)); } $res3 = $pdo3->rowCount() > 0 ? true : false; } else { if (empty($lista_terminos) && count($termino_controller->obtener_terminos_checked_by_id_contenido($contenido->id)) > 0) { $pdo_borrar = $bd->prepare($sql_eliminar_terminos); $pdo_borrar->execute(array('id_contenido' => $contenido->id)); $res_borrado = $pdo_borrar->rowCount() > 0 ? true : false; } else { if (!empty($lista_terminos)) { foreach ($lista_terminos as $termino) { $pdo3->execute(array('id_contenido' => $contenido->id, 'id_termino' => $termino)); } $res3 = $pdo3->rowCount() > 0 ? true : false; } } } // var_dump($res); // var_dump($res2); // var_dump($res3); // var_dump($res_borrado); // exit(); return $res && $res2 && $res3 && $res_borrado ? true : false; }