Navigation : Forums > Suggestions > Calendrier

Pages : 1 Poster un nouveau sujet Ajouter un message
Auteur Message
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 10/02/2003 à 13:04:54 Message N°1 #
tout d'abord un grand merci pour ce calendrier bien pratique.
mes petites suggestions pour ce calendrier :

- rajouter une option database, pour pouvoir raccorder des infos à chaque date

- augmenter le nombre de couleurs possibles (pas seulement jour actuel et autres jours)

- rajouter une option d'affichage de menu déroulant pour tri rapide par mois et année.

j'y es apporté quelques modifications pour obtenir ce que je recherchai.
http://pafweb.free.fr/index.php

le code est encore en chantier donc c'est un peu bordelique :-)
Profil Citer
djosh

Messages : 1
Inscrit le : 10/02/2003
Posté le 10/02/2003 à 16:18:59 Message N°2 #
Je trouvais aussi qu'il manquait de pouvoir inscrire un evenement ! Je serais donc super interessé par les modifs de ton code ?
Profil Citer
maverick

maverick

Messages : 619
Inscrit le : 04/04/2002
Posté le 11/02/2003 à 07:19:16 Message N°3 #
Jolie adaptation !!

Un jour, peut être, on aura 1heure ou 2 pour remettre les mains dans le code, mais d'ici là, il ne vous reste que l'adaptation :-)

Mathieu
____________________
image
Profil Citer
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 12/02/2003 à 00:38:41 Message N°4 #
ok :-)
je nettoie un peu les lignes de codes que j ai modifié et rajouté et je les poste ici.


premier bloc ajout de la fonction d'appel à la base pour récuperer les données

function actuel($time) // fonction d appel à la bdd
{
$month = date("m", $time);
$day = date("d", $time);
$year = date("y", $time);

$dtmin = mktime("0", "0", "0", $month, $day, $year); // dans la base de données la date est au format unix
$dtmax = $dtmin + 86390; // +24h

$list = query("SELECT * FROM database WHERE date BETWEEN '$dtmin' AND '$dtmax'"); // query est une fonction d'appel à la bdd


while ($ligne = mysql_fetch_array($list,MYSQL_ASSOC)) //temps q'une occurence est trouvée
{
$ladate = date(" d m y à H:i",$ligne["date"]);
$letitre = strtoupper($ligne["titre"]);

$result .= $letitre.' '.le $ladate.'n';

}

return $result;

}

[/quote]

puis premier bloc avec rajout de parametres supplementaires


### Default Params

$param_d['calendar_id'] = 1; // Calendar ID
$param_d['calendar_columns'] = 5; // Nb of columns
$param_d['show_day'] = 1; // Show the day bar
$param_d['show_month'] = 1; // Show the month bar
$param_d['nav_link'] = 1; // Add a nav bar below
$param_d['link_after_date'] = 1; // Enable link on days after the current day
$param_d['link_on_day'] = $PHP_SELF.'?date='; // Link to put on each day
$param_d['font_face'] = 'Verdana, Arial, Helvetica'; // Default font to use
$param_d['font_size'] = 10; // Font size in px

$param_d['bg_color'] = 'designtransparent.gif';
$param_d['today_bg_color'] = 'designtransparent_bleu.gif';
$param_d['match_color'] = 'designtransparent_rouge.gif';
$param_d['match_today'] = 'designtransparent_today.gif';
$param_d['font_today_color'] = '#990000';
$param_d['font_color'] = '#000000';
$param_d['font_nav_bg_color'] = '#A9B4B3';

$param_d['font_nav_color'] = '#FFFFFF';
$param_d['font_header_color'] = '#AAAAAA';
$param_d['border_color'] = 'transparent'; //'#3f6551';
$param_d['use_img'] = 1; // Use gif for nav bar on the bottom

[/quote]


enfin modification et insertion des elements de la base dans le calendrier

[quote]

$output = '<style type="text/css">
<!--
.calendarNav'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.($param['font_size']-1).'px; font-style: normal; background-color: '.$param['border_color'].'}
.calendarTop'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.($param['font_size']+1).'px; font-style: normal; color: '.$param['font_header_color'].'; font-weight: bold; background-color: '.$param['border_color'].'}
.calendarToday'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.$param['font_size'].'px; font-weight: bold; color: '.$param['font_today_color'].'; background-image: url('.$param_d['today_bg_color'].');}
.calendarDays'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.$param['font_size'].'px; font-style: normal; color: '.$param['font_color'].'; background-image: url('.$param['bg_color'].'); text-align: center}
.calendarHeader'.$param['calendar_id'].'{ font-family: '.$param['font_face'].'; font-size: '.($param['font_size']-1).'px; background-color: '.$param['font_nav_bg_color'].'; color: '.$param['font_nav_color'].';}
.calendarTable'.$param['calendar_id'].' { background-color: '.$param['border_color'].'; border: 0px '.$param['border_color'].' solid}
.calendarMatch'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.$param['font_size'].'px; font-style: normal; color: '.$param['font_color'].'; background-image: url('.$param['match_color'].'); text-align: center}
.MatchToday'.$param['calendar_id'].' { font-family: '.$param['font_face'].'; font-size: '.$param['font_size'].'px; font-style: normal; color: '.$param['font_color'].'; background-image: url('.$param['match_today'].'); text-align: center}

-->
</style>';
$output .= '<TABLE width="140" class="calendarTable'.$param['calendar_id'].'" cellpadding="2" cellspacing="1">'."n";

### Displaying the current month/year

//////////////////
/////////////////

### Row start
if ((($i + $first_day_pos-1) % $param['calendar_columns']) == 1 && $i != 1) {
$output .= '<TR align="center">'."n";
$int_counter = 0;
}
$color = "";
$loop_timestamp = mktime(0,0,0, $current_month, $i, $current_year);
$contenu = actuel($loop_timestamp);
if ($i == $current_day) {

if ($contenu){

$color = "MatchToday".$param['calendar_id'];
}
else {

$color = "calendarToday".$param['calendar_id'];
}

}
if ($param['link_on_day'] != '') {


if ( ($param['link_after_date'] == 0) && ($current_timestamp < $loop_timestamp) OR ($contenu == "")) {

if ($color == ""){$color = "calendarDays".$param['calendar_id'];}
$link = $i;

}
else {
if ($color == ""){$color = "calendarMatch".$param['calendar_id'];}
$link = '<A href="'.$param["link_on_day"].$current_year.$current_month_2.$i_2.'" title="'.$contenu.'">'.$i.'</A>';

}
}
else {
if ($color == ""){$color = "calendarDays".$param['calendar_id'];}
$link = $id;

}
$output .= '<TD class="'.$color.'">'.$link.'</TD>'."n";


je sais le code est nettement perfectible
comme par exemple ne faire appel à la bdd qu'une fois et sotcker le contenu du mois dans un tableau de variable du genre [quote] $contenu[$jour]
pour économiser l appel à la bdd.
et bien d'autres choses encore :-)
j'ai fait ca en 2h00 alors scuzez du code pas propre =D
Profil Citer
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 12/02/2003 à 00:40:37 Message N°5 #
arf j ai oublié de couper un bout :-)

les
///////
//////

séparent les differents blocs
mais vous vous en seriez appercu tout seul ;)
Profil Citer
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 12/02/2003 à 00:42:44 Message N°6 #
a oui encore une chose, sur le site de l exemple c'est une popup javascript
là j 'ai remplacé par un simple Title pour simplifier les lignes ajoutées.
mais le resultat est identique en dehors du design

pff et c'est seulement maintenant que je vois le bouton editer le message....
______________________________
Message édité par BerSeeker
Profil Citer
maverick

maverick

Messages : 619
Inscrit le : 04/04/2002
Posté le 12/02/2003 à 10:40:21 Message N°7 #
cool !
merci au nom de la communauté php ! :-)
____________________
image
Profil Citer
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 14/04/2003 à 23:00:18 Message N°8 #
me revoila :-)

bon, voila, j'aimerai modifier('encore) le scirpt du calendrier, mais je sait pas trop par ou commencer...
donc j'aimerai faire un calendrier 30 jours, non plus par mois mais par blocs de 30 jours. avec la date du jour sur la premiere ligne systematiquement, suivie donc de 30 jours.
pas clair !!?
par exemple on est le lundi 14 avril , donc le calendrier affiché commence le lundi 14, colorise donc le jour actuel. puis affiche les ~30 jours suivants. donc jusqu'au 14-15 mai. avec une differenciation de couleur pour le chevauchement de mois.

donc help :-)
Profil Citer
marco

Messages : 2
Inscrit le : 18/06/2003
Posté le 18/06/2003 à 02:24:55 Message N°9 #
Merci pour ces modifications - j'ai un peu du mal a les integrer; peut-on avoir une version complete du script avec les modifications?
Profil Citer
BerSeeker

Messages : 22
Inscrit le : 10/02/2003
Posté le 21/09/2003 à 13:17:52 Message N°10 #
me revoilà ^^
bon, ayant un nouveau site en projet et le calendrier entrant dans le site, je vais le refondre pour y intégrer les élements suivants :
-dates cliquables pour acceder aux news correspondantes (je tente d améliorer mon ancien code :-) )
-coloration des dates en correspondance avec le type de news.
-menus déroulants pour sauter à un mois ou/et une année spécifique.

voilà pour le moment. maintenant patience...
Profil Citer

Navigation : Forums > Suggestions > Calendrier

Pages : 1 Poster un nouveau sujet Ajouter un message


Se rendre directement sur le forum :