Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 18-07-2005 19:24:02

Keulig
Membre

Comment afficher les anniversaires dans le profil et en bas de l'index

J'ai programmé ça, mais l'explication est assez fouillis, y'a pas de numéros de ligne (mes pages étaient trop modifiées pour que ce soit les bonnes lignes).

Si bous suivez bien tout ça, cela devrait marcher smile

Have fun !

------- Base de données :
Rajouter le champ "birthdate" à la table *_users :
type : DATE
default : 0000-00-00
NOT NULL


*************************************************************

-------./INDEX.PHP

*************************************************************
-------A LA FIN, TROUVER:

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


?>
        </div>
    </div>
</div>

-------À AJOUTER AVANT :
    
    // liste des anniversaires
    $monthtoday=date('m');
    $daytoday=date('d');
        $result = $db->query('SELECT username, id from '.$db->prefix.'users WHERE DAYOFMONTH(birthdate)=\''.$daytoday.'\' AND 

MONTH(birthdate)=\''.$monthtoday.'\' ORDER by username ASC') or error('Impossible de retrouver la liste des utilisateurs ayant leur 

anniversaire aujourd\'hui', __FILE__, __LINE__, $db->error());

    $birthdays_today = array();
    while ($pun_birthdays_today = $db->fetch_assoc($result))
        $birthdays_today[] .=  "\n\t\t\t\t".'<dd><a 

href="profile.php?id='.$pun_birthdays_today['id'].'">'.$pun_birthdays_today['username'].'</a>';
        
    $num_birthdays_today = count($birthdays_today);
    if ($num_birthdays_today=='0') $num_birthdays_today=$lang_index['None'].' ';
    echo '<dl id="birthdayslist"><dd><strong>'.$num_birthdays_today.' '.$lang_index['Birthday Today'].'</strong>';
    if ($num_birthdays_today > 0) 
        echo ': '.implode(',</dd> ', $birthdays_today).'</dd>'."\n\t\t\t".'</dl>'."\n";


*************************************************************

-------./LANG/FRENCH/INDEX.PHP

*************************************************************

---------------rajouter à l'array : 

'Birthday Today'        =>    'anniversaire(s) aujourd\'hui',
'None'                    =>    'Aucun',


*************************************************************

-------./LANG/FRENCH/PROFILE.PHP

*************************************************************

---------------rajouter à l'array : 

'Age'                        =>    'Âge',
'Birthdate'                    =>    'Date de naissance',
'BirthdateFormat'            =>    'JJ/MM/AAAA',
'Invalid date'                =>    'Date invalide',
'Years'                        =>    'Ans',


*************************************************************

-------./LANG/ENGLISH/PROFILE.PHP

*************************************************************

'Age'                        =>    'Age',
'Birthdate'                    =>    'Date of birth',
'BirthdateFormat'            =>    'DD/MM/YYYY',
'Invalid date'                =>    'Invalid date',
'Years'                        =>    'Years',


*************************************************************

-------./LANG/ENGLISH/INDEX.PHP

*************************************************************

------------------rajouter a l'array :
'Birthday Today'        =>    'birthday(s) today',
'None'                    =>    'No',




*************************************************************

-------./PROFILE.PHP

*************************************************************

---------------trouver :
<dt><?php echo $lang_profile['Location'] ?>: </dt>

---------------rajouter avant: 
            <dt><?php echo $lang_profile['Age'] ?>: </dt>
            <dd><?php echo $age ?> <?php echo $lang_profile['Years'] ?></dd>

------------------------------------------------------------


---------------trouver :
$result = $db->query('SELECT u.username,

---------------rajouter à la requete : 
u.birthdate,


*************************************************************


---------------trouver :
$form = extract_elements(array('realname',

---------------rajouter à l'array : 
'birthdate',


*************************************************************


---------------trouver :
    // Add http:// if the URL doesn't contain it already
    if ($form['url'] != '' && !stristr($form['url'], 'http://'))
    $form['url'] = 'http://'.$form['url'];

---------------rajouter après :
            // remet la date à zero si date est vide ou date = JJ/MM/AAAA 
            if ($form['birthdate'] == $lang_profile['BirthdateFormat'] OR $form['birthdate'] == '') {
                $form['birthdate'] = '0000-00-00';
            }
            
            // Formate la date si différent de 0000-00-00 et si la date est valide
            if ($form['birthdate'] != '0000-00-00') {
                $form_birthdate = explode ("/",$form['birthdate']);
if (is_numeric($form_birthdate[0]) == 'true' && is_numeric($form_birthdate[1]) == 'true' && is_numeric($form_birthdate[2]) == 'true' && 

strlen($form_birthdate[2]) == '4' && strlen($form_birthdate[1]) == '2' && strlen($form_birthdate[0]) == '2' && $form_birthdate[0] <= '31' && 

$form_birthdate[1] <= '12' && $form_birthdate[2] < ''.date('Y').'') {
                $form['birthdate'] = $form_birthdate[2]."-".$form_birthdate[1]."-".$form_birthdate[0];
                        }
                        else { $form['birthdate'] = '0000-00-00'; message($lang_profile['Birthdate'].': 

'.$lang_profile['Invalid date']); }
            }


*************************************************************

---------------trouver :
        $posts_field = '';
    if ($pun_config['o_show_post_count'] == '1' || $pun_user['g_id'] < PUN_GUEST)
        $posts_field = $user['num_posts'];
    if ($pun_user['g_search'] == '1')
        $posts_field .= (($posts_field != '') ? ' - ' : '').'<a 

href="search.php?action=show_user&user_id='.$id.'">'.$lang_profile['Show posts'].'</a>';

    $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['Profile'];
    define('PUN_ALLOW_INDEX', 1);
    require PUN_ROOT.'header.php';

---------------rajouter après :

        // on calcule la date en format francais
           $birthdate = explode ("-",$user['birthdate']);

if ($user['birthdate']!="0000-00-00") {
$birthdate = $birthdate[2]."/".$birthdate[1]."/".$birthdate[0];

   // enregistrement de la date du jour
$DATEDUJOUR = date("Y-m-d");
$DATEFRAN = date("d/m/Y");

// calcul de mon age d'après la date de naissance $ddn
$annais = substr("$birthdate", 6, 4);
$anjour = substr("$DATEFRAN", 6, 4);
$moisnais = substr("$birthdate", 3, 2);
$moisjour = substr("$DATEFRAN", 3, 2);
$journais = substr("$birthdate", 0, 2);
$jourjour = substr("$DATEFRAN", 0, 2);

$age = $anjour-$annais;

if ($moisjour<$moisnais){$age=$age-1;}

if ($jourjour<$journais && $moisjour==$moisnais){$age=$age-1;} 


}
else { $age=$lang_profile['Unknown']; }


*************************************************************

---------------trouver :
    else if ($section == 'personal')
    {
        if ($pun_user['g_set_title'] == '1')
            $title_field = '<label>'.$lang_common['Title'].'  (<em>'.$lang_profile['Leave blank'].'</em>)<br /><input 

type="text" name="title" value="'.pun_htmlspecialchars($user['title']).'" size="30" maxlength="50" /><br /></label>'."\n";

        $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['Profile'];
        require PUN_ROOT.'header.php';

        generate_profile_menu('personal');

---------------rajouter après :
        // on calcule la date en format francais
           $birthdate = explode ("-",$user['birthdate']);

if ($user['birthdate']!="0000-00-00") {
$birthdate = $birthdate[2]."/".$birthdate[1]."/".$birthdate[0];
}
else { $birthdate=$lang_profile['BirthdateFormat']; }


*************************************************************

---------------trouver :
            <legend><?php echo $lang_profile['Personal details legend'] ?></legend>
            <div class="infldset">
            <input type="hidden" name="form_sent" value="1" />
---------------rajouter après :
                            <label><?php echo $lang_profile['Birthdate'] ?><br /><input type="text" 

name="form[birthdate]" value="<?php echo pun_htmlspecialchars($birthdate) ?>" size="10" maxlength="10" /><br /></label>


*************************************************************

----------------- style/imports/base.css

*************************************************************


------------- trouver :
/* 8.1 Horizontal display of online list, main navigation menu and breadcrumbs */

#onlinelist DD, #onlinelist DT, #onlinetodaylist DD, #onlinetodaylist DT,
#brdmenu LI, DIV.linkst LI, DIV.linksb LI, DIV.postlinksb LI,
DIV.postfootright LI, UL.bblinks LI {
    DISPLAY: inline;
    HEIGHT: 0
}

------------Remplacer par :

/* 8.1 Horizontal display of online list, main navigation menu and breadcrumbs */

#birthdayslist DD, #birthdayslist DT, #onlinelist DD, #onlinelist DT, #onlinetodaylist DD, #onlinetodaylist DT,
#brdmenu LI, DIV.linkst LI, DIV.linksb LI, DIV.postlinksb LI,
DIV.postfootright LI, UL.bblinks LI {
    DISPLAY: inline;
    HEIGHT: 0
}

Dernière modification par Keulig (16-10-2005 12:37:24)

Hors ligne

#2 18-07-2005 23:09:01

Bloody
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Bah, j'ai petit message d'erreur : sad

Warning: ob_start() [ref.outcontrol]: output handler 'ob_gzhandler' cannot be used twice in c:\wamp\www\punbb\include\functions.php on line 938
An error was encountered
Error: Impossible de retrouver la liste des utilisateurs ayant leur anniversaire aujourd'hui.

Hors ligne

#3 18-07-2005 23:56:08

Keulig
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Suis à nouveau toute la procédure, j'ai rajouté quelques trucs que j'avais oublié (style et langue..).

mais c'est étrange que ca te donne ça... chez moi ca marche nickel...

Dernière modification par Keulig (19-07-2005 00:32:46)

Hors ligne

#4 19-07-2005 21:04:49

Bloody
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Keulig,

Ok je remet au boulot. Et je le refait calmement. mdr Je pense que c'est le fichier profile.php de la racine qui ne va pas chez moi. smile

Hors ligne

#5 20-07-2005 18:59:02

Bloody
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Merci pour ton mail Keulig !!! wink C'est sympat.

Ca ne marche tjrs pas !!
Je voudrai savoir si la mod de ./index.php est dépendante des modif sur ./PROFILE.PHP. ? hmm
Car dès que je fais la mod sur ./index.php, j'ai le message d'erreur du dessus !! sad

Hors ligne

#6 20-07-2005 22:36:52

Keulig
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Non c'est dépendant, mais contacte moi par msn pour régler ça smile

Hors ligne

#7 21-07-2005 07:42:13

Bloody
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Bah merci Keulig. smile Mais je n'aime pas MSN c'est sans doute que parce que c'est du Bill ... ^^
Je te passerai mes fichiers si tu veux bien, si ma troisième tentative est infructueuse. wink

Hors ligne

#8 28-02-2006 21:55:07

Polux
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Bonjour à tous,

J'essaye actuellement d'installer le module !
Croyez-vous qu'il serait possible de recevoir les fichiers ? smile
En effet, j'ai un petit souci avec la page profile.php :s

En vous remerciant,

Polux smile

Hors ligne

#9 01-03-2006 01:11:04

Keulig
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Tout est expliqué...

Sinon il y'a le mod Calendar qui rajoute la date de naissance au profil.

Hors ligne

#10 09-04-2006 21:47:59

Le daman
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

j'ai une page blanche sur l'index... ca marche pas je comprends pas pk..
j'avais essayé le mod calendar de guizzmo et mm pb...

au niveau des sauts de ligne, y a quoi exactement à modifier ?

par avance, merci


L'expérience est un lanterne que l'on porte accrochée dans le dos  et qui n'éclaire que le chemin parcouru.

Hors ligne

#11 11-04-2006 23:36:09

Keulig
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

disons qu'il faut bidouiller soi-même, et désolé j'ai la flemme de bien refaire cette explication sad

Hors ligne

#12 11-04-2006 23:53:14

foxmask
Lugo

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

ou comment saborder son travail ...


http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix

Hors ligne

#13 12-04-2006 09:53:30

Le daman
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Keulig a écrit :

disons qu'il faut bidouiller soi-même, et désolé j'ai la flemme de bien refaire cette explication sad

pour les sauts de lignes, y a le lien et la query..

mais sinon, concernant le champ à rajouter à la table users, il manque rien ? en valeur? en attributs
pour les fichiers lang : peu importe la place dans l'array ?

par avance, merci


L'expérience est un lanterne que l'on porte accrochée dans le dos  et qui n'éclaire que le chemin parcouru.

Hors ligne

#14 12-04-2006 11:54:33

Le daman
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

bon mon pb est avec le fichier index.php... je n'arrive pas à afficher la page, g une page blanche
d'où cela peut-il venir : voila mon code

    // Fetch users online info and generate strings for output
    $num_guests = 0;
    $users = array();
    $result = $db->query('SELECT user_id, ident, color FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());

    while ($pun_user_online = $db->fetch_assoc($result))
    {
        if ($pun_user_online['user_id'] > 1)
            $users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'"><span style="color: '.$pun_user_online['color'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</span></a>';
        else
            ++$num_guests;
    }

    $num_users = count($users);
    echo "\t\t\t\t".'<dd>'. $lang_index['Users online'].': <strong>'.$num_users.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Guests online'].': <strong>'.$num_guests.'</strong></dd>'."\n\t\t\t".'</dl>'."\n";


    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";

    // liste des anniversaires
    $monthtoday=date('m');
    $daytoday=date('d');
        $result = $db->query('SELECT username, id from '.$db->prefix.'users WHERE DAYOFMONTH(birthdate)=\''.$daytoday.'\' AND MONTH(birthdate)=\''.$monthtoday.'\' ORDER by username ASC') or error('Impossible de retrouver la liste des utilisateurs ayant leur anniversaire aujourd\'hui', __FILE__, __LINE__, $db->error());

    $birthdays_today = array();
    while ($pun_birthdays_today = $db->fetch_assoc($result))
        $birthdays_today[] .=  "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_birthdays_today['id'].'">'.$pun_birthdays_today['username'].'</a>';
        
    $num_birthdays_today = count($birthdays_today);
    if ($num_birthdays_today=='0') $num_birthdays_today=$lang_index['None'].' ';
        echo '<dl id="birthdayslist"><dd><strong>'.$num_birthdays_today.' '.$lang_index['Birthday Today'].'</strong>';
    if ($num_birthdays_today > 0) 
        echo ': '.implode(',</dd> ', $birthdays_today).'</dd>'."\n\t\t\t".'</dl>'."\n";
    }
    else
        echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";
?>
        </div>
    </div>
</div>

<?php

par avance, merci bcp de vos réponses

Dernière modification par Le daman (12-04-2006 11:56:22)


L'expérience est un lanterne que l'on porte accrochée dans le dos  et qui n'éclaire que le chemin parcouru.

Hors ligne

#15 12-04-2006 18:41:48

Le daman
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

c corrigé, ca devait venir de la place du code dans les fichiers lang.. ; il faut mettre
---------------rajouter à l'array avant Board Info:

'Birthday Today'        =>    'anniversaire(s) aujourd\'hui',
'None'                    =>    'Aucun',


*************************************************************

-------./LANG/FRENCH/PROFILE.PHP

*************************************************************

---------------rajouter à l'array, avant Location :

'Age'                        =>    'Âge',
'Birthdate'                    =>    'Date de naissance',
'BirthdateFormat'            =>    'JJ/MM/AAAA',
'Invalid date'                =>    'Date invalide',
'Years'                        =>    'Ans',

merci à Keulig pour ses mails


L'expérience est un lanterne que l'on porte accrochée dans le dos  et qui n'éclaire que le chemin parcouru.

Hors ligne

#16 29-04-2006 21:47:08

Bloody
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

Au fait, vous n'utiliser pas cette mod. smile

Hors ligne

#17 20-08-2007 16:11:41

steve2206
Membre

Re : Comment afficher les anniversaires dans le profil et en bas de l'index

petit détail, comment demander l'anniversaire d'une personne lors de l'enregistrement, à savoir dans registrer.php svp?

Hors ligne

Pied de page des forums