¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Posts Programados v1.0
#1

0
Posts Programados v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost


Capturas
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 


Permite a administradores y moderadores programar la publicación de posts en una fecha y hora concretas. El post se guarda como "programado" y se publica automáticamente cuando llega la hora, sin que nadie tenga que hacer nada.


🕐 Características
 
  • Solo admins y moderadores pueden programar posts
  • Mínimo 5 minutos en el futuro, máximo 1 año
  • Publicación automática al cargar cualquier página
  • Panel en el admin para ver todos los posts programados
  • Publicar manualmente antes de la hora con un clic
  • Cancelar devuelve el post a borradores
  • Validación estricta de fechas — no se puede manipular desde el frontend
 


📋 Requisitos
 
  • Risus Nova 2.0 instalado y funcionando
  • PHP 8.0+
  • MySQL 5.7+ / MariaDB 10.4+
 


🛠️ Instalación

Paso 1 — Ejecutar el instalador

Sube la carpeta install/ a la raíz y accede a:

 
Registrate o inicia tu sesión para ver este contenido

Pulsa Instalar ahora. Añade la columna post_publish_at en la tabla p_posts.

⚠️ Elimina la carpeta install/ cuando termine.


Paso 2 — Subir los archivos
 
inc/class/c.scheduled.php                              →  inc/class/
inc/php/ajax/ajax.scheduled.php                        →  inc/php/ajax/
themes/default/templates/modules/m.scheduled_form.tpl →  themes/default/templates/modules/
themes/default/templates/modules/m.scheduled_admin.tpl →  themes/default/templates/admin_mods/

Paso 3 — En c.posts.php

Busca el return $postID; al final de newPost() y añade justo antes:
 
// ── Posts programados ──
if (!empty($_POST['post_publish_at']) && $tsUser->is_admod) {
    require_once TS_CLASS . 'c.scheduled.php';
    $tsSched = new tsScheduled();
    $ts = tsScheduled::parseFecha($_POST['post_publish_at']);
    if ($ts > 0) {
        $tsSched->programar($postID, $ts);
    }
}
// ────────────────────────

Paso 4 — En header.php

Abre header.php de la raíz y añade al final, antes del cierre:
 
// ── Publicar posts programados ──
require_once TS_CLASS . 'c.scheduled.php';
(new tsScheduled())->publicarPendientes();
// ────────────────────────────────

Paso 5 — En m.agregar.form.tpl

Buscar:
{if ($tsUser->is_admod > 0 || $tsUser->permisos.moedpo) && $tsDraft.b_title && $tsDraft.b_user != $tsUser->uid}

Arriba agregar:
 
{include file='modules/m.scheduled_form.tpl'}

Paso 6 — Panel en el admin

En admin.php añade antes de :
 
} elseif($action == 'feed'){ 

Agregar:
 
} elseif($action == 'scheduled'){
    require_once TS_CLASS . 'c.scheduled.php';
    $tsSched = new tsScheduled();
    $smarty->assign('tsProgramados', $tsSched->getProgramados());

En t.admin.tpl añade antes del {/if} final:
 
{elseif $tsAction == 'scheduled'}
{include file='admin_mods/m.scheduled_admin.tpl'}

En m.admin_sidemenu.tpl añade donde prefieras:
 
<li id="a_scheduled">
    <a href="{$tsConfig.url}/admin/scheduled">
        <span class="nav-icon">🕐</span> Posts Programados
    </a>
</li>

Paso 7 — Borrar la caché

Borra el contenido de la carpeta /cache/ del sitio.


🗑️ Desinstalar
 
ALTER TABLE p_posts DROP COLUMN post_publish_at;

Elimina los archivos subidos y quita los hooks añadidos.

 
Descarga

Mediafire
Debes agradecer para ver el contenido...

Google Drive
Debes agradecer para ver el contenido...


¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.



Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)