Darathor
Citation :
But : Ajoute des flocons défilant sur le forum. Ces flocons sont activables pour tout le monde ou seulement les membres. De plus, un champ du profil peut être selectionné pour permettre aux membres de changer leur image ou de les désactiver.
Inspiration : Le javascript présenté là.
Prérequis :
- [MOD] Extended profile (DEV - K)
- [Sous-MOD] Get table fields (DEV - B)
Auteur : Darathor (darathor@free.fr)
Version : 1.0 TEST - C (10/12/2005)
Compatibilité phpBB : 2.0.18
SQL :
Code :
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ( 'FlDe_desactive_flocons_field', '' );
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ( 'FlDe_flocons_img_field', '' );
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ( 'FlDe_desactive_flocons_visiteurs', '1' );
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ( 'FlDe_flocon_img_address', '' );
Dans "admin/admin_board.php" :
Code :
#
# Trouver
#
"L_RESET" => $lang['Reset'],
#
# Ajouter après
#
// FIN MOD Flocons défilants
"L_DESACTIVE_FLOCONS_FIELD" => $lang['FlDe_choose_field'],
"L_DESACTIVE_FLOCONS_FIELD_EXPLAIN" => $lang['FlDe_choose_field_explain'],
"L_FLOCONS_IMG_FIELD" => $lang['FlDe_choose_field_img'],
"L_FLOCONS_IMG_FIELD_EXPLAIN" => $lang['FlDe_choose_field_img_explain'],
"L_DESACTIVE_FLOCONS_VISITEURS" => $lang['FlDe_desactive_flocons_visiteurs'],
"L_DESACTIVE_FLOCONS_VISITEURS_EXPLAIN" => $lang['FlDe_desactive_flocons_visiteurs_explain'],
"L_FLOCONS_IMG_ADDRESS" => $lang['FlDe_flocon_img_address'],
"L_FLOCONS_IMG_ADDRESS_EXPLAIN" => $lang['FlDe_flocon_img_address_explain'],
// FIN MOD Flocons défilants
#
# Trouver
#
"COPPA_MAIL" => $new['coppa_mail'],
#
# Ajouter après
#
// FIN MOD Flocons défilants
"DESACTIVE_FLOCONS_FIELD" => get_table_fields(USERS_TABLE, 'FlDe_desactive_flocons_field', $new['FlDe_desactive_flocons_field'], TRUE),
"FLOCONS_IMG_FIELD" => get_table_fields(USERS_TABLE, 'FlDe_flocons_img_field', $new['FlDe_flocons_img_field'], TRUE),
"DESACTIVE_FLOCONS_VISITEURS_YES" => ($new['FlDe_desactive_flocons_visiteurs']) ? "checked=\"checked\"" : "",
"DESACTIVE_FLOCONS_VISITEURS_NO" => (!$new['FlDe_desactive_flocons_visiteurs']) ? "checked=\"checked\"" : "",
"FLOCONS_IMG_ADDRESS" => $new['FlDe_flocon_img_address'],
// FIN MOD Flocons défilants
Dans "include/page_header.php" :
Code :
#
# Trouver
#
//
// Login box?
#
# Ajouter avant
#
// DEBUT MOD Flocons défilants
$active_flocons = true;
if($board_config['FlDe_flocon_img_address'] != '')
{
if($userdata['session_logged_in'] && ($board_config['FlDe_desactive_flocons_field'] != ''))
{
if($userdata[$board_config['FlDe_desactive_flocons_field']] == 1)
{
$active_flocons = false;
}
}
elseif($board_config['FlDe_desactive_flocons_visiteurs'] == 0) { $active_flocons = false; }
}
else { $active_flocons = false; }
if(($board_config['FlDe_flocons_img_field'] != '') && ($userdata[$board_config['FlDe_flocons_img_field']] != ''))
{
$flocon_img = $userdata[$board_config['FlDe_flocons_img_field']];
}
else
{
$flocon_img = $board_config['FlDe_flocon_img_address'];
}
if($active_flocons)
{
$template->assign_block_vars('switch_flocons', array(
'U_FLOCON_IMG' => $flocon_img)
);
}
// FIN MOD Flocons défilants
Dans "templates/subSilver/admin/board_config_body.tpl" :
Code :
#
# Trouver
#
<tr>
<th class="thHead" colspan="2">{L_COOKIE_SETTINGS}</th>
</tr>
#
# Ajouter avant
#
<!-- DEBUT MOD Flocons défilants -->
<tr>
<td class="row1">{L_FLOCONS_IMG_ADDRESS}<br /><span class="gensmall">{L_FLOCONS_IMG_ADDRESS_EXPLAIN}</span></td>
<td class="row2"><input class="post" type="text" size="40" maxlength="250" name="FlDe_flocon_img_address" value="{FLOCONS_IMG_ADDRESS}" /></td>
</tr>
<tr>
<td class="row1">{L_DESACTIVE_FLOCONS_VISITEURS}<br /><span class="gensmall">{L_DESACTIVE_FLOCONS_VISITEURS_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="FlDe_desactive_flocons_visiteurs" value="1" {DESACTIVE_FLOCONS_VISITEURS_YES} /> {L_YES} <input type="radio" name="FlDe_desactive_flocons_visiteurs" value="0" {DESACTIVE_FLOCONS_VISITEURS_NO} /> {L_NO}</td>
</tr>
<tr>
<td class="row1">{L_DESACTIVE_FLOCONS_FIELD}<br /><span class="gensmall">{L_DESACTIVE_FLOCONS_FIELD_EXPLAIN}</span></td>
<td class="row2">{DESACTIVE_FLOCONS_FIELD}</td>
</tr>
<tr>
<td class="row1">{L_FLOCONS_IMG_FIELD}<br /><span class="gensmall">{L_FLOCONS_IMG_FIELD_EXPLAIN}</span></td>
<td class="row2">{FLOCONS_IMG_FIELD}</td>
</tr>
<!-- FIN MOD Flocons défilants -->
Dans "templates/subSilver/overall_header.tpl" :
Code :
#
# Trouver
#
</head>
#
# Ajouter avant
#
<!-- BEGIN switch_flocons -->
<script language="Javascript" type="text/javascript">
sym = "{switch_flocons.U_FLOCON_IMG}";
intensite = 10 ; // Intensité de la pluie ou neige !
imgTaille = 45; // Max de la largeur et de la hauteur de l'image.
drops = intensite;
speed = 3;
angle = 5;
movex = -speed/angle;
movey = speed;
count = 0;
drop = new Array();
xx = new Array();
yy = new Array();
mv = new Array();
var zoneflocons;
function precipitation()
{
maxx = zoneflocons.offsetWidth-imgTaille;
//maxy = (document.documentElement.clientHeight != 0) ? document.documentElement.clientHeight-imgTaille : document.body.clientHeight-imgTaille-15;
//scrollTop = (document.body.scrollTop != 0) ? document.body.scrollTop : document.documentElement.scrollTop;
maxy = (document.body.scrollTop != 0) ? document.body.clientHeight-imgTaille : document.documentElement.clientHeight-imgTaille;
scrollTop = (document.body.scrollTop != 0) ? document.body.scrollTop : document.documentElement.scrollTop;
for(move = 0; move < drops; move++)
{
xx[move]+=movex;
yy[move]+=mv[move];
if(xx[move] < 0 || xx[move] > maxx) { xx[move] = maxx; mv[make] = ((Math.random()*10)+speed)/2; }
if(yy[move] > maxy) { yy[move] = -imgTaille; xx[move] = maxx*Math.random(); }
drop[move].style.left = xx[move]+'px';
drop[move].style.top = yy[move]+scrollTop+'px';
}
setTimeout('precipitation()','30');
}
function initPrecipitation()
{
zoneflocons = document.getElementById('zoneflocons');
maxx = zoneflocons.offsetWidth-imgTaille;
maxy = (document.body.scrollTop != 0) ? document.body.clientHeight-imgTaille : document.documentElement.clientHeight-imgTaille;
scrollTop = (document.body.scrollTop != 0) ? document.body.scrollTop : document.documentElement.scrollTop;
for(make = 0; make < drops; make++)
{
xx[make] = maxx*Math.random();
yy[make] = Math.random()*maxy;
document.write('<div id="drop'+make+'" style="position:absolute; top:'+yy[make]+'px; left:'+yy[make]+'px;"><img src="'+sym+'" /></div>');
drop[make] = document.getElementById('drop'+make);
mv[make] = ((Math.random()*10)+speed)/2;
}
window.onload = precipitation();
}
</script>
<!-- END switch_flocons -->
#
# Trouver
#
<td class="bodyline"><table width="100%" cellspacing="0" cellpadding="0" border="0">
#
# Remplacer par
#
<td class="bodyline" id="zoneflocons">
<!-- BEGIN switch_flocons -->
<script language="Javascript" type="text/javascript">initPrecipitation();</script>
<!-- END switch_flocons -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
Dans "language/lang_french/lang_admin.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Flocons défilants
$lang['FlDe_choose_field'] = 'Champ utilisateur déterminant l\'affichage des flocons';
$lang['FlDe_choose_field_explain'] = 'Choisissez ici le champ de la table des utilisateur qui détermine pour chaque membre si l\'on doit ou non afficher les flocons. Ce champ doit avoir été ajouté préalablement par un autre MOD (ses valeurs doivent être 0 ou 1). Si vous ne selectionnez pas de champ, les utilisateurs ne pourront pas choisir s\'il veulent voir ou non les flocons.';
$lang['FlDe_choose_field_img'] = 'Champ utilisateur déterminant l\'image des flocons';
$lang['FlDe_choose_field_img_explain'] = 'Choisissez ici le champ de la table des utilisateur qui détermine pour chaque membre l\'adresse de l\'image du flocon. Ce champ doit avoir été ajouté préalablement par un autre MOD (champ texte). Si vous ne selectionnez pas de champ, les utilisateurs ne pourront pas choisir l\'image du flocon qu\'ils voudrons afficher.';
$lang['FlDe_desactive_flocons_visiteurs'] = 'Afficher les flocons aux visiteurs ?';
$lang['FlDe_desactive_flocons_visiteurs_explain'] = 'Choisissez ici si les visiteurs non-enregistrés voient ou non les flosons. Si aucun champ n\'a été sélectionné ci-dessus, ceci concernera tous les visiteurs, y compris les membres inscrits.';
$lang['FlDe_flocon_img_address'] = 'Adresse de l\'image des flocons';
$lang['FlDe_flocon_img_address_explain'] = 'L\'adresse peut être absolue (Ex : <em>www.monsite.com/images/flocon.jpg</em>) ou relative au à la racine du forum (Ex : <em>templates/subSilver/images/flocon.jpg</em>). Si aucune image n\'est définie, le module n\'a pas d\'effet.';
// FIN MOD Flocons défilants