MyBB.support, le portail francophone de MyBB
Systeme d'heures - Version imprimable

+- MyBB.support, le portail francophone de MyBB (https://mybb.support)
+-- Forum : MyBB.fr (https://mybb.support/forum-1.html)
+--- Forum : Support (https://mybb.support/forum-5.html)
+--- Sujet : Systeme d'heures (/thread-3673.html)



Systeme d'heures - Tlams - 19-01-2011

Bonjour,

J'aimerais comprendre le fonctionnement du système d'heure.

Lorsque l'on inscrit un post sur le forum, celui-ci s'inscrit dans la BDD.

Exemple: Pour un post mis le 19/01/11 à 02:48 PM sont numéro est 1295444883

Je cherche a quoi cella correspond.

Sorte de codage de la date de post ? Alors comment le décrypter? Numéros du post? ...


Explication de l'idée:
J'ai repris le plugin "hide_link"(qui sert a cacher les URLs aux invités), je l'ais modifier afin qu'il cache aussi les liens aux utilisateurs ayant posté moins de X post sur le forum.(1 post pour mon forum)

Maintenant j'aimerais aller plus loin, en ajoutant une fonction du genre:
Si le dernier post de l'utilisateur date de plus de X jours alors => Lien cachés.

Pour cella il faut que je récupère la date du dernier post mis par l'utilisateur.
Hors dans la BDD table 'mybb_users' il y a une colonne nommé 'lastpost' avec un numéros.
(Cf la question du haut)

Merci !







RE: Systeme d'heures - exdiogene - 19-01-2011

La valeur en question est la date/heure en format Unix, qui représente le nombre de secondes après une date et heure de base.

Cela simplifie les calculs de délai, par soustraction de la valeur actuelle obtenu en PHP avec la fonction time().

Donc avec time() - la valeur de 'lastpost', nous obtenons le nombre de secondes avant aujourd'hui.

Il te reste à faire le reste du code PHP... Wink



RE: Systeme d'heures - Tlams - 19-01-2011

J'ai presque réussis.

Code PHP :
$timingBB $mybb->user['lastpost'] ; //Dernier post user 

Seulement cette partie la fonctionne pas.

Il ne retourne pas le temps. Je suppose que c'est un problème d'écriture d'affectation mais je n'arrive pas à la mettre comme il faut.


RE: Systeme d'heures - Pascal - 19-01-2011

Qu'est ce que tu veux dire par "il ne retourne pas le temps" ?

Dans $mybb->user['lastpost'] tu va avoir soit 0, soit un nombre du style "1295457270". Attention il faut pour y avoir accès dans la function du plugin que tu ai déclaré $mybb comme variable globale :

Code PHP :
global $mybb 

pour savoir ce que tu as dans $mybb->user tu peux faire un var_dump :

Code PHP :
var_dump($mybb->user); 



RE: Systeme d'heures - Tlams - 19-01-2011

C'est bon j'ai réussis.

Voila le résultat pour les curieux ( à éditer dans hidelinks.php)

Code PHP :
function hidelinks_hide(&$message)
{
$formated_datetime DATE("Y-m-d H:i:s");
$unix_timestamp STRTOTIME($formated_datetime);
$timingDiff "518400"//Temps en secondes ( 518400 = 7jours)
$message1 "<FONT color=\"red\">Vous ne vous êtes pas encore présenté, présentez-vous pour voir les liens.</FONT> "// Texte si l'user na jamais posté
$message2 "<FONT color=\"red\">Votre dernier message date de plus de 7 jours, participez au forum pour voir le lien.</FONT> "// Texte si l'user na pas posté récemment 

global $settings$mybb;

    if (
$mybb->settings['hidelinks_enabled'] == "1")
    {
        if(
$mybb->user['usergroup'] == "1"
        {
            
$message preg_replace("!<a[^>]*(http|www)(.*)</a>!siU""{$mybb->settings['hidelinks_message']}"$message);
        }
        
        if(
$mybb->user['postnum'] < "1")
        {
            
$message preg_replace("!<a[^>]*(http|www)(.*)</a>!siU""$message1"$message);
        }
        
        if(
$mybb->user['lastpost'] < ( $unix_timestamp $timingDiff ))
    {
        
$message preg_replace("!<a[^>]*(http|www)(.*)</a>!siU""$message2"$message);
        }
    
    
    }
    



Merci pour l'aide.


 Utilitaire de traduction fourni par Regentronique