interacion en el foro - ManuelJDonoso/Proyecto_daw GitHub Wiki
Interacción del Foro
Propósito
Este documento detalla los mecanismos de interacción del usuario dentro del sistema de foros de Crónicas de Mérida. Cubre cómo los usuarios crean temas y publicaciones, cómo los permisos controlan estas interacciones y la funcionalidad de "me gusta". Para información sobre la estructura general del foro, consulta Estructura del Foro.
Descripción General
El sistema de interacción del foro permite a los usuarios participar en discusiones según sus permisos basados en roles. El sistema presenta un diseño de tres columnas con secciones colapsables para categorías, temas y publicaciones, junto con controles para la moderación de contenido.
Componentes de Interacción del Usuario
La interfaz del foro proporciona diferentes elementos interactivos según los roles de usuario y la configuración de permisos:
Componente | Descripción | Acceso por Rol |
---|---|---|
Selección de Categoría | Lista de categorías de discusión disponibles | Todos los usuarios |
Lista de Temas | Temas dentro de la categoría seleccionada | Todos los usuarios |
Visualización de Publicaciones | Publicaciones dentro de un tema seleccionado | Todos los usuarios |
Crear Categoría | Formulario para agregar nuevas categorías | Administrador |
Crear Tema | Formulario para crear nuevos temas dentro de una categoría | Administrador, Moderador, Jugador (si está permitido) |
Crear Publicación | Formulario para agregar nuevas publicaciones a temas | Administrador, Moderador, Jugador (si está permitido) |
Me Gusta / No Me Gusta | Botón para dar o quitar "me gusta" a publicaciones | Administrador, Moderador, Jugador |
Activar/Desactivar Creación de Temas | Controla si se pueden crear nuevos temas | Administrador |
Activar/Desactivar Creación de Publicaciones | Controla si se pueden agregar nuevas publicaciones | Administrador, Moderador, Creador del Tema |
Controles de Eliminación | Botones para eliminar contenido | Administrador, Moderador, Creador del Contenido |
Flujo de Interacción del Foro
El siguiente diagrama ilustra las interacciones del usuario y el flujo de datos dentro del sistema de foros:
Creación de Temas
Los usuarios pueden crear nuevos temas en categorías si la categoría permite la creación de temas. Esta configuración es controlada por los administradores a través del controlador toggle_temas.php
.
Cuando una categoría permite la creación de temas, se muestra un formulario a los usuarios elegibles (administradores, moderadores y jugadores):
El formulario incluye:
- ID de categoría oculto
- Campo de entrada para el título del tema
- Área de texto para el contenido
- Botón de envío
Creación de Publicaciones
Los usuarios pueden crear publicaciones en temas si el tema permite la publicación. Esta configuración es controlada por el creador del tema o moderadores/administradores a través del controlador toggle_publicaciones.php
.
Cuando un tema permite la publicación, se muestra un formulario a los usuarios elegibles (administradores, moderadores y jugadores):
El formulario incluye:
- IDs ocultos de categoría y tema
- Área de texto para el contenido
- Botón de envío
Sistema de Me Gusta
El foro incluye un sistema de "me gusta" que permite a los usuarios dar o quitar "me gusta" a las publicaciones. El controlador maneja el cambio del estado de "me gusta" al insertar o eliminar registros en la base de datos.
Control de Permisos
Los permisos para crear temas y publicaciones están determinados por el rol del usuario y la configuración de la categoría o tema. Los administradores tienen control total, los moderadores tienen permisos extendidos y los jugadores tienen permisos limitados según la configuración.
Moderación de Contenido
Los administradores y moderadores pueden eliminar contenido inapropiado. Los creadores de temas o publicaciones también pueden eliminar su propio contenido. Los controles de eliminación están disponibles en la interfaz según los permisos del usuario.
Archivos Fuente Relevantes
src/www/controllers/add_publicacion.php
src/www/controllers/add_tema.php
src/www/controllers/delete_publicacion.php
src/www/controllers/eliminar_categoria.php
src/www/controllers/forum.php
src/www/controllers/toggle_publicaciones.php
src/www/controllers/toggle_temas.php
src/www/js/forum.js
src/www/views/event.php
src/www/views/forum.php
src/www/views/tema.php