diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index 510c1eb0da9f43e5acea62755e75ed274e92c893..f2f8090fcc235f362b480e8b2d90732c5645830f 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -1047,12 +1047,13 @@ function affdate_heure($numdate) { * - Lundi 20 fevrier a 18h * - Le 20 fevrier de 18h a 20h * - Du 20 au 23 fevrier - * - du 20 fevrier au 30 mars - * - du 20 fevrier 2007 au 30 mars 2008 + * - Du 20 fevrier au 30 mars + * - Du 20 fevrier 2007 au 30 mars 2008 * $horaire='oui' ou true permet d'afficher l'horaire, toute autre valeur n'indique que le jour * $forme peut contenir une ou plusieurs valeurs parmi * - abbr (afficher le nom des jours en abbrege) * - hcal (generer une date au format hcal) + * - jour (forcer l'affichage des jours) * - annee (forcer l'affichage de l'annee) * * @param string $date_debut @@ -1066,7 +1067,8 @@ function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme=''){ if (strpos($forme,'abbr')!==false) $abbr = 'abbr'; $affdate = "affdate_jourcourt"; if (strpos($forme,'annee')!==false) $affdate = 'affdate'; - + if (strpos($forme,'jour')!==false) $jour = 'jour'; + $dtstart = $dtend = $dtabbr = ""; if (strpos($forme,'hcal')!==false) { $dtstart = "<abbr class='dtstart' title='".date_iso($date_debut)."'>"; @@ -1079,51 +1081,70 @@ function affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme=''){ $d = date("Y-m-d", $date_debut); $f = date("Y-m-d", $date_fin); $h = ($horaire==='oui' OR $horaire===true); - $hd = _T('date_fmt_heures_minutes_court', array('h'=> date("H",$date_debut), 'm'=> date("i",$date_debut))); - $hf = _T('date_fmt_heures_minutes_court', array('h'=> date("H",$date_fin), 'm'=> date("i",$date_fin))); - $au = " " . strtolower(_T('date_fmt_periode_to')) . " "; - $du = _T('date_fmt_periode_from') . " "; + if ($d==$f) { // meme jour - $s = spip_ucfirst(nom_jour($d,$abbr))." ".$affdate($d); - if ($h) - if ($hd!=$hf) - $s .= " $hd"; + $nomjour = nom_jour($d,$abbr); + $s = $affdate($d); + $s = _T('date_fmt_jour',array('nomjour'=>$nomjour,'jour' => $s)); + if ($h){ + if ($hd==$hf){ + // Lundi 20 fevrier a 18h25 + $s = spip_ucfirst(_T('date_fmt_jour_heure',array('jour'=>$s,'heure'=>$hd))); + $s = "$dtstart$s$dtabbr"; + }else{ + // Le <abbr...>lundi 20 fevrier de 18h00</abbr> a <abbr...>20h00</abbr> + if($dtabbr && $dtstart && $dtend) + $s = spip_ucfirst(_T('date_fmt_jour_heure_debut_fin_abbr',array('jour'=>$s,'heure_debut'=>$hd,'heure_fin'=>$hf,'dtstart'=>$dtstart,'dtend'=>$dtend,'dtabbr'=>$dtabbr))); + // Le lundi 20 fevrier de 18h00 a 20h00 + else + $s = spip_ucfirst(_T('date_fmt_jour_heure_debut_fin',array('jour'=>$s,'heure_debut'=>$hd,'heure_fin'=>$hf))); + } + }else{ + if($dtabbr && $dtstart) + $s = $dtstart.spip_ucfirst($s).$dabbr; else - $s = _T('date_fmt_jour_heure',array('jour'=>$s,'heure'=>$hd)); - $s = "$dtstart$s$dtabbr"; - if ($h AND $hd!=$hf) $s .= "-$dtend$hf$dtabbr"; + $s = spip_ucfirst($s); + } } else if ((date("Y-m",$date_debut))==date("Y-m",$date_fin)) { // meme annee et mois, jours differents + $nomjour_debut = nom_jour($d,$abbr); + $date_debut = jour($d); + $date_debut = _T('date_fmt_jour',array('nomjour'=>$nomjour_debut,'jour' => $date_debut)); + $nomjour_fin = nom_jour($f,$abbr); + $date_fin = $affdate($f); + $date_fin = _T('date_fmt_jour',array('nomjour'=>$nomjour_fin,'jour' => $date_fin)); if ($h){ - $s = $du . $dtstart . affdate_jourcourt($d,date("Y",$date_debut)) . " $hd" . $dtabbr; - $s .= $au . $dtend . $affdate($f); - if ($hd!=$hf) $s .= " $hf"; - $s .= $dtabbr; - } - else { - $s = $du . $dtstart . jour($d) . $dtabbr; - $s .= $au . $dtend . $affdate($f) . $dtabbr; + $date_debut = _T('date_fmt_jour_heure',array('jour'=>$date_debut,'heure'=>$hd)); + $date_fin = _T('date_fmt_jour_heure',array('jour'=>$date_fin,'heure'=>$hf)); } + + $date_debut = $dtstart.$date_debut.$dtabbr; + $date_fin = $dtend.$date_fin.$dtabbr; + + $s = _T('date_fmt_periode',array('date_debut' => $date_debut,'date_fin'=>$date_fin)); } - else if ((date("Y",$date_debut))==date("Y",$date_fin)) - { // meme annee, mois et jours differents - $s = $du . $dtstart . affdate_jourcourt($d,date("Y",$date_debut)); - if ($h) $s .= " $hd"; - $s .= $dtabbr . $au . $dtend . $affdate($f); - if ($h) $s .= " $hf"; - $s .= $dtabbr; - } - else - { // tout different - $s = $du . $dtstart . affdate($d); - if ($h) - $s .= " ($hd)"; - $s .= $dtabbr . $au . $dtend. affdate($f); + else { + if ((date("Y",$date_debut))==date("Y",$date_fin)) + { // meme annee, mois et jours differents + $date_debut = affdate_jourcourt($d,date("Y",$date_debut)); + } + else + { // tout different + $date_debut = $affdate($d); + } if ($h) - $s .= " ($hf)"; - $s .= $dtabbr; + $date_debut = _T('date_fmt_jour_heure',array('jour'=>$date_debut,'heure'=>$hd)); + + $date_fin = $affdate($f); + if ($h) + $date_fin = _T('date_fmt_jour_heure',array('jour'=>$date_fin,'heure'=>$hf)); + + $date_debut = $dtstart.$date_debut.$dtabbr; + $date_fin=$dtend.$date_fin.$dtabbr; + $s = _T('date_fmt_periode',array('date_debut' => $date_debut,'date_fin'=>$date_fin)); + } return $s; } diff --git a/ecrire/lang/spip_fr.php b/ecrire/lang/spip_fr.php index 1a6c7089950bbbb22934205931ada0742982a66f..84b116eb2ffdc8516e7424e60c48967d980ddf71 100644 --- a/ecrire/lang/spip_fr.php +++ b/ecrire/lang/spip_fr.php @@ -106,11 +106,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'date_demain' => 'demain', 'date_fmt_heures_minutes' => '@h@h@m@min', 'date_fmt_heures_minutes_court' => '@h@h@m@', + 'date_fmt_jour' => '@nomjour@ @jour@', 'date_fmt_jour_heure' => '@jour@ Ã @heure@', + 'date_fmt_jour_heure_debut_fin' => 'le @jour@ de @heure_debut@ Ã @heure_fin@', + 'date_fmt_jour_heure_debut_fin_abbr' => 'le @dtstart@@jour@ de @heure_debut@@dtabbr@ Ã @dtstart@@heure_fin@@dtend@', 'date_fmt_jour_mois' => '@jour@ @nommois@', 'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@', 'date_fmt_mois_annee' => '@nommois@ @annee@', + 'date_fmt_nomjour' => '@nomjour@ @date@', 'date_fmt_nomjour_date' => 'le @nomjour@ @date@', + 'date_fmt_periode' => 'Du @date_debut@ au @date_fin@', + 'date_fmt_periode_abbr' => 'Du @dtart@@date_debut@@dtabbr@ au @dtend@@date_fin@@dtabbr@', 'date_fmt_periode_from' => 'Du', 'date_fmt_periode_to' => 'au', 'date_heures' => 'heures',