Añade foro de comunidad integrado (app forum) con el diseño de NovaWoW
- app 'forum': portada (categorías/foros), ver foro y tema (paginado), crear tema, responder, editar/borrar posts y moderación (fijar, bloquear, mover, borrar/restaurar) - lee/escribe la BD acore_web (5ª conexión, DB_NAME_WEB) por SQL directo, tablas forum_categories/forums/forum_topics/forum_posts/forum_reads (portado de NovaWeb-main) - identidad = cuenta de juego en sesión; permisos simplificados por gmlevel (FORUM_MOD_GMLEVEL) en vez de la matriz group_level×permission del original - saneado del HTML de posts con nh3 (evita el XSS del original); POST+CSRF en formularios - plantillas con los partials del sitio; enlace 'FOROS' del menú apunta al foro interno - sql/forum_schema.sql y docs/FORO.md Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
{% include 'partials/head.html' %}
|
||||
{% include 'partials/header.html' %}
|
||||
{% include 'partials/video.html' %}
|
||||
|
||||
<div class="main-page">
|
||||
<div class="middle-content">
|
||||
<div class="body-content">
|
||||
<div class="title-content"><h1>Foro de la comunidad</h1></div>
|
||||
<div class="box-content">
|
||||
<div class="body-box-content">
|
||||
{% include 'forum/_style.html' %}
|
||||
<div class="forum-wrap">
|
||||
{% for category in categories %}
|
||||
<div class="forum-cat">
|
||||
<div class="forum-cat-title">{{ category.name }}</div>
|
||||
{% for forum in category.forums %}
|
||||
<div class="forum-row {% if forum.deleted %}forum-deleted{% endif %}">
|
||||
<div class="main">
|
||||
<a class="name" href="{% url 'forum_view_p1' forum_id=forum.id %}"
|
||||
{% if forum.colortitle and forum.colortitle != '0' %}style="color:{{ forum.colortitle }}"{% endif %}>
|
||||
{{ forum.name }}
|
||||
</a>
|
||||
{% if not forum.visibility %}<span class="forum-badge">Oculto</span>{% endif %}
|
||||
<div class="desc">{{ forum.description }}</div>
|
||||
</div>
|
||||
<div class="stats">
|
||||
<div>{{ forum.topic_count }} temas</div>
|
||||
<div>{{ forum.post_count }} mensajes</div>
|
||||
{% if forum.last_topic_name %}
|
||||
<div>Último: <a href="{% url 'forum_topic_p1' topic_id=forum.last_topic_id %}">{{ forum.last_topic_name|truncatechars:30 }}</a></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>Todavía no hay foros disponibles.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include 'partials/social.html' %}
|
||||
{% include 'partials/footer.html' %}
|
||||
{% include 'partials/final.html' %}
|
||||
Reference in New Issue
Block a user