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:

imagen

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):

imagen

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.

imagen

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.

imagen

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