• Come chiudere le discussioni vecchie

    Nei forum che hanno una certa età, si verifica abbastanza frequentemente l'esumazione di discussioni vecchie e stravecchie da utenti appena iscritti, che li trovano abbastanza interessanti, ma non abbastanza per iniziare una discussione propria. In più, ci trovano piacere anche gli spammer

    Per operazioni di questo genere, la creazione di un plugin o prodotto non è ideale, ma è sufficiente creare un'operazione pianificata (detto anche Task, cron o cronjob) per vBulletin e programmarla adeguatamente.

    Prima di tutto, creiamo un file nominato cron_close_old_threads.php, o qualcosa del genere nella cartella [forumhome]/includes/cron/ del nostro forum e incolliamo il seguente codice:

    Codice PHP:
    <?php
    /*============================================================================*\
    || ########################################################################## ||
    || # Auto Close Threads After N Days                                        # ||
    || ########################################################################## ||
    \*============================================================================*/

    error_reporting(E_ALL & ~ E_NOTICE);
    if(!
    is_object($vbulletin->db))
    {
        exit;
    }

    // Close incative threads
    $N 60;
    $dateline TIMENOW $N 86400;
    $SQL "UPDATE " TABLE_PREFIX "thread 
            SET open=0 
            WHERE open=1 
                AND lastpost<
    $dateline";
    $vbulletin->db->query_write($SQL);
    if(
    $n $vbulletin->db->affected_rows())
    {
        
    log_cron_action($n ' Old Threads Closed.'$nextitem);
    }
    La variabile $N definisce in questo caso il numero di giorni dall'ultimo messaggio inserite, trascorso i quali la discussione viene chiusa. Possiamo aggiustare questo valore secondo i criteri del nostro forum. Salviamo e questa parte è pronta.

    Ora è necessario recarsi nelle operazioni pianificate del forum, dall'ACP, Operazioni Pianificate, Aggiungi Nuova Operazione Pianificata:



    e inserire il nuovo task:



    Dopo il salvataggio, appare nella lista, pronto ad uso: