3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('inc/presentation');
16 include_spip('inc/texte');
17 include_spip('inc/actions');
18 include_spip('inc/date');
20 // http://doc.spip.org/@inc_dater_dist
21 function inc_dater_dist($id, $flag, $statut, $type, $script, $date, $date_redac='', $fct_ajax='')
23 $possedeDateRedac = !preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})( ([0-9]{2}):([0-9]{2}))?/", $date_redac, $regs) ?
false : (($regs[1] +
$regs[2] +
$regs[3]) ?
$regs : false);
26 $res = dater_ecriture($id, $possedeDateRedac, $statut, $type, $script, $date, $date_redac, $fct_ajax);
28 $res = dater_lecture($date, $date_redac, $possedeDateRedac,
29 (($statut == 'publie' OR $type != 'article')
30 ?
_T('texte_date_publication_article')
31 : _T('texte_date_creation_article')));
34 return ajax_action_greffe("dater", $id, $res);
37 function dater_lecture($date, $date_redac, $possedeDateRedac, $label)
39 $res = "<div style='text-align:center;'><b> <span class='verdana1'>"
42 . majuscules(affdate($date))."</b>".aide('artdate')."</div>";
44 if ($possedeDateRedac) {
45 $res .= "<div style='text-align:center;'><b><span class='verdana1'>"
46 . _T('texte_date_publication_anterieure')
49 . majuscules(affdate($date_redac))
51 . aide('artdate_redac')
57 function dater_ecriture($id, $possedeDateRedac, $statut, $type, $script, $date, $date_redac, $fct_ajax) {
58 global $spip_lang_left, $spip_lang_right, $debut_date_publication;
60 if ($possedeDateRedac) {
61 $annee_redac = $possedeDateRedac[1];
62 $mois_redac = $possedeDateRedac[2];
63 $jour_redac = $possedeDateRedac[3];
64 $heure_redac = $possedeDateRedac[5];
65 $minute_redac = $possedeDateRedac[6];
66 if ($annee_redac > 4000) $annee_redac -= 9000;
67 } else $annee_redac = $mois_redac = $jour_redac = 0;
69 include_spip('inc/autoriser');
71 if (autoriser('dater',$type,$id,null,array('statut'=>$statut))) {
73 $res = dater_ajax($id, $type, $script, $date, $fct_ajax, $debut_date_publication);
75 $invite = "<b><span class='verdana1'>"
76 . _T('texte_date_publication_article')
78 . majuscules(affdate($date))
82 $res = block_parfois_visible("datepub-$id", $invite, $res, 'text-align: left');
86 if ($type == 'article')
87 $res = "\n<div style='padding-$spip_lang_left:7px;'><b> <span class='verdana1'>"
88 . _T('texte_date_creation_article')
90 . majuscules(affdate($date))."</b>".aide('artdate')."</div>";
92 $res = "\n<div style='text-align:center;'><b>"
93 . majuscules(affdate($date))."</b></div>";
96 if (!(($type == 'article')
97 AND ($GLOBALS['meta']["articles_redac"] != 'non' OR $possedeDateRedac)))
100 return $res . dater_redac($id, $type, $script, $possedeDateRedac, $date_redac, $fct_ajax);
103 function dater_redac($id, $type, $script, $possedeDateRedac, $date_redac, $fct_ajax)
105 if ($possedeDateRedac)
106 $date_affichee = majuscules(affdate($date_redac));
108 $date_affichee = majuscules(_T('jour_non_connu_nc'));
111 . "<span class='verdana1'>"
112 . majuscules(_T('texte_date_publication_anterieure'))
116 . aide('artdate_redac')
119 $js = "\"findObj_forcer('valider_date_redac-$id').style.visibility='visible';\"";
121 "<input type='radio' name='avec_redac' value='non' id='avec_redac_on$id'" .
122 ($possedeDateRedac ?
'' : " checked='checked'") .
124 " /> <label for='avec_redac_on$id'>" .
125 _T('texte_date_publication_anterieure_nonaffichee').
127 "<br /><input type='radio' name='avec_redac' value='oui' id='avec_redac_off$id'" .
128 (!$possedeDateRedac ?
'' : " checked='checked'") .
129 " onclick=$js /> <label for='avec_redac_off$id'>" .
130 _T('bouton_radio_afficher').
133 $masque = dater_ajax($id, $type, $script, $date_redac, $fct_ajax, 0, '_redac', $label, true);
135 return block_parfois_visible("dateredac-$id", $invite, $masque, 'text-align: left');
138 function dater_ajax($id, $type, $script, $date, $fct_ajax, $start=0, $suffixe='', $label='', $autre=false)
140 global $spip_lang_left, $spip_lang_right, $debut_date_publication;
142 if (!is_string($date)) return '';
143 preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})( ([0-9]{2}):([0-9]{2}))?/", $date, $regs);
145 if ($annee > 4000) $annee -= 9000;
151 $idom = "valider_date$suffixe-$id";
152 $js = " onchange=\"findObj_forcer('$idom').style.visibility='visible';\"";
155 . afficher_jour($jour, "name='jour$suffixe' $js", $autre)
156 . afficher_mois($mois, "name='mois$suffixe' $js", $autre)
157 . afficher_annee($annee, "name='annee$suffixe' $js", $start)
158 . (($type != 'article')
161 . afficher_heure($heure, "name='heure$suffixe' $js")
162 . afficher_minute($minute, "name='minute$suffixe' $js")))
163 . "<div class='nettoyeur'></div>";
165 $res = "<div style='margin-bottom: 5px; margin-$spip_lang_left: 20px;'>$res</div>";
166 return ajax_action_post("dater",
171 _T('bouton_changer'),
172 " style=' float:$spip_lang_right;position:relative;' class='visible_au_chargement' id='$idom'",
174 "&id=$id&type=$type",