ADDON Group_time MOD

Si vous avez des commentaires, ou besoin d'aide sur un MODs ou une astuce, c'est ici.

ADDON Group_time MOD

Messagepar roberto » Dim 5 Aoû 2012 01:03

Bonjour,

j'utilise votre (excellent) mod Group_time qui permet de placer durant un temps selectionné des membres dans un groupe et de les redeplacer automatiquement apres le temps donné.

J'aimerai si possible que vous m'aidiez a devellopper une extension a ce mod qui permettrait d'afficher aux membres du groupe le temps restant sur le header du forum

"Il vous reste XX jours et XX heures XX minutes dans le groupe XXX"

J'ai bien vu le column "user_time_entrance" dans la table "user_group"
Celui ci indique la date/heure d'entrée dans le groupe (en TIMESTAMP)
Il faudrait comparer ce TIMESTAMP avec la date/heure actuel (TIMESTAMP actuel) ce qui permettrait d'afficher le temps restant

Mes competences de programmation sont faibles ... Je m'en remet a vous, merci ;)
roberto
membre
membre
 
Messages: 3
Inscription: Dim 5 Aoû 2012 00:55

Re: ADDON Group_time MOD

Messagepar lolovoisin » Lun 6 Aoû 2012 08:38

Bonjour,

effectivement l'idée est bonne.
Par contre il va falloir que je m'y remette dessus pour coder quelque chose mais ça devrait etre faisable.
il me manque aussi pas mal de temps, mais je vais y réfléchir pour rajouter un affichage.

Bon j'ai fait un petit truc pour faire apparaitre le jour ou le membre quittera le groupe sur la première page de son panneau utilisateur.

Procédure:
    Ouvrir styles/prosilver/template/ucp_main_front.html
    cherchez:
    Code: Tout sélectionner
    <dt>{L_VISITED}:</dt> <dd>{LAST_VISIT_YOU}</dd>       

    Aprés ajoutez :
    Code: Tout sélectionner
    <!-- MODs group_time -->
            <dt>{L_GROUP_TIME_REMAIN}:</dt> <dd>{GROUP_TIME_REMAIN}</dd>
            <!-- Fin MODs group_time -->       

    Ouvrir language/fr/ucp.php
    cherchez:
    Code: Tout sélectionner
    'GLOBAL_ANNOUNCEMENT'   => 'Annonce globale',        

    Aprés ajoutez :
    Code: Tout sélectionner
    //MODs group_time
        'GROUP_TIME_REMAIN'                => 'Temps restant dans le groupe',
        'GROUP_TIME_REMAIN_STATUS'        => 'Vous quitterez le groupe %1$s le %2$s',
        'GROUP_TIME_REMAIN_STATUS_NONE'   => 'Aucun groupe temporaire',
        //Fin MODs group_time    

    Ouvrir includes/ucp/ucp_main.php
    cherchez:
    Code: Tout sélectionner
    // Do the relevant calculations   

    Avant ajoutez :
    Code: Tout sélectionner
    // MODs group_time    
                    $sql = $db->sql_build_query('SELECT', array(
                        'SELECT'    => 'g.group_id, g.group_name, g.group_nbre_jour_limit, ug.user_id, ug.user_time_entrance',

                        'FROM'        => array(
                            GROUPS_TABLE    => 'g'
                        ),

                        'LEFT_JOIN'    => array(
                            array(
                                'FROM'    => array(USER_GROUP_TABLE => 'ug'),
                                'ON'    => 'g.group_id = ug.group_id'
                                )
                        ),

                        'WHERE'        => 'g.group_nbre_jour_limit > 0 ' . '
                            AND ug.user_id = '. $user->data['user_id']
                    ));        
                    $result = $db->sql_query($sql);
                    while ($row = $db->sql_fetchrow($result))
                    {
                        $group_time_remain = ($row['user_time_entrance'] + ($row['group_nbre_jour_limit'] * 86400) - time());
                        $group_time_name = $row['group_name'];
          if ($row['user_time_entrance'] == 0)
          {
                  $group_time_limit = 0;
          }
          else
          {
             $group_time_limit = 1;
          }
                    }
                    $db->sql_freeresult($result);
                    // Fin MODs group_time      
cherchez:
Code: Tout sélectionner
'JOINED'            => $user->format_date($user->data['user_regdate']),  

après ajoutez:
Code: Tout sélectionner
// MODs group_time
                    'GROUP_TIME_REMAIN'   => ($group_time_limit == 0) ? $user->lang['GROUP_TIME_REMAIN_STATUS_NONE'] : sprintf($user->lang['GROUP_TIME_REMAIN_STATUS'], $group_time_name, date('d/m/Y',time() + $group_time_remain )),
                    // Fin MODs group_time  


regardez si ça vous va.
Bon c'est assez simple j'ai pas trop cherché à optimiser, mais ça devrait faire ce que vous voulez :mrgreen:
Avatar de l’utilisateur
lolovoisin
Administrateur du site
Administrateur du site
 
Messages: 408
Inscription: Ven 28 Nov 2008 10:18

Re: ADDON Group_time MOD

Messagepar roberto » Lun 6 Aoû 2012 13:56

Merci c'est parfait !

Il manque juste ce que vous avez dit sur la fin, savoir si c'est un group temporaire, car pour un groupe normal, il est noté "Temps restant dans le groupe: Vous quitterez le groupe le 06/08/2012"

En tout cas c'est parfait !

Y a t'il un moyen que cela affiche l'heure de fin egalement ?

"Vous quitterez le groupe ViP le 21/05/2013 à XX h XX minutes" ?

Un grand merci pour ce mod et cette extension et votre reactivité ! ;)
roberto
membre
membre
 
Messages: 3
Inscription: Dim 5 Aoû 2012 00:55

Re: ADDON Group_time MOD

Messagepar lolovoisin » Lun 6 Aoû 2012 14:07

code modifié et premier post édité

Pour l'heure je vais regarder ça.
Avatar de l’utilisateur
lolovoisin
Administrateur du site
Administrateur du site
 
Messages: 408
Inscription: Ven 28 Nov 2008 10:18

Re: ADDON Group_time MOD

Messagepar roberto » Lun 6 Aoû 2012 14:21

c'est parfait merci !!

j'ai noté quelques erreurs dans ce code
Code: Tout sélectionner
    // MODs group_time
                        ''GROUP_TIME_REMAIN'   => ($group_time_limit == 0) ? $user->lang['GROUP_TIME_REMAIN_STATUS_NONE'] : sprintf($user->lang['GROUP_TIME_REMAIN_STATUS'], $group_time_name, date('d/m/Y',time() + $group_time_remain )) ,
                        // Fin MODs group_time 


Code: Tout sélectionner
    // MODs group_time
                        'GROUP_TIME_REMAIN'   => ($group_time_limit == 0) ? $user->lang['GROUP_TIME_REMAIN_STATUS_NONE'] : sprintf($user->lang['GROUP_TIME_REMAIN_STATUS'], $group_time_name, date('d/m/Y',time() + $group_time_remain )),
                        // Fin MODs group_time 


Il y avait 2 ' avant GROUP_TIME_REMAIN et la virgule de fin n'etait pas collé a la parenthese ;)

Merci encore ! je repasserai voir si vous avez pu ajouter l'heure, mais ce n'est pas le plus important :)
roberto
membre
membre
 
Messages: 3
Inscription: Dim 5 Aoû 2012 00:55

Re: ADDON Group_time MOD

Messagepar lolovoisin » Lun 6 Aoû 2012 14:24

roberto a écrit:Il y avait 2 ' avant GROUP_TIME_REMAIN

copier/coller un peu trop rapide :mrgreen:
roberto a écrit:et la virgule de fin n'etait pas collé a la parenthese

pas grave mais ça fait plus propre, c'est vrai ;)

edit: pour l'heure faut juste que je règle le problème du décalage de l'heure de +2 ou +1 suivant l'été ou l'hiver et un autre petit truc bizarroïde :mrgreen:
Avatar de l’utilisateur
lolovoisin
Administrateur du site
Administrateur du site
 
Messages: 408
Inscription: Ven 28 Nov 2008 10:18

Re: ADDON Group_time MOD

Messagepar lolovoisin » Jeu 9 Aoû 2012 09:54

tenez testez ceci:

remplacez:
Code: Tout sélectionner
$group_time_remain = ($row['user_time_entrance'] + ($row['group_nbre_jour_limit'] * 86400) - time());

par:
Code: Tout sélectionner
$group_time_remain = $row['user_time_entrance'] + ($row['group_nbre_jour_limit'] * 86400);


puis remplacez:
Code: Tout sélectionner
'GROUP_TIME_REMAIN'   => ($group_time_limit == 0) ? $user->lang['GROUP_TIME_REMAIN_STATUS_NONE'] : sprintf($user->lang['GROUP_TIME_REMAIN_STATUS'], $group_time_name, date('d/m/Y',time() + $group_time_remain )),

par:
Code: Tout sélectionner
'GROUP_TIME_REMAIN'   => 'GROUP_TIME_REMAIN'   => ($group_time_limit == 0) ? $user->lang['GROUP_TIME_REMAIN_STATUS_NONE'] : sprintf($user->lang['GROUP_TIME_REMAIN_STATUS'], $group_time_name, $user->format_date($group_time_remain)),
Avatar de l’utilisateur
lolovoisin
Administrateur du site
Administrateur du site
 
Messages: 408
Inscription: Ven 28 Nov 2008 10:18


Retourner vers Aide / Remarques / Support

Qui est en ligne

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

cron