Bonjour,
J'avais besoin d'un petit script calendrier permettant d'avoir des liens sur certaines dates seulement.
je me suis donc permis de modifier le script de la manière suivante:
ajout d'un paramètre:
$param_d['link_highlighted'] = 0;
s'il est mis à 1, seuls les jours contenus dans la liste "highlight" auront un lien (sinon fonctionnement identique à avant).
et dans la boucle ### Building the table; remplacement de
if ($i == $current_day) {
$output .= '<td class="calendarToday'.$param['calendar_id'].'" align="center">'.$i.$txt_2_use.'</td>'."\n";
}
elseif ($param['link_on_day'] != '') {
$loop_timestamp = mktime(0,0,0, $current_month, $i, $current_year);
if (( ($param['link_after_date'] == 0) && ($current_timestamp < $loop_timestamp)) || (($param['link_before_date'] == 0) && ($current_timestamp >= $loop_timestamp)) ){
$output .= '<td class="calendar'.$css_2_use.$param['calendar_id'].'">'.$i.$txt_2_use.'</td>'."\n";
}
else {
$output .= '<td class="calendar'.$css_2_use.$param['calendar_id'].'"><a href="'.str_replace('%%dd%%', $current_year.$current_month_2.$i_2,$param['link_on_day']).'">'.$i.'</a>'.$txt_2_use.'</td>'."\n";
}
}
else {
$output .= '<td class="calendar'.$css_2_use.$param['calendar_id'].'">'.$i.'</td>'."\n";
}
par
$loop_timestamp = mktime(0,0,0, $current_month, $i, $current_year);
$linkable = ( ($param['link_on_day'] != '') &&
( ($param['link_highlighted'] == 1) ? ($highlight_current) :
((($param['link_after_date'] == 1) && ($current_timestamp <= $loop_timestamp)) ||
(($param['link_before_date'] == 1) && ($current_timestamp > $loop_timestamp)))));
$output .= '<td class="calendar'.
(($i == $current_day)?'Today': $css_2_use).$param['calendar_id'].'">'.
(($linkable)?'<a href="'.str_replace('%%dd%%', $current_year.$current_month_2.$i_2,$param['link_on_day']).'">'.$i.'</a>': $i).$txt_2_use.'</td>'."\n";
C'est tout!
j'en ai aussi profité pour corriger un petit pb (qui affichait une erreur de bornes) vers la ligne 145:
$current_day_index = ($current_day_index == -1) ? 6 : $current_day_index;
(et non pas 7 comme initialement).
Bien cordialement
jyl
Message édité le 20/02/2009 18:56:14 |