[Recherche MOD] Nettoyage auto sous-forum

Voici le forum libre concernant les MODs!

Pas de support dans ce forum

Modérateur: Equipe

Règles du forum
Rappel: Conditions générales d'utilisation de phpBB-fr.com

Attention, aucun support de MODs n'est donné dans ce forum.

[Recherche MOD] Nettoyage auto sous-forum

Messagede Bernique le 19 Mai 2008 à 12:21

Bonjour,

régulièrement, je dois effacer sur mon forum des P24H :mrgreen:
Un P24H, c'est un post dont la durée de vie est limitée à 24 heures car hors sujet; c'est désormais devenu un classique de fonctionnement qui permet d'avoir des frontières flexibles :roll:

Pour faire simple, je souhaite créer un sous-forum dédié au P24H où les membres pourraient venir poster les messages border line... plus simple à gérer que d'éplucher les 120 posts quotidiens disséminés à travers les différents sous-forum :( .

Pour faire vraiment simple, je cherche un MOD qui effacerait automatiquement tous les messages de ce nouveau sous-forum, par exemple à heure fixe une fois par jour ou bien ceux ayant été postés depuis plus de 24 heures :mrgreen:

Merci pour vos suggestions; le recherche ne m'a rien donné :|
Dernière édition par Bernique le 20 Mai 2008 à 19:20, édité 2 fois.
Avatar de l’utilisateur
Bernique
Posteur néophyte
Posteur néophyte
 
Messages: 67
Inscription: 05 Aoû 2005 à 14:38
Localisation: F-25

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede Mystell le 20 Mai 2008 à 14:12

J'ai fait un petit truc à la va vite avec des trucs en dur.
Tu peux entre autre mettre le délais et l'id du forum à purger dans la table config ou rajouter un booleén dans la table forums à true si le forum doit être purgé.
Autrement voici la modif.
Dans viewtopic.php

Chercher
Code: Tout sélectionner
$update      = request_var('update', false);


Mettre après.
Code: Tout sélectionner
//purge du forum si on est sur le bon forum
if ($forum_id == id_du_forum_a_purger)
{

    //récupération de la date de dernière purge
    $sql = 'SELECT config_value '.CONFIG_TABLE."
    WHERE config_name = 'last_purge'";
   
    $result = $db->sql_query_limit($sql, 1);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
   
    if($row)
    {
        $last_purge = $row['last_purge'];
    }
   
    //si plus de 24 heures
    if ((date(U) - $last_purge) >= (24*60*60))
    {
        //mise à jour de la date de dernière purge
        $last_purge = date(U);
        $sql = 'UPDATE '.CONFIG_TABLE."
                SET config_value = '$last_purge'
                WHERE config_name = 'last_purge'";
        $db->sql_query($sql);
       
        //purge du forum
        //purge table topics
        $sql = 'DELETE FROM '.TOPICS_TABLE."
                WHERE forum_id = $forum_id";
        $db->sql_query($sql);
       
        //purge table posts
        $sql = 'DELETE FROM '.POSTS_TABLE."
                WHERE forum_id = $forum_id";
        $db->sql_query($sql);
    }
}

id_du_forum_a_purger est l'id de ton forum c'est celui que tu as dans l'url quand tu vas dessus.
Par exemple si j'ai "http://localhost/forum/viewforum.php?f=3" l'id du forum est 3.

Dans la table phpbb_config ajouter une ligne de cette façon:
Code: Tout sélectionner
INSERT INTO phpbb_config (config_name ,config_value ,is_dynamic)
VALUES ('last_purge', '0', '1');
Code: Tout sélectionner

si bien sur le préfixe de ta table n'est pas phpbb pense à mettre le tien.


Ce code ne purge pas la table topic_posted et ne met pas à jour le nombre de message ni les fichiers joints. Si tu veux que ca soit fait signale le ;).
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 869
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede ABDev le 20 Mai 2008 à 14:14

Attention, tu as oublié des ; à la fin de certaines requêtes.
En mode très très occupé, donc peu disponible !
Avatar de l’utilisateur
ABDev
Codeur
Codeur
 
Messages: 3333
Inscription: 12 Mai 2005 à 22:54
Localisation: Lens - France

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede Mystell le 20 Mai 2008 à 14:14

ABDev a écrit:Attention, tu as oublié des ; à la fin de certaines requêtes.

Oui je viens de les mettre, j'ai fait ca à la va vite sans tester ;)

Je viens de voir la fonction delete_topics qui devrait se charger de tout. Je regarde un peu ca et j'édite pour le mod avec cette fonction ;)

Edit: Juste le gros bloc central qui peut être remplacer par :
Code: Tout sélectionner
if ($forum_id == id_du_forum_a_purger)
{

    //récupération de la date de dernière purge
    $sql = 'SELECT config_value '.CONFIG_TABLE."
    WHERE config_name = 'last_purge'";
   
    $result = $db->sql_query_limit($sql, 1);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
   
    if($row)
    {
        $last_purge = $row['last_purge'];
    }
   
    //si plus de 24 heures
    if ((date(U) - $last_purge) >= (24*60*60))
    {
        //mise à jour de la date de dernière purge
        $last_purge = date(U);
        $sql = 'UPDATE '.CONFIG_TABLE."
                SET config_value = '$last_purge'
                WHERE config_name = 'last_purge'";
        $db->sql_query($sql);
       
        //selection des id
        $sql = 'SELECT topic_id FROM '.TOPICS_TABLE."
                WHERE forum_id = $forum_id";
        $db->sql_query($sql);
        $result = $db->sql_query($sql);

        $ids = array();

        while ($row = $db->sql_fetchrow($result))
        {
            $ids[] = $row[$sql_id];
        }
        //booléen pour, dans l'ordre :
        //$auto_sync(synchronisation automatique),
        //$post_count_sync(mise à jour du nombre de post, mettre à false si on ne veut pas mettre à jour le nombre de post
        //$call_delete_posts(?)
        delete_topics('topic_id', $ids, true, true ,true);
    }
}


C'est quand même plus propre ;)

ABDev tu penses que ca peut intéresser un mod de purge automatique avec bien sur tout en varaible et paramètrable depuis le panneau d'admin.
2 champs à rajouter dans table forums (last_purge et delai_purge) et la modif du panneau d'admin(donc pas énormément de boulot)
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 869
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede Bernique le 20 Mai 2008 à 18:31

merci à vous :mrgreen:

je teste au plus vite 8)
Avatar de l’utilisateur
Bernique
Posteur néophyte
Posteur néophyte
 
Messages: 67
Inscription: 05 Aoû 2005 à 14:38
Localisation: F-25

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede ABDev le 20 Mai 2008 à 18:37

Je pense à un truc très bête : il n'y a plus de fonction de délestage automatique dans phpBB3 ?
En mode très très occupé, donc peu disponible !
Avatar de l’utilisateur
ABDev
Codeur
Codeur
 
Messages: 3333
Inscription: 12 Mai 2005 à 22:54
Localisation: Lens - France

Re: [Recherche MOD] Nettoyage auto sous-forum

Messagede Bernique le 20 Mai 2008 à 19:18

pas vu :|

Edit: si, je viens de trouver cette fonction que je ne connaissais pas:
Délester les forums

Ceci supprimera les sujets n’ayant pas reçu de réponse ou n’ayant pas été visualisés depuis le nombre de jours que vous avez spécifié. Si vous ne spécifiez pas un nombre de jours, tous les sujets seront supprimés. Par défaut, cette action ne supprimera pas les sujets ayant des sondages actifs, ni les post-it et annonces.


:oops: :oops: :oops:

ceci étant, ça ne prends pas en compte la remise à zéro systématique toute les 24h :mrgreen:
Avatar de l’utilisateur
Bernique
Posteur néophyte
Posteur néophyte
 
Messages: 67
Inscription: 05 Aoû 2005 à 14:38
Localisation: F-25

Re: [résolu] [Recherche MOD] Nettoyage auto sous-forum

Messagede Mystell le 20 Mai 2008 à 19:47

Oui c'est un délestage au temps T...

Arg je viens de vérifier et c'est bien un délestage autaumatique tout les n jours ^^. Enfin, je me suis bien amusé à écrire ce code :)
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 869
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse


Retourner vers Discussions, recherches et traductions

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •