Page 1 sur 1

Rendre date sur un calendrier non cliquable si pas d'èvenem

Posté : 02 avr. 2009, 03:09
par Niurath
Bonjour, je suis débutante en php j'ai adapté un script php :
Mon script affiche un calendrier et je veux rendre les dates sans évènements non cliquable alors je veux savoir si pour un date_deb (date) on a un manif "evènement" dans la base sql comment faire ?

Je lutte depuis une semaine, suis ultra énervée !!

Vous pouvez dl le script ici : http://www.le-saxophone.fr/concert/calendrier.php

Si quelqu'un m'aide j'en serait très reconnaissante je peux lui faire un lien PR 4 sur mon site web (ajouter moi sur msn en bas du topic)

Voici une partie du script (calendrier.php)


<?


$month = $months_list;
	

if ($genre==1) 
{
	$separateur='-';
	$temp=split($separateur,$nom,3);
	$day=$temp[0];
	$month2=$temp[1];
	$year=$temp[2];
}

if(empty($mois)) $mois = date("n");
if(empty($annee)) $annee = date("Y");
if(empty($jour)) $jour = date("d");
if(!empty($year)) $annee = $year;
if(!empty($month2)) $mois = $month2;
if(!empty($day)) $jour = $day;

$nbre_jours =  date("t", $sec);

if($mois > 12) $mois = $mois-12;
if($mois < 1) $mois = $mois+12;

$dernJour = 28; 
   while (checkdate($mois, $dernJour , $annee)) 
   {
     $dernJour++; 
    }
--$dernJour;
$nbre_jours = $dernJour;



$jour_num = date("w", mktime(0,0,0,$mois,01,$annee)); 
if($jour_num == 0) $jour_num = 7;   



echo "<font face=\"verdana\" color=\"black\" size=\"2\">";
if($mois == 1) $mois_av = 12;
else $mois_av = $mois-1;
//echo " <a class=\"calendrier\" href=\"".$jour;
echo "$lien<a class=\"calendrier\" href=\"".$jour;
echo "-".$mois_av."-".$annee."\"><b><-&nbsp;</b></a> \n<font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">";
echo $month[$mois-1]; 


if($mois == 12) $mois_ap = 1;
else $mois_ap = $mois+1;
echo "</font>&nbsp;<a class=\"calendrier\" href=\"".$jour;

echo "-".$mois_ap."-".$annee."\"><b>&nbsp;-></b></a><br><a class=\"calendrier\" ";
echo "href=\"".$jour."-".$mois."-";
echo ($annee-1)."\"><b><-&nbsp;</b></a>&nbsp;<font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">".$annee."</font>&nbsp;<a class=\"calendrier\" ";
echo "href=\"";
echo $jour."-".$mois."-".($annee+1)."\"><b>&nbsp;-></b></a></font>\n</td>\n  </tr>\n";

echo "<tr><td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">lun</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"$color_text7\">mar</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">mer</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"$color_text7\">jeu</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">ven</font></td><td width=\"40\" align=\"center\">";
echo "<font face=\"verdana\" size=\"2\" color=\"$color_text7\">sam</font></td>";
echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" size=\"2\" ";
echo "color=\"$color_text7\">dim</font></td></tr>\n<tr>\n";

$case = 0;
$pasdelien=0;



if($jour_num != 1)
{
    while($jour_num > 1)
    {
        echo "<td width=\"40\">&nbsp;</td>\n";
        $jour_num--;
        $case++;
    }    
}         

for($u = 1; $u <= $nbre_jours; $u++)
{
    if($u == $jour)
    {
        echo "<td width=\"20\" align=\"center\" bgcolor=\"$color_text9\"><font ";
        echo "face=\"verdana\" color=\"#336699\" size=\"2\"><a class=\"theday\" ";
        echo "href=\"";
        echo $u."-".$mois."-".$annee."\"><b>".$u."</b></a></font></td>\n";
    }
    else
    {
        echo "<td width=\"40\" align=\"center\"><font face=\"verdana\" ";
        echo "color=\"white\" size=\"2\"><a class=\"calendrier\" ";
        echo "href=\"";
        echo $u."-".$mois."-".$annee."\">".$u."</a></font></td>\n";
    }
    if(is_integer(($case+$u)/7) && $u < $nbre_jours)
        echo "</tr>\n<tr>\n";
}

while(!is_integer(($case+$u-1)/7))
{
    echo "<td width=\"40\">&nbsp;</td>\n";
    $u++; 
}
?>
Stéphanie


Msn:[email protected]

Posté : 02 avr. 2009, 15:13
par Invité
Up

Posté : 02 avr. 2009, 15:32
par Nours312
heuu ... j'ai pas tout pigé ... encore moins comment veux tu orienté le script au cas il n'y ai pas d'évennement à promouvoir, ... mais bon :

le principe :

// Boucle dans laquelle on affiche les cases :

while()// ou for // ou autre {

  echo '<td>';

  echo getContenu($date_encours);

  echo '</td'>;

}


// Notre fonction : (à placer avant évidemment ;)

function getContenu($date)[
  
  $select // récupération dans la base de donnée des éléments

  if($select contient qqch){
    return '<a.......>le contenu mis en forme </a>';
  } else {
    return '&nbsp';
  }
}

Ainsi, en faisant traité le contenu indépendamment du contenant, ils sont plus simple à administrer ...

Voila, pour plus de détails, n'hésites pas !!


/* NOTE : Ce n'est pas terrible d'utiliser les <table> pour ceci, il est reletivement plus simpas, et nettement plus évolutifs d'utiliser des <div> et autres <span> ... les <table> devant etre plutôt etre réservées aux traitement des données ... mais c'est un avis purement personnel ;) */

BonCode ;)

Posté : 02 avr. 2009, 18:15
par AB
NOTE : Ce n'est pas terrible d'utiliser les <table> pour ceci, il est reletivement plus simpas, et nettement plus évolutifs d'utiliser des <div> et autres <span> ... les <table> devant etre plutôt etre réservées aux traitement des données ... mais c'est un avis purement personnel
Les tables sont spécialement étudiées pour afficher des données tabulaires. Qu'affiche t-on dans un calendrier ? Selon moi c'est donc précisément le type de cas où l'utilisation de tableaux est adaptée :wink:

Posté : 02 avr. 2009, 18:33
par Nours312
Qu'affiche t-on dans un calendrier ?
certes, tu as entièrement raison, mais j'en fais une utilisation particulière du calendrier, par le simple fait qu'il serait bien plus pratique de pouvoir le manipuler à l'aide du javascript, mois+, mois- ...

il y a certes la possibilité très lourde afficher le tableau générer en php via une requête ajax, mais sinon, il est beaucoup plus intéressant de pouvoir le manipuler facilement en JS, ce n'est pas un Gros tableau de Stats !! il doit conservé la légèreté d'un widget ! non ?

et tu conviendras que la manipulation des tables En javascript reste fastidieux !!! non ?

Mais Comme toujours, ce n'est Qu'un avis qui ne demande qu'à être confronté à son inverse !!

@+

Posté : 02 avr. 2009, 18:34
par Truc
Modération :
Niurath, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.