Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 10-08-2006 00:02:57

Mobman02
Membre

Age 1.0

Auteur : Mobman02

Fonctionne avec:  1.2.* (testé sous 1.2.12, fonctionne probablement avec toute la branche 1.2)

Description:  Ce mod permet a vos utilisateurs de fournir leurs dates de naissance, leurs âges sont alors affiché dans leurs profils et en dessous de leurs avatar (en dessous de leurs localités pour être précis).

/!\ Ce mod ajoute un champ 'birthdate' dans la table des utilisateurs.

Je n'utilise pas de timestamp pour calculer l'âge, les utilisateur nés avant le 1er Janvier 1970 peuvent donc mettre leur date de naissance mdr (c'est bête dis comme ça mais au début j'utilisais le timestamp, j'ai dû tous refaire).

Il y a une subtilitée entre le readme.txt (pour version Anglaise) et le lisezmoi.txt  (pour version Française), il s'agit principalement du format de date (Mois Jour Année pour les Anglais, Jour Mois Année pour les Français).

Fichiers affectés:
profile.php
lang/English/topic.php
lang/English/profile.php
lang/French/topic.php
lang/French/profile.php
functions.php
viewtopic.php

C'est ma première Mod public, tous les feedback sont les bienvenus.

Télécharger

Dernière modification par Mobman02 (10-08-2006 00:04:12)

Hors ligne

#2 10-08-2006 15:49:52

Pyty
Membre

Re : Age 1.0

Merci smile

Hors ligne

#3 10-08-2006 16:03:00

Mobman02
Membre

Re : Age 1.0

pas de problème wink
(Tu l'a testé ? ça marche ? ^^)

PS : le mod à été testé chez moi avec MarkTopicAsRead et Puntoolbar, aucun problème de compatibilité recensé smile

Hors ligne

#4 10-08-2006 16:17:38

Pyty
Membre

Re : Age 1.0

Je l'est testé marche nikel wink

Voila
English
englishlw5.png

French
frenchwv0.png

tongue siffle

Dernière modification par Pyty (10-08-2006 16:24:06)

Hors ligne

#5 10-08-2006 16:47:50

Mobman02
Membre

Re : Age 1.0

Ok cool merci wink (ça rassure quand ça marche aussi chez les autres xD)

Hors ligne

#6 10-08-2006 17:37:04

falconflyz
Membre

Re : Age 1.0

Salut Mobman
Très bonne mod. Merci.
Tu pourrais peut-être prévoir dans une version future la possibilité pour l'admin de rendre obligatoire le remplissage de cette donnée lors de l'inscription.
@+

Hors ligne

#7 10-08-2006 17:44:01

Mobman02
Membre

Re : Age 1.0

Why not,
mais cela impliquerait pas mal de modif dans le fichier des inscriptions,
pour une prochaine version je me concentrerais plus sur un module "Aujourd'hui c'est l'anniv de *****" en bas de l'index smile

On verra bien à la prochaine version ce qu'il en est mdr pour le moment j'ai d'autres projets wink

Hors ligne

#8 10-08-2006 18:39:35

tatice
Membre

Re : Age 1.0

Super boulot Mobman. :canon:

Hors ligne

#9 21-08-2006 19:37:30

BN
Membre

Re : Age 1.0

Chapeau !!

Par contre, je t'ote le pain de la bouche, j'avais besoin de : "Fête son anniversaire aujourd'hui", donc je l'ai fait tongue

Voilà ce qu'il faut faire :

Dans le fichier index.php, chercher :

if ($num_users > 0)
        echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo "\t\t\t".'<div class="clearer"></div>'."\n";

}
else
    echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";

Après, ajouter :

if ($pun_config['o_users_birthdate'] == '1')
{
    // Fetch users online info and generate strings for output
    $users = array();
    $date = '^(' . date('n/d', time()) . ')';
    $result = $db->query('SELECT id,username,birthdate FROM '.$db->prefix.'users WHERE birthdate REGEXP "' . $date . '"', true) or error('Impossible de retrouver la liste des utilisateurs en ligne', __FILE__, __LINE__, $db->error());
    while ($pun_user_birthdate = $db->fetch_assoc($result))
    {
            $users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_birthdate['id'].'">'.pun_htmlspecialchars($pun_user_birthdate['username']).'</a> ('.calculAge($pun_user_birthdate['birthdate']).')';
    }
    $num_users = count($users);
    if ($num_users > 0)
        echo "\t\t\t".'<dl id="birthdatelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Birthdate'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo "\t\t\t".'<div class="clearer"></div>'."\n";
}
else
    echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";

(J'utilise un REGEXP (avec mysql) pour voir si le début de la date correspond.)

Dans le fichier admin_options.php, chercher :

<tr>
                                    <th scope="row">Utilisateurs en ligne</th>
                                    <td>
                                        <input type="radio" name="form[users_online]" value="1"<?php if ($pun_config['o_users_online'] == '1') echo ' checked="checked"' ?> /> <strong>Oui</strong>   <input type="radio" name="form[users_online]" value="0"<?php if ($pun_config['o_users_online'] == '0') echo ' checked="checked"' ?> />
                                         <strong>Non</strong>
                                        <span>Affiche sur la page d'accueil des forums des informations concernant les utilisateurs qui sont en ligne lors de l'affichage de la page.</span>
                                    </td>
                                </tr>

Après, ajouter :

<tr>
                                    <th scope="row">Utilisateurs fêtant leur anniversaire</th>
                                    <td>
                                        <input type="radio" name="form[users_birthdate]" value="1"<?php if ($pun_config['o_users_birthdate'] == '1') echo ' checked="checked"' ?> /> <strong>Oui</strong>   <input type="radio" name="form[users_birthdate]" value="0"<?php if ($pun_config['o_users_birthdate'] == '0') echo ' checked="checked"' ?> />
                                         <strong>Non</strong>
                                        <span>Affiche sur la page d'accueil des forums des informations concernant les utilisateurs qui fêtent leur anniversaire.</span>
                                    </td>
                                </tr>

Il faut donc ajouter o_users_birthdate dans la BDD et le fichier cache_config.php

Et pour finir le design, dans le fichier tyle/import/base.css, chercher :

#onlinelist DD, #onlinelist DT, #brdmenu LI, DIV.linkst LI, DIV.linksb LI, DIV.postlinksb LI,

Après :

#onlinelist DD, #onlinelist DT,

Insérer :

#birthdatelist DD, #birthdatelist DT,

Ce qui nous donne : ceci ! (visible que le 21 Août, lol ! C'est un forum de tests, merci de ne pas vous inscrire tongue)


Voilà, en espérant que cela en aide certain !
Merci pour ce mod smile

Hors ligne

#10 21-08-2006 19:59:33

tatice
Membre

Re : Age 1.0

Ca rajoute encore un intérêt à la MOD, merci BN. :biere:

Hors ligne

#11 26-08-2006 16:56:49

romain9441
Admin locker

Re : Age 1.0

Facile ! Tu va dans ta base de données, tu va dans la table ****config et tu ajoutes une entrée "o_users_birthdate"


Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?

Pas de support si pas d'adresse de forum !

Hors ligne

#12 26-08-2006 17:08:17

romain9441
Admin locker

Re : Age 1.0

Tu es chez quel hébergeur ?

Regarde sur le site de ton hébergeur


Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?

Pas de support si pas d'adresse de forum !

Hors ligne

#13 26-08-2006 18:15:44

falconflyz
Membre

Re : Age 1.0

Salut
Il y a plus simple: il suffit d'exécuter la requête SQL directement de l'ACP à partir du plugin "Gestion de la base". smile

Hors ligne

#14 26-08-2006 19:52:23

Lyconide
Membre

Re : Age 1.0

jib a écrit :

quand je suis dans le manager il me dit bien que j'ai une base de données mais que celle ci est vide..??? c'est relativement bizarre surtout que j'ai quelque 3000 messages sur mon forum qui doivent bien etre stocké quelque part..

Si tu utilises le manager (V3), il faut que tu utilises phpmyadmin en allant dans le menu hébergement
Il te demande la base de donnée que tu veux utilisé, avec son mot de passe.

Une fois dans phpmyadmin, soit tu l'ajoutes à la main (en allant directement sur la table), ou alors tu vas dans le menu sql (faut déjà cliqué sur n'importe quel table avant de le voir s'afficher) et tu tapes :

INSERT INTO {prefixe_table}config (conf_name, conf_value) VALUES ('o_users_birthdate', 0);

En remplacant {prefixe_table} par le prefixe de ta table tongue

Hors ligne

#15 26-08-2006 21:13:00

BN
Membre

Re : Age 1.0

Arf, désolé jib, j'avais un peu la flemme de faire un truc automatique pour mettre à jour. (et puis je voulais pas trop empiéter sur le travail de Mobman02 quand même^^)
Je pense que les conseils de Lyconide devrait bien t'aider. (Au pire, si tu ne comprends ou que tu as envi d'apprendre : Le site du zéro est ton ami tongue)

Hors ligne

#16 29-08-2006 23:35:21

stardust
Membre

Re : Age 1.0

Bonsoir,

Je viens d'installer ce mod, et j'y rencontre actuellement un petit problème.

Lorsque je sélectionne ma date d'anniverssaire et que je valide, voici le message d'erreur que je rencontre :

Fatal error: Call to undefined function: confirm_referrer() in /home/***/www/profile.php on line 652

Ligne 652 :

confirm_referrer('profile.php');

Que dois-je faire ? D'où ce problème peut-il venir ?

Merci d'avance.

P.S: Il n'y a aucun problème d'affichage, la table "birthdate" est bien installée et j'utilise la dernière vresion de PunBB.


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#17 30-08-2006 08:49:35

romain9441
Admin locker

Re : Age 1.0

Tu as essayé de refaire les modifs, tu t'es peut-être planté sur les modifs à faire wink

Dernière modification par romain9441 (30-08-2006 08:49:47)


Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?

Pas de support si pas d'adresse de forum !

Hors ligne

#18 30-08-2006 12:04:18

stardust
Membre

Re : Age 1.0

Bonjour,

J'avais effectivement refais les modifs dans ce fichier "profile.php".

Je vais refaire l'ensemble des modifs, mais peux-tu me conseiller les fichiers à modifier par dessus tout ?

Pour éviter de mettre une heure à modifier un fichier, en sachant que le module apparaît sans problème dans la zone membre.

Merci.


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#19 30-08-2006 12:42:49

stardust
Membre

Re : Age 1.0

J'ai actuellement modifié tous les fichiers hors fichiers de lang, et toujours la même erreur.

Je ne sais pas d'où peut provenir cette faille, c'est ballot sad

Si quelqu'un a modifié ce mod, pouvez-vous me donner les sources du fichier profile.php en m'envoyant un mess personnel svp ?

Dernière modification par stardust (30-08-2006 12:44:49)


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#20 30-08-2006 12:58:41

Lyconide
Membre

Re : Age 1.0

Ligne 652 :
confirm_referrer('profile.php');

Cette ligne n'est pas ajouté par la mod, donc c'est assez bizarre qu'elle bug... elle est d'origine dans punbb

Et si ca ne fonctionne pas, c'est appriori que le fichier functions.php n'est pas inclus... Ce qui n'est pas normal non plus, car il est inclus d'entré de script (via common.php)

A savoir ce qui bug par contre :-/

Dernière modification par Lyconide (30-08-2006 12:59:08)

Hors ligne

#21 30-08-2006 22:16:29

stardust
Membre

Re : Age 1.0

Oui, j'ai installé d'autres Mods qui marchent parfaitement.


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#22 30-08-2006 23:06:26

stardust
Membre

Re : Age 1.0

Bon, faut être réaliste.

J'ai supprimé tous mes fichiers modifiés (ainsi que les autres mods installés), et je recommence tout depuis le début..

Si je commence à chercher, j'vais pas avoir fini.

Je vais commencé à installé le mod age en premier.

Cordialement.


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#23 01-09-2006 22:31:16

stardust
Membre

Re : Age 1.0

J'ai tout recommencé depuis le début, aucun mod d'installés avant celui-ci.

Fatal error: Call to undefined function: calcul() in /****/www/viewtopic.php on line 238

Y'a une erreur de codage.


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

#24 01-09-2006 23:46:03

romain9441
Admin locker

Re : Age 1.0

Tu as du mal faire les modifs dans include/functions.php wink


Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?

Pas de support si pas d'adresse de forum !

Hors ligne

#25 03-09-2006 02:48:34

stardust
Membre

Re : Age 1.0

Y'a pas de config à faire, y'a juste qu'à placer ça :

// MOD AGE - NEW FUNCTION
function calculAge ($dateNaissance)
{

    $temp = explode("/", $dateNaissance);
   
    $mois = $temp[0];
    $jour = $temp[1];
    $annee = $temp[2];
       
    $today['mois'] = date('n');
    $today['jour'] = date('j');
    $today['annee'] = date('Y');
    $annees = $today['annee'] - $annee;
          if ($today['mois'] <= $mois) {
            if ($mois == $today['mois']) {
              if ($jour > $today['jour']) $annees--;
              }
            else
              $annees--;
            }
    return $annees;
}

à la fin happy

J'ai tout vérifé, y'a aucun problème. :s


Nous ne pûmes savoir ce que la vie nous donne !

Hors ligne

Pied de page des forums