[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / inc / dater.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 include_spip('inc/presentation');
16 include_spip('inc/texte');
17 include_spip('inc/actions');
18 include_spip('inc/date');
19
20 // http://doc.spip.org/@inc_dater_dist
21 function inc_dater_dist($id, $flag, $statut, $type, $script, $date, $date_redac='', $fct_ajax='')
22 {
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);
24
25 if ($flag) {
26 $res = dater_ecriture($id, $possedeDateRedac, $statut, $type, $script, $date, $date_redac, $fct_ajax);
27 } else {
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')));
32 }
33
34 return ajax_action_greffe("dater", $id, $res);
35 }
36
37 function dater_lecture($date, $date_redac, $possedeDateRedac, $label)
38 {
39 $res = "<div style='text-align:center;'><b> <span class='verdana1'>"
40 . $label
41 . "</span> "
42 . majuscules(affdate($date))."</b>".aide('artdate')."</div>";
43
44 if ($possedeDateRedac) {
45 $res .= "<div style='text-align:center;'><b><span class='verdana1'>"
46 . _T('texte_date_publication_anterieure')
47 . "</span> "
48 . ' : '
49 . majuscules(affdate($date_redac))
50 . "</b>"
51 . aide('artdate_redac')
52 . "</div>";
53 }
54 return $res;
55 }
56
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;
59
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;
68
69 include_spip('inc/autoriser');
70
71 if (autoriser('dater',$type,$id,null,array('statut'=>$statut))) {
72
73 $res = dater_ajax($id, $type, $script, $date, $fct_ajax, $debut_date_publication);
74 if ($res) {
75 $invite = "<b><span class='verdana1'>"
76 . _T('texte_date_publication_article')
77 . '</span> '
78 . majuscules(affdate($date))
79 . "</b>"
80 . aide('artdate');
81
82 $res = block_parfois_visible("datepub-$id", $invite, $res, 'text-align: left');
83 }
84
85 } else {
86 if ($type == 'article')
87 $res = "\n<div style='padding-$spip_lang_left:7px;'><b> <span class='verdana1'>"
88 . _T('texte_date_creation_article')
89 . "</span>\n"
90 . majuscules(affdate($date))."</b>".aide('artdate')."</div>";
91 else
92 $res = "\n<div style='text-align:center;'><b>"
93 . majuscules(affdate($date))."</b></div>";
94 }
95
96 if (!(($type == 'article')
97 AND ($GLOBALS['meta']["articles_redac"] != 'non' OR $possedeDateRedac)))
98 return $res;
99
100 return $res . dater_redac($id, $type, $script, $possedeDateRedac, $date_redac, $fct_ajax);
101 }
102
103 function dater_redac($id, $type, $script, $possedeDateRedac, $date_redac, $fct_ajax)
104 {
105 if ($possedeDateRedac)
106 $date_affichee = majuscules(affdate($date_redac));
107 else
108 $date_affichee = majuscules(_T('jour_non_connu_nc'));
109
110 $invite = "<b>"
111 . "<span class='verdana1'>"
112 . majuscules(_T('texte_date_publication_anterieure'))
113 . '</span> '
114 . $date_affichee
115 . " "
116 . aide('artdate_redac')
117 . "</b>";
118
119 $js = "\"findObj_forcer('valider_date_redac-$id').style.visibility='visible';\"";
120 $label =
121 "<input type='radio' name='avec_redac' value='non' id='avec_redac_on$id'" .
122 ($possedeDateRedac ? '' : " checked='checked'") .
123 " onclick=$js" .
124 " /> <label for='avec_redac_on$id'>" .
125 _T('texte_date_publication_anterieure_nonaffichee').
126 '</label>' .
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').
131 ' :</label> ';
132
133 $masque = dater_ajax($id, $type, $script, $date_redac, $fct_ajax, 0, '_redac', $label, true);
134
135 return block_parfois_visible("dateredac-$id", $invite, $masque, 'text-align: left');
136 }
137
138 function dater_ajax($id, $type, $script, $date, $fct_ajax, $start=0, $suffixe='', $label='', $autre=false)
139 {
140 global $spip_lang_left, $spip_lang_right, $debut_date_publication;
141
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);
144 $annee = $regs[1];
145 if ($annee > 4000) $annee -= 9000;
146 $mois = $regs[2];
147 $jour = $regs[3];
148 $heure = $regs[5];
149 $minute = $regs[6];
150
151 $idom = "valider_date$suffixe-$id";
152 $js = " onchange=\"findObj_forcer('$idom').style.visibility='visible';\"";
153
154 $res = $label
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')
159 ? ''
160 : (' - '
161 . afficher_heure($heure, "name='heure$suffixe' $js")
162 . afficher_minute($minute, "name='minute$suffixe' $js")))
163 . "<div class='nettoyeur'></div>";
164
165 $res = "<div style='margin-bottom: 5px; margin-$spip_lang_left: 20px;'>$res</div>";
166 return ajax_action_post("dater",
167 "$id/$type",
168 $script,
169 "id_$type=$id",
170 $res,
171 _T('bouton_changer'),
172 " style=' float:$spip_lang_right;position:relative;' class='visible_au_chargement' id='$idom'",
173 "",
174 "&id=$id&type=$type",
175 $fct_ajax);
176 }
177 ?>