IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Besoin d'aide sur un calendrier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut [Système] Besoin d'aide sur un calendrier
    Bonjour a tous j'utilise un script pour mon site
    et au lieu de tout betement le mettre en ligne sans le comprendre
    j'aimerai avoir qq explications

    y'aurait il du monde qui serait capable de m'expliquer certaines parties du script suivant

    Je me suis permis de colorer les 3 partis ou je peche meme s'il y a qq commentaires ce n'est pas ce que fait ce bout de code que je ne comprends pas mais plutot comment il le fait...

    Merci Bcp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    $tabmonth  = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin","Juillet", 
    "Août", "Septembre", "Octobre", "Novembre","Décembre");
    $tabday  = Array("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam","Dim");
    
    // selectionne la date d aujourd hui si aucune saisie
    if (!$dt)
    	{
    		$year = date("Y");
    		$now   = date("Y/m/d");
    		$month  = date("n");
    		$day = date("d");
    	}
    else
    	{
    		$data=explode(" ",$dt);
    		$year=$data[0];
    		$month=$data[1];
    		$day=$data[2];
    		$now=date("Y/m/d", mktime(0,0,0,$month,$day,$year));
    		echo "now = $now";
    	}
    
    $moyear=$tabmonth[$month-1]."  ".$year;
    
    ?>
    <table WIDTH="160" BORDER="0" CELLSPACING="0" CELLPADDING="2">
      <tr>
        <td CLASS='titremois' colspan="8" ALIGN="center">
    <?
    	$lien=date("Y+m+d", mktime(0,0,0,$month,$day-1,$year));
    	echo "<A CLASS='titremois' href=\"testcalendrier5.php?dt=$lien\"><&nbsp;&nbsp;&nbsp;</a>";
    
    	$lien=date("Y+m+d", mktime(0,0,0,$month-1,$day,$year));
    	echo "<A CLASS='titremois' href=\"testcalendrier5.php?dt=$lien\"><<</a>";
    
    	echo "<A CLASS='titremois'>&nbsp;$moyear&nbsp;</a>";
    
    	$lien=date("Y+m+d", mktime(0,0,0,$month+1,$day,$year));
    	echo "<A CLASS='titremois' href=\"testcalendrier5.php?dt=$lien\">>>&nbsp;&nbsp;&nbsp;</a>";
    
    	$lien=date("Y+m+d", mktime(0,0,0,$month,$day+1,$year));
    	echo "<A CLASS='titremois' href=\"testcalendrier5.php?dt=$lien\">></a>";
    
    ?>
        </td>
      </tr>
    
      <tr>
    <?
    echo"<td WIDTH=20 class='titreweek' ALIGN='center'>Sem</td>\n";
    for ($i=0;$i<7;$i++)
    	{
    	echo"<td WIDTH=20 class='titrejours' ALIGN='center'>$tabday[$i]</td>\n";
    	}
    ?>
      </tr>
    <?
    
    //Me permet de connaitre le numero du jour de la semaine
    //Mais comme cela commence a 0 pour le dimanche si j'ai 0 je mets 7
    $num_day=date("w", mktime(0 ,0 ,0 ,$month,01,$year ));
    echo "num_day = $num_day";
    	if($num_day==0)
    		{
    		$num_day=7;
    		}//Me permet de connaitre exactement le nombre de jour dans le mois
    $max_day=date("t", mktime(0,0,0,$month,01,$year)); $cpt_day=2;
    	while ($cpt_day<=$max_day+$num_day)
    		{
      		echo "<tr>";
    
    // calcul le numero de semaine
    
      $nb_day=date("z", mktime(0,0,0,$month,$cpt_day-$num_day+3,$year));
      $val=intval($nb_day/7)+1;
      echo "<td WIDTH=20 class='titreweek2' ALIGN='center'>".(($val < 10) ? "0".$val : $val)."</td>\n";
    // affiche les jours du mois
    
      for ($i=0;$i<7;$i++) {
    	$theday=date("D", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
    	$val=date("d", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
    //	$jourferie=calcul_joursferies($month,$cpt_day-$num_day,$year);
    	$class="titrenum";
    	if (($theday=="Sun") or ($theday=="Sat")){ $class="titrewend";}
    	if ($now==date("Y/m/d",mktime(0,0,0,$month,$cpt_day-$num_day,$year))){ $class="titrenow";}
    	if ((($cpt_day-$num_day)<1) or (($cpt_day-$num_day)>$max_day)){
    	  $class="titrenum2";
    	  if (($theday=="Sun") or ($theday=="Sat")){ $class="titrewend2";}
    	}
    	$cpt_day++;
    	echo "<td WIDTH=20 class='$class'ALIGN='center'>".$val."</td>\n";
      }
      echo "</tr>";
    }
    ?>
    </table>

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut
    je suis peut etre pas clair dans ma question ou alors pas assez patient

  3. #3
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    
    //Me permet de connaitre le numero du jour de la semaine
    //Mais comme cela commence a 0 pour le dimanche si j'ai 0 je mets 7
    $num_day=date("w", mktime(0 ,0 ,0 ,$month,01,$year ));
    echo "num_day = $num_day";
    
    if($num_day==0)
    {
        $num_day=7;
    }
    
    //Me permet de connaitre exactement le nombre de jour dans le mois
    $max_day=date("t", mktime(0,0,0,$month,01,$year)); $cpt_day=2;
    
    while ($cpt_day<=$max_day+$num_day)
    {
         echo "<tr>";
    
         // calcul le numero de semaine
         $nb_day = date("z", mktime(0,0,0,$month,$cpt_day-$num_day+3,$year));
         $val = intval($nb_day/7)+1;
         echo "<td WIDTH=20 class='titreweek2' ALIGN='center'>".(($val < 10) ? "0".$val : $val)."</td>\n";
      
         // affiche les jours du mois
         for ($i=0;$i<7;$i++) 
         {
            $theday = date("D", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
            $val = date("d", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
            //$jourferie = calcul_joursferies($month,$cpt_day-$num_day,$year);
    	$class = "titrenum";
    
    	if (($theday=="Sun") or ($theday=="Sat"))
            { 
                 $class="titrewend";
            }
    
    	if ($now==date("Y/m/d",mktime(0,0,0,$month,$cpt_day-$num_day,$year)))
            { 
                 $class="titrenow";
            }
    
    	if ((($cpt_day-$num_day)<1) or (($cpt_day-$num_day)>$max_day))
            {
    	     $class="titrenum2";
    	     if (($theday=="Sun") or ($theday=="Sat"))
                 { 
                      $class="titrewend2";
                 }
    	}
    	$cpt_day++;
    	echo "<td WIDTH=20 class='$class'ALIGN='center'>".$val."</td>\n";
         }
    
      echo "</tr>";
    }
    Qu'est ce que tu ne comprend pas... .. ?

    C'est pas super propre comme code... y a moyen d'optimiser... .. .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    //Me permet de connaitre le numero du jour de la semaine
    //Mais comme cela commence a 0 pour le dimanche si j'ai 0 je mets 7
    $mkday = mktime(0 ,0 ,0 ,$month,01,$year);
    $num_day = date("w",$mkday);
    echo "num_day = ".$num_day;
    
    if(empty($num_day)) $num_day = 7;
    
    //Me permet de connaitre exactement le nombre de jour dans le mois
    $max_day = date("t", $mkday); 
    $cpt_day = 2;
    
    while ($cpt_day<=$max_day+$num_day)
    {
        echo '<tr>';
    
        // calcul le numero de semaine
        $nb_day = date("z", mktime(0,0,0,$month,$cpt_day-$num_day+3,$year));
        $val = intval($nb_day/7)+1;
        echo '<td width="20" class="titreweek2" align="center">'.(($val < 10) ? '0'.$val : $val)."</td>\n";
      
        // affiche les jours du mois
        for ($i=0;$i<7;$i++) 
        {
    		$mksem = mktime(0,0,0,$month,$cpt_day-$num_day,$year);
    		$theday = date("D", $mksem);
            $val = date("d", $mksem);
            //$jourferie = calcul_joursferies($month,$cpt_day-$num_day,$year);
    		
    		
    		if ($theday == 'Sun' or $theday == 'Sat')
    			$class = 'titrewend';
    				elseif ($now == date("Y/m/d",$mksem))
    					$class = 'titrenow';
    						else
    							$class = 'titrenum';
    		
    		if ($cpt_day-$num_day < 1 or (($cpt_day - $num_day) > $max_day))
            {
    			$class = 'titrenum2';
    			if ($theday == 'Sun' or $theday == 'Sat')
    				$class="titrewend2";
    		}
    		
    		$cpt_day++;
    		echo '<td width="20" class="'.$class.'" align="center">'.$val."</td>\n";
        }
    
    	echo '</tr>';
    }
    @ tchaOo°

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut
    Merci a toi de repondre

    Je vais commencer dans l'odre dans le code en vert dans le premier mktime je comprends pas pourquoi pour le jour on utilise 01 et non pas la variable $day ???

  5. #5
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Citation Envoyé par joxbl
    Merci a toi de repondre

    Je vais commencer dans l'odre dans le code en vert dans le premier mktime je comprends pas pourquoi pour le jour on utilise 01 et non pas la variable $day ???

    Regarde la doc sur la fonction mktime tu devrais comprendre... .. .

    @ tchaOo°

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Par défaut
    Merci pour ta reponse mais j'ai regardé et je ne pige toujours pas

    j'ai meme acheté 3 bouquins et ca ne m'aide pas bcp

    je dois vraiment etre .... mais bon si qqun peut me dire ca serait sympa

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/04/2008, 14h24
  2. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  3. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  4. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo