/** * Publico un post marcado como borrador. * @param int $post ID del post a publicar. */ public function action_publicar_post($post) { // Verificamos usuario logueado. if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder publicar posts.'; Request::redirect('/usuario/login'); } // Convertimos el post a ID. $post = (int) $post; // Cargamos el post. $model_post = new Model_Post($post); // Verificamos exista. if (!is_array($model_post->as_array())) { $_SESSION['flash_error'] = '<b>¡Error!</b> Post incorrecto.'; Request::redirect('/'); } // Verifico el usuario. if (Usuario::$usuario_id !== $model_post->usuario_id) { $_SESSION['flash_error'] = '<b>¡Error!</b> Permisos incorrectos.'; Request::redirect('/post/index/' . $post); } // Verifico el estado. if ($model_post->estado !== Model_Post::ESTADO_BORRADOR) { $_SESSION['flash_error'] = '<b>¡Error!</b> Permisos incorrectos.'; Request::redirect('/post/index/' . $post); } // Actualizo el estado. if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_REVISAR_CONTENIDO)) { $model_post->actualizar_estado(Model_Post::ESTADO_PENDIENTE); $model_post->actualizar_fecha(); } else { $model_post->actualizar_estado(Model_Post::ESTADO_ACTIVO); $model_post->actualizar_fecha(); } $_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> Acción realizada correctamente.'; // Enviamos el suceso. $model_suceso = new Model_Suceso(); $model_suceso->crear(Usuario::$usuario_id, 'post_publicado', FALSE, Usuario::$usuario_id, $post); Request::redirect('/post/index/' . $post); }
/** * Realizo el cambio de estados del post. * @param int $post ID del post al cual cambiarle el estado. * @param int $estado Estado que se debe colocar. */ public function action_cambiar_estado_post($post, $estado) { $post = (int) $post; // Cargo el post. $model_post = new Model_Post($post); // Verifico que exista. if (!$model_post->existe()) { $_SESSION['flash_error'] = 'El post al cual le quiere cambiar el estado no se encuentra disponible.'; Request::redirect('/admin/contenido/posts'); } // Obtengo el estado. switch ($model_post->estado) { case 0: // Activo if ($estado == Model_Post::ESTADO_BORRADO) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(Model_Post::ESTADO_BORRADO); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'El post se a eliminado correctamente.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == Model_Post::ESTADO_OCULTO) { // Ocultamos. // Actualizo el estado. $model_post->actualizar_estado(Model_Post::ESTADO_OCULTO); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_ocultar', TRUE, $model_post->id, Usuario::$usuario_id, 0); $model_suceso->crear(Usuario::$usuario_id, 'post_ocultar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } else { $model_suceso->crear($model_post->usuario_id, 'post_ocultar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 5) { // Rechazamos. // Actualizo el estado. $model_post->actualizar_estado(5); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', TRUE, $model_post->id, Usuario::$usuario_id, 0); $model_suceso->crear(Usuario::$usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } else { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 6) { // Enviamos a la papelera. // Actualizo el estado. $model_post->actualizar_estado(6); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_papelera', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_papelera', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_papelera', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; case 1: // Borrador if ($estado == 2) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(2); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; case 2: // Borrado // No hay acciones posibles a este punto. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); break; case 3: // Pendiente if ($estado == 0) { // Aprobamos. // Actualizo el estado. $model_post->actualizar_estado(0); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', TRUE, $model_post->id, Usuario::$usuario_id, 1); $model_suceso->crear(Usuario::$usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } else { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 5) { // Rechazamos. // Actualizo el estado. $model_post->actualizar_estado(5); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', TRUE, $model_post->id, Usuario::$usuario_id, 0); $model_suceso->crear(Usuario::$usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } else { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 0); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 2) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(2); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; case 4: // Oculto if ($estado == 0) { // Mostrar. // Actualizo el estado. $model_post->actualizar_estado(0); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_ocultar', TRUE, $model_post->id, Usuario::$usuario_id, 1); $model_suceso->crear(Usuario::$usuario_id, 'post_ocultar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } else { $model_suceso->crear($model_post->usuario_id, 'post_ocultar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 2) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(2); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; case 5: // Rechazado if ($estado == 0) { // Aprobamos. // Actualizo el estado. $model_post->actualizar_estado(0); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', TRUE, $model_post->id, Usuario::$usuario_id, 1); $model_suceso->crear(Usuario::$usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } else { $model_suceso->crear($model_post->usuario_id, 'post_aprobar', FALSE, $model_post->id, Usuario::$usuario_id, 1); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 2) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(2); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; case 6: // Papelera if ($estado == 0) { // Restauramos. // Actualizo el estado. $model_post->actualizar_estado(0); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_restaurar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_restaurar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_restaurar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } elseif ($estado == 2) { // Borramos. // Actualizo el estado. $model_post->actualizar_estado(2); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informo el resultado $_SESSION['flash_success'] = 'Actualización correcta.'; Request::redirect('/admin/contenido/posts'); } else { // Acción no permitida. $_SESSION['flash_error'] = 'No puedes realizar esa acción.'; Request::redirect('/admin/contenido/posts'); } break; } }
/** * Borramos un post. * @param int $post ID del post a modificar el atributo. */ public function action_borrar_post($post) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO)) { $_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.'; Request::redirect('/'); } // Convertimos el post a ID. $post = (int) $post; // Cargamos el post. $model_post = new Model_Post($post); // Verificamos exista. if (!is_array($model_post->as_array())) { $_SESSION['flash_error'] = 'El post que deseas eliminar no se encuentra disponible.'; Request::redirect('/moderar/desaprobado/posts'); } // Verifico el usuario y sus permisos. if (Usuario::$usuario_id !== $model_post->usuario_id || !Usuario::permiso(Model_Usuario_Rango::PERMISO_ELIMINAR_POSTS)) { $_SESSION['flash_error'] = 'El post que deseas eliminar no se encuentra disponible.'; Request::redirect('/moderar/desaprobado/posts'); } // Actualizo el estado. $model_post->actualizar_estado(Model_Post::ESTADO_BORRADO); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $post, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $post, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $post, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = 'El post fue eliminado correctamente.'; Request::redirect('/moderar/desaprobado/posts'); }