4 |
david |
1 |
<?php
|
|
|
2 |
|
|
|
3 |
/***************************************************************************\
|
|
|
4 |
* SPIP, Systeme de publication pour l'internet *
|
|
|
5 |
* *
|
|
|
6 |
* Copyright (c) 2001-2005 *
|
|
|
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 |
|
|
|
14 |
//
|
|
|
15 |
// Ce fichier ne sera execute qu'une fois
|
|
|
16 |
if (defined("_ECRIRE_INC_DOCUMENTS")) return;
|
|
|
17 |
define("_ECRIRE_INC_DOCUMENTS", "1");
|
|
|
18 |
|
|
|
19 |
include_ecrire ("inc_admin.php3");
|
|
|
20 |
include_ecrire ("inc_date.php3");
|
|
|
21 |
|
|
|
22 |
//
|
|
|
23 |
// Vignette pour les documents lies
|
|
|
24 |
//
|
|
|
25 |
|
|
|
26 |
function vignette_par_defaut($type_extension, $size=true) {
|
|
|
27 |
|
|
|
28 |
if (!$type_extension)
|
|
|
29 |
$type_extension = 'txt';
|
|
|
30 |
|
|
|
31 |
$filename = _DIR_IMG_ICONES . "$type_extension";
|
|
|
32 |
|
|
|
33 |
// Glurps !
|
|
|
34 |
// je dirais meme plus: Glurps ! (esj)
|
|
|
35 |
if (!@file_exists($v = $filename.'.png'))
|
|
|
36 |
if (!@file_exists($v = $filename.'.gif'))
|
|
|
37 |
if (!@file_exists($v = $filename.'-dist.png'))
|
|
|
38 |
if (!@file_exists($v = $filename.'-dist.gif'))
|
|
|
39 |
if (!@file_exists($v = _DIR_IMG_ICONES . "/defaut.png"))
|
|
|
40 |
if (!@file_exists($v = _DIR_IMG_ICONES . "/defaut.gif"))
|
|
|
41 |
if (!@file_exists($v = _DIR_IMG_ICONES . "/defaut-dist.png"))
|
|
|
42 |
if (!@file_exists($v = _DIR_IMG_ICONES . "/defaut-dist.gif"))
|
|
|
43 |
$v = _DIR_IMG_ICONES . "/defaut-dist.gif";
|
|
|
44 |
|
|
|
45 |
if (!$size) return $v;
|
|
|
46 |
|
|
|
47 |
if ($size = @getimagesize($v)) {
|
|
|
48 |
$largeur = $size[0];
|
|
|
49 |
$hauteur = $size[1];
|
|
|
50 |
}
|
|
|
51 |
|
|
|
52 |
return array($v, $largeur, $hauteur);
|
|
|
53 |
}
|
|
|
54 |
|
|
|
55 |
|
|
|
56 |
//
|
|
|
57 |
// Affiche le document avec sa vignette par defaut
|
|
|
58 |
//
|
|
|
59 |
// Attention : en mode 'doc', si c'est un fichier graphique on prefere
|
|
|
60 |
// afficher une vue reduite, quand c'est possible (presque toujours, donc)
|
|
|
61 |
// En mode 'vignette', l'image conserve sa taille
|
|
|
62 |
//
|
|
|
63 |
// A noter : dans le portfolio prive on pousse le vice jusqu'a reduire la taille
|
|
|
64 |
// de la vignette -> c'est a ca que sert la variable $portfolio
|
|
|
65 |
function image_pattern($vignette) {
|
|
|
66 |
return "<img src='"
|
|
|
67 |
. (_DIR_RESTREINT ? '' : '../')
|
|
|
68 |
. $vignette['fichier']."'
|
|
|
69 |
width='".$vignette['largeur']."'
|
|
|
70 |
height='".$vignette['hauteur']."'
|
|
|
71 |
style='border-width: 0px;' />";
|
|
|
72 |
}
|
|
|
73 |
|
|
|
74 |
function document_et_vignette($document, $url, $portfolio=false) {
|
|
|
75 |
// a supprimer avec spip_types_documents
|
|
|
76 |
list($extension) = spip_fetch_array(spip_query("SELECT extension FROM
|
|
|
77 |
spip_types_documents WHERE id_type=".$document['id_type']));
|
|
|
78 |
|
|
|
79 |
if ($document['id_vignette'] > 0
|
|
|
80 |
AND $vignette = spip_fetch_array(spip_query("SELECT * FROM spip_documents
|
|
|
81 |
WHERE id_document = ".$document['id_vignette']))) {
|
|
|
82 |
if (!$portfolio OR !(lire_meta('creer_preview') == 'oui')) {
|
|
|
83 |
$image = image_pattern($vignette);
|
|
|
84 |
} else {
|
|
|
85 |
$image = prive_lien_image_reduite ($vignette['largeur'],
|
|
|
86 |
$vignette['hauteur'], $vignette['fichier']);
|
|
|
87 |
}
|
|
|
88 |
} else if (strstr(lire_meta('formats_graphiques'), $extension)
|
|
|
89 |
AND lire_meta('creer_preview') == 'oui') {
|
|
|
90 |
include_ecrire('inc_logos.php3');
|
|
|
91 |
#var_dump($document);
|
|
|
92 |
$local = copie_locale($document['fichier']);
|
|
|
93 |
if ($portfolio)
|
|
|
94 |
$image = reduire_image_logo($local, 110, 120);
|
|
|
95 |
else
|
|
|
96 |
$image = reduire_image_logo($local);
|
|
|
97 |
}
|
|
|
98 |
|
|
|
99 |
if (!$image) {
|
|
|
100 |
list($fichier, $largeur, $hauteur) = vignette_par_defaut($extension);
|
|
|
101 |
$image = "<img src='$fichier' style='border-width: 0px;' height='$hauteur' width='$largeur' />";
|
|
|
102 |
}
|
|
|
103 |
|
|
|
104 |
if (!$url)
|
|
|
105 |
return $image;
|
|
|
106 |
else
|
|
|
107 |
return "<a href='$url'>$image</a>";
|
|
|
108 |
}
|
|
|
109 |
|
|
|
110 |
//
|
|
|
111 |
// Integration (embed) multimedia
|
|
|
112 |
//
|
|
|
113 |
|
|
|
114 |
function embed_document($id_document, $les_parametres="", $afficher_titre=true) {
|
|
|
115 |
global $id_doublons;
|
|
|
116 |
|
|
|
117 |
$id_doublons['documents'] .= ",$id_document";
|
|
|
118 |
|
|
|
119 |
if ($les_parametres) {
|
|
|
120 |
$parametres = explode("|",$les_parametres);
|
|
|
121 |
|
|
|
122 |
for ($i = 0; $i < count($parametres); $i++) {
|
|
|
123 |
$parametre = $parametres[$i];
|
|
|
124 |
|
|
|
125 |
if (eregi("^left|right|center$", $parametre)) {
|
|
|
126 |
$align = $parametre;
|
|
|
127 |
}
|
|
|
128 |
else {
|
|
|
129 |
$params[] = $parametre;
|
|
|
130 |
}
|
|
|
131 |
}
|
|
|
132 |
}
|
|
|
133 |
|
|
|
134 |
if (!($row = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = " . intval($id_document)))))
|
|
|
135 |
return '';
|
|
|
136 |
$id_document = $row['id_document'];
|
|
|
137 |
$id_type = $row['id_type'];
|
|
|
138 |
$titre = propre($row ['titre']);
|
|
|
139 |
$descriptif = propre($row['descriptif']);
|
|
|
140 |
$fichier = generer_url_document($id_document);
|
|
|
141 |
$largeur = $row['largeur'];
|
|
|
142 |
$hauteur = $row['hauteur'];
|
|
|
143 |
$taille = $row['taille'];
|
|
|
144 |
$mode = $row['mode'];
|
|
|
145 |
|
|
|
146 |
$result_type = spip_query("SELECT * FROM spip_types_documents WHERE id_type=" . intval($id_type));
|
|
|
147 |
if ($row_type = @spip_fetch_array($result_type)) {
|
|
|
148 |
$type = $row_type['titre'];
|
|
|
149 |
$inclus = $row_type['inclus'];
|
|
|
150 |
$extension = $row_type['extension'];
|
|
|
151 |
}
|
|
|
152 |
else $type = 'fichier';
|
|
|
153 |
|
|
|
154 |
// Pour RealVideo
|
|
|
155 |
$real = ((!ereg("^controls", $les_parametres)) AND (ereg("^(rm|ra|ram)$", $extension)));
|
|
|
156 |
|
|
|
157 |
if ($inclus == "embed" AND !$real) {
|
|
|
158 |
|
|
|
159 |
for ($i = 0; $i < count($params); $i++) {
|
|
|
160 |
if (ereg("([^\=]*)\=([^\=]*)", $params[$i], $vals)){
|
|
|
161 |
$nom = $vals[1];
|
|
|
162 |
$valeur = $vals[2];
|
|
|
163 |
$inserer_vignette .= "<param name='$nom' value='$valeur'>";
|
|
|
164 |
$param_emb .= " $nom='$valeur'";
|
|
|
165 |
if ($nom == "controls" AND $valeur == "PlayButton") {
|
|
|
166 |
$largeur = 40;
|
|
|
167 |
$hauteur = 25;
|
|
|
168 |
}
|
|
|
169 |
else if ($nom == "controls" AND $valeur == "PositionSlider") {
|
|
|
170 |
$largeur = $largeur - 40;
|
|
|
171 |
$hauteur = 25;
|
|
|
172 |
}
|
|
|
173 |
}
|
|
|
174 |
}
|
|
|
175 |
|
|
|
176 |
$vignette = "<object width='$largeur' height='$hauteur'>\n";
|
|
|
177 |
$vignette .= "<param name='movie' value='$fichier'>\n";
|
|
|
178 |
$vignette .= "<param name='src' value='$fichier'>\n";
|
|
|
179 |
$vignette .= $inserer_vignette;
|
|
|
180 |
|
|
|
181 |
$vignette .= "<embed src='$fichier' $param_emb width='$largeur' height='$hauteur'></embed></object>\n";
|
|
|
182 |
|
|
|
183 |
}
|
|
|
184 |
else if ($inclus == "embed" AND $real) {
|
|
|
185 |
$vignette .= "<div>".embed_document ($id_document, "controls=ImageWindow|type=audio/x-pn-realaudio-plugin|console=Console$id_document|nojava=true|$les_parametres", false)."</div>";
|
|
|
186 |
$vignette .= embed_document ($id_document, "controls=PlayButton|type=audio/x-pn-realaudio-plugin|console=Console$id_document|nojava=true|$les_parametres", false);
|
|
|
187 |
$vignette .= embed_document ($id_document, "controls=PositionSlider|type=audio/x-pn-realaudio-plugin|console=Console$id_document|nojava=true|$les_parametres", false);
|
|
|
188 |
}
|
|
|
189 |
else if ($inclus == "image") {
|
|
|
190 |
$fichier_vignette = $fichier;
|
|
|
191 |
$largeur_vignette = $largeur;
|
|
|
192 |
$hauteur_vignette = $hauteur;
|
|
|
193 |
if ($fichier_vignette) {
|
|
|
194 |
$vignette = "<img src='$fichier_vignette' style='border-width: 0px;'";
|
|
|
195 |
if ($largeur_vignette && $hauteur_vignette)
|
|
|
196 |
$vignette .= " width='$largeur_vignette' height='$hauteur_vignette'";
|
|
|
197 |
if ($titre) {
|
|
|
198 |
$titre_ko = ($taille > 0) ? ($titre . " - ". taille_en_octets($taille)) : $titre;
|
|
|
199 |
$titre_ko = supprimer_tags(propre($titre_ko));
|
|
|
200 |
$vignette .= " alt=\"$titre_ko\" title=\"$titre_ko\"";
|
|
|
201 |
}else{ $vignette .= " alt=\"\" title=\"\""; }
|
|
|
202 |
$vignette .= " />";
|
|
|
203 |
}
|
|
|
204 |
}
|
|
|
205 |
|
|
|
206 |
if (!$afficher_titre) return $vignette;
|
|
|
207 |
|
|
|
208 |
if ($largeur_vignette < 120) $largeur_vignette = 120;
|
|
|
209 |
$forcer_largeur = " width = '$largeur_vignette'";
|
|
|
210 |
|
|
|
211 |
if ($align != 'center') $float = " style='float: $align;'";
|
|
|
212 |
|
|
|
213 |
$retour .= "<div class='spip_documents spip_documents_$align'$float>\n";
|
|
|
214 |
$retour .= $vignette;
|
|
|
215 |
|
|
|
216 |
if ($titre) $retour .= "<div class='spip_doc_titre'><strong>$titre</strong></div>";
|
|
|
217 |
|
|
|
218 |
if ($descriptif) {
|
|
|
219 |
$retour .= "<div class='spip_doc_descriptif'>$descriptif</div>";
|
|
|
220 |
}
|
|
|
221 |
|
|
|
222 |
$retour .= "</div>\n";
|
|
|
223 |
|
|
|
224 |
return $retour;
|
|
|
225 |
}
|
|
|
226 |
|
|
|
227 |
|
|
|
228 |
//
|
|
|
229 |
// Integration des images et documents
|
|
|
230 |
//
|
|
|
231 |
|
|
|
232 |
function integre_image($id_document, $align, $type_aff) {
|
|
|
233 |
global $id_doublons;
|
|
|
234 |
|
|
|
235 |
$id_doublons['documents'] .= ",$id_document";
|
|
|
236 |
|
|
|
237 |
if (!($row = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = " . intval($id_document))))) return "";
|
|
|
238 |
$id_document = $row['id_document'];
|
|
|
239 |
$id_type = $row['id_type'];
|
|
|
240 |
$titre = typo($row['titre']);
|
|
|
241 |
$descriptif = propre($row['descriptif']);
|
|
|
242 |
$fichier = $row['fichier'];
|
|
|
243 |
$url_fichier = generer_url_document($id_document);
|
|
|
244 |
$largeur = $row['largeur'];
|
|
|
245 |
$hauteur = $row['hauteur'];
|
|
|
246 |
$taille = $row['taille'];
|
|
|
247 |
$mode = $row['mode'];
|
|
|
248 |
$id_vignette = $row['id_vignette'];
|
|
|
249 |
|
|
|
250 |
// on construira le lien en fonction du type de doc
|
|
|
251 |
if ($t = @spip_fetch_array(spip_query(
|
|
|
252 |
"SELECT titre,extension FROM spip_types_documents
|
|
|
253 |
WHERE id_type = $id_type"))) {
|
|
|
254 |
$extension = $t['extension']; # jpg, tex
|
|
|
255 |
$type = $t['titre']; # JPEG, LaTeX
|
|
|
256 |
}
|
|
|
257 |
|
|
|
258 |
// Attention ne pas confondre :
|
|
|
259 |
// pour un document affiche avec le raccourci <IMG> on a
|
|
|
260 |
// $mode == 'document' et $type_aff == 'IMG'
|
|
|
261 |
// inversement, pour une image presentee en mode 'DOC',
|
|
|
262 |
// $mode == 'vignette' et $type_aff == 'DOC'
|
|
|
263 |
|
|
|
264 |
// Type : vignette ou document ?
|
|
|
265 |
if ($mode == 'document') {
|
|
|
266 |
$vignette = document_et_vignette($row, $url_fichier);
|
|
|
267 |
} else {
|
|
|
268 |
$vignette = image_pattern($row);
|
|
|
269 |
}
|
|
|
270 |
|
|
|
271 |
//
|
|
|
272 |
// Regler le alt et title
|
|
|
273 |
//
|
|
|
274 |
$alt_titre_doc = entites_html(texte_backend(supprimer_tags($titre)));
|
|
|
275 |
$alt_infos_doc = entites_html($type
|
|
|
276 |
. (($taille>0) ? ' - '.texte_backend(taille_en_octets($taille)) : ''));
|
|
|
277 |
if ($row['distant'] == 'oui')
|
|
|
278 |
$alt_infos_doc .= ", ".$url_fichier;
|
|
|
279 |
if ($alt_titre_doc) $alt_sep = ', ';
|
|
|
280 |
|
|
|
281 |
// documents presentes en mode <DOC> : alt et title "JPEG, 54 ko"
|
|
|
282 |
// mais pas de titre puisqu'il est en dessous
|
|
|
283 |
if ($mode == 'document' AND $type_aff == 'DOC') {
|
|
|
284 |
$alt = " alt=\"$alt_infos_doc\" title=\"$alt_infos_doc\"";
|
|
|
285 |
}
|
|
|
286 |
// document en mode <IMG> : alt + title detailles
|
|
|
287 |
else if ($mode == 'document' AND $type_aff == 'IMG') {
|
|
|
288 |
$alt = " alt=\"$alt_titre_doc$alt_sep$alt_infos_doc\"
|
|
|
289 |
title=\"$alt_titre_doc$alt_sep$alt_infos_doc\"";
|
|
|
290 |
}
|
|
|
291 |
// vignette en mode <DOC> : alt disant "JPEG", pas de title
|
|
|
292 |
else if ($mode == 'vignette' AND $type_aff == 'DOC') {
|
|
|
293 |
$alt = " alt=\"($type)\"";
|
|
|
294 |
}
|
|
|
295 |
// vignette en mode <IMG> : alt + title s'il y a un titre
|
|
|
296 |
else if ($mode == 'vignette' AND $type_aff == 'IMG') {
|
|
|
297 |
if (strlen($titre))
|
|
|
298 |
$alt = " alt=\"$alt_titre_doc ($type)\" title=\"$alt_titre_doc\"";
|
|
|
299 |
else
|
|
|
300 |
$alt = " alt=\"($type)\"";
|
|
|
301 |
}
|
|
|
302 |
|
|
|
303 |
$vignette = str_replace(' />', "$alt />", $vignette); # inserer l'attribut
|
|
|
304 |
|
|
|
305 |
// Preparer le texte sous l'image pour les <DOC>
|
|
|
306 |
if ($type_aff == 'DOC') {
|
|
|
307 |
if (strlen($titre))
|
|
|
308 |
$txt = "\n<div class='spip_doc_titre'><strong>"
|
|
|
309 |
. $titre
|
|
|
310 |
. "</strong></div>\n";
|
|
|
311 |
if (strlen($descriptif))
|
|
|
312 |
$txt .= "<div class='spip_doc_descriptif'>$descriptif</div>\n";
|
|
|
313 |
}
|
|
|
314 |
|
|
|
315 |
// Passer un DIV pour les images centrees et, dans tous les cas, les <DOC>
|
|
|
316 |
if ($align == 'center' OR $type_aff =='DOC') {
|
|
|
317 |
$span = "div";
|
|
|
318 |
} else {
|
|
|
319 |
$span = "span";
|
|
|
320 |
}
|
|
|
321 |
|
|
|
322 |
if ($align != 'center') {
|
|
|
323 |
// Largeur de la div = celle de l'image ; mais s'il y a une legende
|
|
|
324 |
// mettre au moins 120px
|
|
|
325 |
$width = extraire_attribut($vignette, 'width');
|
|
|
326 |
if (strlen($txt) AND $width < 120) $width = 120;
|
|
|
327 |
$width = 'width: '.$width.'px;';
|
|
|
328 |
|
|
|
329 |
$style = " style='float: $align; $width'";
|
|
|
330 |
}
|
|
|
331 |
|
|
|
332 |
return
|
|
|
333 |
"<$span class='spip_documents spip_documents_$align' $style>"
|
|
|
334 |
. $vignette
|
|
|
335 |
. $txt
|
|
|
336 |
. "</$span>\n";
|
|
|
337 |
}
|
|
|
338 |
|
|
|
339 |
//
|
|
|
340 |
// Parcourt recursivement le repertoire upload/ (ou tout autre repertoire, d'ailleurs)
|
|
|
341 |
//
|
|
|
342 |
function fichiers_upload($dir) {
|
|
|
343 |
$fichiers = array();
|
|
|
344 |
$d = opendir($dir);
|
|
|
345 |
|
|
|
346 |
while ($f = readdir($d)) {
|
|
|
347 |
if (is_file("$dir/$f") AND is_readable("$dir/$f")
|
|
|
348 |
AND $f != 'remove.txt')
|
|
|
349 |
$fichiers[] = "$dir/$f";
|
|
|
350 |
else
|
|
|
351 |
if (is_dir("$dir/$f") AND is_readable("$dir/$f")
|
|
|
352 |
AND $f != '.' AND $f != '..')
|
|
|
353 |
$fichiers = array_merge($fichiers, fichiers_upload("$dir/$f"));
|
|
|
354 |
|
|
|
355 |
}
|
|
|
356 |
closedir($d);
|
|
|
357 |
|
|
|
358 |
sort($fichiers);
|
|
|
359 |
|
|
|
360 |
return $fichiers;
|
|
|
361 |
}
|
|
|
362 |
|
|
|
363 |
//
|
|
|
364 |
// Retourner le code HTML d'utilisation de fichiers uploades a la main
|
|
|
365 |
//
|
|
|
366 |
|
|
|
367 |
function texte_upload_manuel($dir, $inclus = '') {
|
|
|
368 |
$fichiers = fichiers_upload($dir);
|
|
|
369 |
$exts = array();
|
|
|
370 |
|
|
|
371 |
foreach ($fichiers as $f) {
|
|
|
372 |
$f = ereg_replace("^$dir/","",$f);
|
|
|
373 |
if (ereg("\.([^.]+)$", $f, $match)) {
|
|
|
374 |
$ext = strtolower($match[1]);
|
|
|
375 |
if (!$exts[$ext]) {
|
|
|
376 |
if ($ext == 'jpeg') $ext = 'jpg';
|
|
|
377 |
$req = "SELECT extension FROM spip_types_documents WHERE extension='$ext'";
|
|
|
378 |
if ($inclus) $req .= " AND inclus='$inclus'";
|
|
|
379 |
if (@spip_fetch_array(spip_query($req))) $exts[$ext] = 'oui';
|
|
|
380 |
else $exts[$ext] = 'non';
|
|
|
381 |
}
|
|
|
382 |
|
|
|
383 |
$ledossier = substr($f, 0, strrpos($f,"/"));
|
|
|
384 |
$lefichier = substr($f, strrpos($f, "/"), strlen($f));
|
|
|
385 |
|
|
|
386 |
if ($ledossier != $ledossier_prec) {
|
|
|
387 |
$texte_upload .= "\n<option value=\"$ledossier\" style='font-weight: bold;'>"
|
|
|
388 |
._T('tout_dossier_upload', array('upload' => $ledossier))
|
|
|
389 |
."</option>";
|
|
|
390 |
}
|
|
|
391 |
|
|
|
392 |
$ledossier_prec = $ledossier;
|
|
|
393 |
|
|
|
394 |
if ($exts[$ext] == 'oui') $texte_upload .= "\n<option value=\"$f\"> $lefichier</option>";
|
|
|
395 |
}
|
|
|
396 |
}
|
|
|
397 |
|
|
|
398 |
if ($texte_upload) {
|
|
|
399 |
$texte_upload = "\n<option value=\"/\" style='font-weight: bold;'>"
|
|
|
400 |
._T('info_installer_tous_documents')
|
|
|
401 |
."</option>" . $texte_upload;
|
|
|
402 |
}
|
|
|
403 |
|
|
|
404 |
return $texte_upload;
|
|
|
405 |
}
|
|
|
406 |
|
|
|
407 |
|
|
|
408 |
//
|
|
|
409 |
// Retourne le lien HTML vers l'image reduite (pour l'espace prive)
|
|
|
410 |
//
|
|
|
411 |
function prive_lien_image_reduite ($largeur_vignette, $hauteur_vignette, $fichier_vignette) {
|
|
|
412 |
global $connect_id_auteur;
|
|
|
413 |
include_ecrire("inc_logos.php3");
|
|
|
414 |
|
|
|
415 |
return reduire_image_logo('../'.$fichier_vignette, 120, 110);
|
|
|
416 |
}
|
|
|
417 |
|
|
|
418 |
// Bloc d'edition de la taille du doc (pour embed)
|
|
|
419 |
function afficher_formulaire_taille($document, $type_inclus='AUTO') {
|
|
|
420 |
|
|
|
421 |
// (on ne le propose pas pour les images qu'on sait
|
|
|
422 |
// lire, id_type<=3), sauf bug, ou document distant
|
|
|
423 |
if ($document['id_type'] <= 3
|
|
|
424 |
AND $document['hauteur']*$document['largeur']>0
|
|
|
425 |
AND $document['distant']!='oui')
|
|
|
426 |
return '';
|
|
|
427 |
|
|
|
428 |
// Si on n'a pas le type_inclus, on va le chercher dans spip_types_documents
|
|
|
429 |
if ($type_inclus == 'AUTO'
|
|
|
430 |
AND $r = spip_query("SELECT * FROM spip_types_documents
|
|
|
431 |
WHERE id_type=".$document['id_type'])
|
|
|
432 |
AND $type = @spip_fetch_array($r))
|
|
|
433 |
$type_inclus = $type['inclus'];
|
|
|
434 |
|
|
|
435 |
if (($type_inclus == "embed" #meme pour le MP3 : "l x h pixels"?
|
|
|
436 |
OR $type_inclus == "image")) {
|
|
|
437 |
echo "<br /><b>"._T('entree_dimensions')."</b><br />\n";
|
|
|
438 |
echo "<input type='text' name='largeur_document' class='fondl' style='font-size:9px;' value=\"".$document['largeur']."\" size='5'>";
|
|
|
439 |
echo " × <input type='text' name='hauteur_document' class='fondl' style='font-size:9px;' value=\"".$document['hauteur']."\" size='5'> "._T('info_pixels');
|
|
|
440 |
}
|
|
|
441 |
}
|
|
|
442 |
|
|
|
443 |
|
|
|
444 |
//
|
|
|
445 |
// Afficher un formulaire d'upload
|
|
|
446 |
//
|
|
|
447 |
|
|
|
448 |
function afficher_upload($link, $redirect='', $intitule, $inclus = '', $envoi_multiple = true, $forcer_document = false) {
|
|
|
449 |
global $clean_link, $connect_statut, $connect_toutes_rubriques, $options, $spip_lang_right;
|
|
|
450 |
static $num_form = 0; $num_form ++;
|
|
|
451 |
|
|
|
452 |
if (!$redirect)
|
|
|
453 |
$redirect = $clean_link->getUrl();
|
|
|
454 |
$link->addVar('redirect', $redirect);
|
|
|
455 |
|
|
|
456 |
if ($forcer_document)
|
|
|
457 |
$link->addVar('forcer_document', 'oui');
|
|
|
458 |
|
|
|
459 |
echo $link->getForm('POST', '', 'multipart/form-data');
|
|
|
460 |
echo "<div>";
|
|
|
461 |
|
|
|
462 |
// bouton permettant de telecharger 10 images ou docs a la fois
|
|
|
463 |
$envoi_multiple &= ($options == "avancees");
|
|
|
464 |
if ($envoi_multiple OR $forcer_document)
|
|
|
465 |
echo bouton_block_invisible("ftp$num_form");
|
|
|
466 |
|
|
|
467 |
if (tester_upload()) {
|
|
|
468 |
echo "$intitule</div>";
|
|
|
469 |
|
|
|
470 |
// un modele de selecteur de fichier
|
|
|
471 |
$upload = "<div><input name='fichier*' type='File' style='font-size: 10px;' class='forml' size='15'></div>";
|
|
|
472 |
|
|
|
473 |
// afficher le premier
|
|
|
474 |
echo str_replace('*', '1', $upload);
|
|
|
475 |
|
|
|
476 |
/* (TESTS POUR ENVOI MULTIPLE ; DESACTIVE)
|
|
|
477 |
// afficher les suivants, masques
|
|
|
478 |
if ($envoi_multiple) {
|
|
|
479 |
echo debut_block_invisible ("upload$num_form");
|
|
|
480 |
for ($i=2; $i<=10; $i++)
|
|
|
481 |
echo str_replace('*', "$i", $upload);
|
|
|
482 |
echo fin_block();
|
|
|
483 |
}
|
|
|
484 |
*/
|
|
|
485 |
|
|
|
486 |
echo "<div align='".$GLOBALS['spip_lang_right']."'><input name='ok_post' type='Submit' VALUE='"._T('bouton_telecharger')."' CLASS='fondo'></div>\n<div>";
|
|
|
487 |
}
|
|
|
488 |
|
|
|
489 |
echo debut_block_invisible("ftp$num_form");
|
|
|
490 |
|
|
|
491 |
if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques
|
|
|
492 |
AND $envoi_multiple) {
|
|
|
493 |
$texte_upload = texte_upload_manuel(_DIR_TRANSFERT, $inclus);
|
|
|
494 |
if ($texte_upload) {
|
|
|
495 |
echo "<p><div style='color: #505050;'>";
|
|
|
496 |
if ($forcer_document) echo '<input type="hidden" name="forcer_document" value="oui">';
|
|
|
497 |
echo "\n"._T('info_selectionner_fichier')." :<br />";
|
|
|
498 |
echo "\n<select name='image2' size='1' class='fondl'>";
|
|
|
499 |
echo $texte_upload;
|
|
|
500 |
echo "\n</select>";
|
|
|
501 |
echo "\n <div align='".$GLOBALS['spip_lang_right']."'><input name='ok_ftp' type='Submit' value='"._T('bouton_choisir')."' class='fondo'></div>";
|
|
|
502 |
|
|
|
503 |
echo "</div>\n";
|
|
|
504 |
}
|
|
|
505 |
else {
|
|
|
506 |
echo "<div style='border: 1px #303030 solid; padding: 4px; color: #505050;'>";
|
|
|
507 |
echo _T('info_installer_ftp').aide("ins_upload");
|
|
|
508 |
echo "</div>";
|
|
|
509 |
}
|
|
|
510 |
}
|
|
|
511 |
|
|
|
512 |
// Lien document distant, jamais en mode image
|
|
|
513 |
if ($forcer_document) {
|
|
|
514 |
echo "<p /><div style='border: 1px #303030 solid; padding: 4px; color: #505050;'>";
|
|
|
515 |
echo "<img src='"._DIR_IMG_PACK.'attachment.gif',
|
|
|
516 |
"' style='float: $spip_lang_right;' alt=\"\" />\n";
|
|
|
517 |
echo "\n"._T('info_referencer_doc_distant')."<br />";
|
|
|
518 |
echo "\n<input name='image_url' size='32' class='fondo' value='http://' />";
|
|
|
519 |
echo "\n <div align='".$GLOBALS['spip_lang_right']."'><input name='ok_url' type='Submit' value='"._T('bouton_choisir')."' class='fondo'></div>";
|
|
|
520 |
echo "</div>\n";
|
|
|
521 |
}
|
|
|
522 |
|
|
|
523 |
echo "</div>\n";
|
|
|
524 |
echo fin_block();
|
|
|
525 |
echo "</form>\n";
|
|
|
526 |
|
|
|
527 |
}
|
|
|
528 |
|
|
|
529 |
|
|
|
530 |
//
|
|
|
531 |
// Afficher les documents non inclus
|
|
|
532 |
// (page des articles)
|
|
|
533 |
|
|
|
534 |
function afficher_portfolio (
|
|
|
535 |
$documents = array(), # liste des documents, avec toutes les donnees
|
|
|
536 |
$id_article, # numero de l'article ou de la rubrique
|
|
|
537 |
$type = "article", # article ou rubrique ?
|
|
|
538 |
$album = 'portfolio', # album d'images ou de documents ?
|
|
|
539 |
$flag_modif = false, # a-t-on le droit de modifier ?
|
|
|
540 |
$image_url, # adresse du lien spip_image
|
|
|
541 |
$redirect_url, # adresse du retour apres spip-image
|
|
|
542 |
$couleur # couleur des cases du tableau
|
|
|
543 |
) {
|
|
|
544 |
global $connect_id_auteur, $connect_statut;
|
|
|
545 |
global $id_doublons, $options;
|
|
|
546 |
global $spip_lang_left, $spip_lang_right;
|
|
|
547 |
|
|
|
548 |
// la derniere case d'une rangee
|
|
|
549 |
$bord_droit = ($album == 'portfolio' ? 2 : 1);
|
|
|
550 |
|
|
|
551 |
foreach ($documents as $document) {
|
|
|
552 |
$id_document = $document['id_document'];
|
|
|
553 |
$id_vignette = $document['id_vignette'];
|
|
|
554 |
$id_type = $document['id_type'];
|
|
|
555 |
$titre = $document['titre'];
|
|
|
556 |
$descriptif = $document['descriptif'];
|
|
|
557 |
$url = generer_url_document($id_document);
|
|
|
558 |
$fichier = $document['fichier'];
|
|
|
559 |
$largeur = $document['largeur'];
|
|
|
560 |
$hauteur = $document['hauteur'];
|
|
|
561 |
$taille = $document['taille'];
|
|
|
562 |
$date = $document['date'];
|
|
|
563 |
$mode = $document['mode'];
|
|
|
564 |
|
|
|
565 |
$flag_deplie = teste_doc_deplie($id_document);
|
|
|
566 |
|
|
|
567 |
if ($case == 0) {
|
|
|
568 |
echo "<tr style='border-top: 1px solid black;'>";
|
|
|
569 |
}
|
|
|
570 |
|
|
|
571 |
$style = "border-$spip_lang_left: 1px solid $couleur; border-bottom: 1px solid $couleur;";
|
|
|
572 |
if ($case == $bord_droit) $style .= " border-$spip_lang_right: 1px solid $couleur;";
|
|
|
573 |
echo "<td width='33%' style='text-align: $spip_lang_left; $style' valign='top'>";
|
|
|
574 |
|
|
|
575 |
// Signaler les documents distants par une icone de trombone
|
|
|
576 |
if ($document['distant'] == 'oui') {
|
|
|
577 |
echo "<img src='"._DIR_IMG_PACK.'attachment.gif'."' style='float: $spip_lang_right;' alt=\"".entites_html($document['fichier'])."\" title=\"" .
|
|
|
578 |
entites_html($document['fichier'])."\" />\n";
|
|
|
579 |
}
|
|
|
580 |
|
|
|
581 |
// bloc vignette + rotation
|
|
|
582 |
echo "<div style='text-align:center;'>";
|
|
|
583 |
|
|
|
584 |
|
|
|
585 |
# 'extension', a ajouter dans la base quand on supprimera spip_types_documents
|
|
|
586 |
switch ($id_type) {
|
|
|
587 |
case 1:
|
|
|
588 |
$document['extension'] = "jpg";
|
|
|
589 |
break;
|
|
|
590 |
case 2:
|
|
|
591 |
$document['extension'] = "png";
|
|
|
592 |
break;
|
|
|
593 |
case 3:
|
|
|
594 |
$document['extension'] = "gif";
|
|
|
595 |
break;
|
|
|
596 |
}
|
|
|
597 |
|
|
|
598 |
// bloc rotation de l'image
|
|
|
599 |
// si c'est une image, qu'on sait la faire tourner, qu'elle
|
|
|
600 |
// n'est pas distante, et qu'elle n'a pas de vignette perso !
|
|
|
601 |
if ($flag_modif
|
|
|
602 |
AND strstr(lire_meta('formats_graphiques'), $document['extension'])
|
|
|
603 |
AND $document['distant']!='oui'
|
|
|
604 |
AND !$id_vignette) {
|
|
|
605 |
echo "<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>";
|
|
|
606 |
$process = lire_meta('image_process');
|
|
|
607 |
if ($process == 'imagick' OR $process == 'gd2'
|
|
|
608 |
OR $process == 'convert' OR $process == 'netpbm') {
|
|
|
609 |
// tourner a gauche
|
|
|
610 |
$link_rot = new Link ($image_url);
|
|
|
611 |
$link_rot->addVar('hash', calculer_action_auteur("rotate ".$id_document));
|
|
|
612 |
$link_rot->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
613 |
$link_rot->addVar('doc_rotate', $id_document);
|
|
|
614 |
$link_rot->addVar('var_rot', -90);
|
|
|
615 |
$link_rot->addVar('redirect',
|
|
|
616 |
$redirect_url.'&show_docs='.$id_document);
|
|
|
617 |
$link_rot->addVar('ancre', $album);
|
|
|
618 |
echo http_href_img($link_rot->getUrl(), 'tourner-gauche.gif', "style='border-width: 0px;'", _T('image_tourner_gauche'), '', 'bouton_rotation');
|
|
|
619 |
echo "<br />";
|
|
|
620 |
|
|
|
621 |
// tourner a droite
|
|
|
622 |
$link_rot = new Link ($image_url);;
|
|
|
623 |
$link_rot->addVar('hash', calculer_action_auteur("rotate ".$id_document));
|
|
|
624 |
$link_rot->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
625 |
$link_rot->addVar('doc_rotate', $id_document);
|
|
|
626 |
$link_rot->addVar('var_rot', 90);
|
|
|
627 |
$link_rot->addVar('redirect',
|
|
|
628 |
$redirect_url.'&show_docs='.$id_document);
|
|
|
629 |
$link_rot->addVar('ancre', $album);
|
|
|
630 |
echo http_href_img($link_rot->getUrl(),
|
|
|
631 |
'tourner-droite.gif', "style='border-width: 0px;'",
|
|
|
632 |
_T('image_tourner_droite'), '', 'bouton_rotation');
|
|
|
633 |
echo "<br />";
|
|
|
634 |
|
|
|
635 |
// tourner 180
|
|
|
636 |
$link_rot = new Link ($image_url);;
|
|
|
637 |
$link_rot->addVar('hash', calculer_action_auteur("rotate ".$id_document));
|
|
|
638 |
$link_rot->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
639 |
$link_rot->addVar('doc_rotate', $id_document);
|
|
|
640 |
$link_rot->addVar('var_rot', 180);
|
|
|
641 |
$link_rot->addVar('redirect',
|
|
|
642 |
$redirect_url.'&show_docs='.$id_document);
|
|
|
643 |
$link_rot->addVar('ancre', $album);
|
|
|
644 |
echo http_href_img($link_rot->getUrl(),
|
|
|
645 |
'tourner-180.gif', "style='border-width: 0px;'",
|
|
|
646 |
_T('image_tourner_180'), '', 'bouton_rotation');
|
|
|
647 |
}
|
|
|
648 |
echo "</div>\n";
|
|
|
649 |
} // fin bloc rotation
|
|
|
650 |
|
|
|
651 |
//
|
|
|
652 |
// Recuperer la vignette et afficher le doc
|
|
|
653 |
//
|
|
|
654 |
echo document_et_vignette($document, $url, true);
|
|
|
655 |
|
|
|
656 |
echo "</div>"; // fin du bloc vignette + rotation
|
|
|
657 |
|
|
|
658 |
|
|
|
659 |
// bloc titre et descriptif
|
|
|
660 |
if ($flag_modif) {
|
|
|
661 |
if ($flag_deplie)
|
|
|
662 |
$triangle = bouton_block_visible("port$id_document");
|
|
|
663 |
else
|
|
|
664 |
$triangle = bouton_block_invisible("port$id_document");
|
|
|
665 |
}
|
|
|
666 |
if (strlen($titre) > 0) {
|
|
|
667 |
echo "<div class='verdana2'><b>$triangle".typo($titre)."</b></div>";
|
|
|
668 |
} else {
|
|
|
669 |
$nom_fichier = basename($fichier);
|
|
|
670 |
|
|
|
671 |
if (strlen($nom_fichier) > 20) {
|
|
|
672 |
$nom_fichier = substr($nom_fichier, 0, 10)."...".substr($nom_fichier, strlen($nom_fichier)-10, strlen($nom_fichier));
|
|
|
673 |
}
|
|
|
674 |
echo "<div class='verdana1'>$triangle$nom_fichier</div>";
|
|
|
675 |
}
|
|
|
676 |
|
|
|
677 |
|
|
|
678 |
if (strlen($descriptif) > 0) {
|
|
|
679 |
echo "<div class='verdana1'>".propre($descriptif)."</div>";
|
|
|
680 |
}
|
|
|
681 |
|
|
|
682 |
// Taille de l'image ou poids du document
|
|
|
683 |
echo "<div class='verdana1' style='text-align: center;'>";
|
|
|
684 |
if ($largeur * $hauteur)
|
|
|
685 |
echo _T('info_largeur_vignette',
|
|
|
686 |
array('largeur_vignette' => $largeur,
|
|
|
687 |
'hauteur_vignette' => $hauteur));
|
|
|
688 |
else
|
|
|
689 |
echo taille_en_octets($taille);
|
|
|
690 |
echo "</div>";
|
|
|
691 |
|
|
|
692 |
|
|
|
693 |
if ($flag_modif) {
|
|
|
694 |
if ($flag_deplie)
|
|
|
695 |
echo debut_block_visible("port$id_document");
|
|
|
696 |
else
|
|
|
697 |
echo debut_block_invisible("port$id_document");
|
|
|
698 |
|
|
|
699 |
echo "<div class='verdana1' style='color: $couleur_foncee; border: 1px solid $couleur_foncee; padding: 5px; margin-top: 3px;'>";
|
|
|
700 |
$link = new Link($redirect_url);
|
|
|
701 |
$link->addVar('modif_document', 'oui');
|
|
|
702 |
$link->addVar('id_document', $id_document);
|
|
|
703 |
$link->addVar('show_docs', $id_document);
|
|
|
704 |
|
|
|
705 |
if ($document['id_article'])
|
|
|
706 |
$query = '?id_article='.$document['id_article'];
|
|
|
707 |
if ($document['id_rubrique'])
|
|
|
708 |
$query = '?id_rubrique='.$document['id_rubrique'];
|
|
|
709 |
|
|
|
710 |
echo $link->getForm('POST', "$query#$album");
|
|
|
711 |
echo "<b>"._T('titre_titre_document')."</b><br />\n";
|
|
|
712 |
echo "<input type='text' onFocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\" name='titre_document' class='formo' style='font-size:11px;' value=\"".entites_html($titre)."\" size='40'><br />\n";
|
|
|
713 |
|
|
|
714 |
// modifier la date (seulement dans les rubriques - et encore)
|
|
|
715 |
if ($type == 'rubrique'
|
|
|
716 |
AND $options == "avancees"
|
|
|
717 |
AND $connect_statut == '0minirezo') {
|
|
|
718 |
if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date, $regs)) {
|
|
|
719 |
$mois = $regs[2];
|
|
|
720 |
$jour = $regs[3];
|
|
|
721 |
$annee = $regs[1];
|
|
|
722 |
}
|
|
|
723 |
echo "<b>"._T('info_mise_en_ligne')."</b><br />\n",
|
|
|
724 |
afficher_jour($jour, "NAME='jour_doc' SIZE='1' CLASS='fondl' style='font-size:9px;'\n\tonChange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\""),
|
|
|
725 |
afficher_mois($mois, "NAME='mois_doc' SIZE='1' CLASS='fondl' style='font-size:9px;'\n\tonChange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\""),
|
|
|
726 |
afficher_annee($annee, "NAME='annee_doc' SIZE='1' CLASS='fondl' style='font-size:9px;'\n\tonChange=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block')\""),
|
|
|
727 |
"<br />\n";
|
|
|
728 |
}
|
|
|
729 |
|
|
|
730 |
// bloc descriptif (affiche ou hidden)
|
|
|
731 |
if ($options == "avancees") {
|
|
|
732 |
echo "<b>"._T('info_description')."</b><br />\n";
|
|
|
733 |
echo "<textarea name='descriptif_document' rows='4' class='forml' style='font-size:10px;' cols='*' wrap='soft' onFocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">";
|
|
|
734 |
echo entites_html($descriptif);
|
|
|
735 |
echo "</textarea>\n";
|
|
|
736 |
|
|
|
737 |
if ($options == "avancees")
|
|
|
738 |
afficher_formulaire_taille($document);
|
|
|
739 |
|
|
|
740 |
} else {
|
|
|
741 |
echo "<input type='hidden' name='descriptif_document' value=\"".entites_html($descriptif)."\" />\n";
|
|
|
742 |
}
|
|
|
743 |
|
|
|
744 |
echo "<div class='display_au_chargement' id='valider_doc$id_document' align='".$GLOBALS['spip_lang_right']."'>";
|
|
|
745 |
echo "<input TYPE='submit' class='fondo' NAME='Valider' VALUE='"._T('bouton_enregistrer')."'>";
|
|
|
746 |
echo "</div>";
|
|
|
747 |
echo "</form>";
|
|
|
748 |
|
|
|
749 |
|
|
|
750 |
// bloc mettre a jour la vignette
|
|
|
751 |
echo "<hr />";
|
|
|
752 |
bloc_gerer_vignette($document, $image_url, $redirect_url, $album);
|
|
|
753 |
|
|
|
754 |
echo "</div>";
|
|
|
755 |
|
|
|
756 |
// bouton "supprimer le doc"
|
|
|
757 |
$link_supp = new Link ($image_url);
|
|
|
758 |
$link_supp->addVar('redirect', $redirect_url);
|
|
|
759 |
$link_supp->addVar('hash',
|
|
|
760 |
calculer_action_auteur("supp_doc ".$id_document));
|
|
|
761 |
$link_supp->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
762 |
$link_supp->addVar('doc_supp', $id_document);
|
|
|
763 |
$link_supp->addVar('ancre', $album);
|
|
|
764 |
icone_horizontale(_T('icone_supprimer_document'),
|
|
|
765 |
$link_supp->getUrl(), "image-24.gif", "supprimer.gif");
|
|
|
766 |
|
|
|
767 |
} // fin block modifs
|
|
|
768 |
|
|
|
769 |
|
|
|
770 |
// fin bloc titre + descriptif
|
|
|
771 |
echo fin_block();
|
|
|
772 |
|
|
|
773 |
echo "</td>\n";
|
|
|
774 |
$case ++;
|
|
|
775 |
|
|
|
776 |
if ($case > $bord_droit) {
|
|
|
777 |
$case = 0;
|
|
|
778 |
echo "</tr>\n";
|
|
|
779 |
}
|
|
|
780 |
|
|
|
781 |
$id_doublons['documents'] .= ",$id_document";
|
|
|
782 |
}
|
|
|
783 |
|
|
|
784 |
// fermer la derniere ligne
|
|
|
785 |
if ($case > 0) {
|
|
|
786 |
echo "<td style='border-$spip_lang_left: 1px solid $couleur;'> </td>";
|
|
|
787 |
echo "</tr>";
|
|
|
788 |
}
|
|
|
789 |
|
|
|
790 |
}
|
|
|
791 |
|
|
|
792 |
|
|
|
793 |
function bloc_gerer_vignette($document, $image_url, $redirect_url, $album) {
|
|
|
794 |
global $connect_id_auteur;
|
|
|
795 |
|
|
|
796 |
$id_document = $document['id_document'];
|
|
|
797 |
$id_vignette = $document['id_vignette'];
|
|
|
798 |
|
|
|
799 |
echo bouton_block_invisible("gerer_vignette$id_document");
|
|
|
800 |
echo "<b>"._T('info_vignette_personnalisee')."</b>\n";
|
|
|
801 |
echo debut_block_invisible("gerer_vignette$id_document");
|
|
|
802 |
|
|
|
803 |
if ($id_vignette) {
|
|
|
804 |
$link = new Link ($image_url);
|
|
|
805 |
$link->addVar('redirect',
|
|
|
806 |
$redirect_url.'&show_docs='.$id_document);
|
|
|
807 |
$link->addVar('hash',
|
|
|
808 |
calculer_action_auteur("supp_doc ".$id_vignette));
|
|
|
809 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
810 |
$link->addVar('doc_supp', $id_vignette);
|
|
|
811 |
|
|
|
812 |
$link->addVar('ancre', $album);
|
|
|
813 |
|
|
|
814 |
icone_horizontale (_T('info_supprimer_vignette'),
|
|
|
815 |
$link->getUrl(), "vignette-24.png", "supprimer.gif");
|
|
|
816 |
}
|
|
|
817 |
else {
|
|
|
818 |
/****
|
|
|
819 |
OBSOLETE
|
|
|
820 |
// lien "creation automatique"
|
|
|
821 |
if (strstr(lire_meta('formats_graphiques'), $document['extension'])
|
|
|
822 |
AND lire_meta('creer_preview') == 'oui'
|
|
|
823 |
AND $document['distant'] != 'oui') {
|
|
|
824 |
$link = new Link($image_url);
|
|
|
825 |
$link->addvar('creer_vignette', 'oui');
|
|
|
826 |
$link->addVar('redirect',
|
|
|
827 |
$redirect_url.'&show_docs='.$id_document);
|
|
|
828 |
$link->addvar('vignette', $document['fichier']);
|
|
|
829 |
$link->addVar('hash',
|
|
|
830 |
calculer_action_auteur("vign ".$document['fichier']));
|
|
|
831 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
832 |
$link->addVar('id_document', $id_document);
|
|
|
833 |
$link->addVar('ancre', $album);
|
|
|
834 |
icone_horizontale(_T('info_creer_vignette'),
|
|
|
835 |
$link->getUrl(), "vignette-24.png", "creer.gif");
|
|
|
836 |
}
|
|
|
837 |
*****/
|
|
|
838 |
|
|
|
839 |
// lien "upload vignette"
|
|
|
840 |
$link = new Link ($image_url);
|
|
|
841 |
$link->addVar('hash', calculer_action_auteur("ajout_doc"));
|
|
|
842 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
843 |
$link->addVar('ajout_doc', 'oui');
|
|
|
844 |
$link->addVar('id_document', $id_document);
|
|
|
845 |
$link->addVar('mode', 'vignette');
|
|
|
846 |
$link->addVar('ancre', $album);
|
|
|
847 |
afficher_upload($link,
|
|
|
848 |
$redirect_url.'&show_docs='.$id_document,
|
|
|
849 |
/* _T('info_remplacer_vignette') */'', 'portfolio', false);
|
|
|
850 |
}
|
|
|
851 |
echo fin_block();
|
|
|
852 |
}
|
|
|
853 |
|
|
|
854 |
function afficher_documents_non_inclus($id_article, $type = "article", $flag_modif) {
|
|
|
855 |
global $couleur_foncee, $couleur_claire;
|
|
|
856 |
global $connect_id_auteur, $connect_statut;
|
|
|
857 |
global $id_doublons, $options;
|
|
|
858 |
global $spip_lang_left, $spip_lang_right;
|
|
|
859 |
|
|
|
860 |
$image_url = '../spip_image.php3?';
|
|
|
861 |
if ($id_article)
|
|
|
862 |
$image_url .= 'id_article='.$id_article;
|
|
|
863 |
else if ($id_rubrique)
|
|
|
864 |
$image_url .= 'id_article='.$id_rubrique;
|
|
|
865 |
|
|
|
866 |
$redirect_url = new Link();
|
|
|
867 |
if ($type == "rubrique")
|
|
|
868 |
$redirect_url->addVar('modifier_rubrique', 'oui');
|
|
|
869 |
$redirect_url = $redirect_url->getUrl();
|
|
|
870 |
|
|
|
871 |
// Afficher portfolio
|
|
|
872 |
/////////
|
|
|
873 |
|
|
|
874 |
$query = "SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes ".
|
|
|
875 |
"WHERE l.id_$type=$id_article AND l.id_document=docs.id_document ".
|
|
|
876 |
"AND docs.mode='document'".
|
|
|
877 |
" AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png')";
|
|
|
878 |
|
|
|
879 |
if ($id_doublons['documents']) $query .= " AND docs.id_document NOT IN (0".$id_doublons['documents'].") ";
|
|
|
880 |
$query .= " ORDER BY docs.id_document";
|
|
|
881 |
|
|
|
882 |
//
|
|
|
883 |
// recuperer tout le tableau des images du portfolio
|
|
|
884 |
//
|
|
|
885 |
$images_liees = spip_query($query);
|
|
|
886 |
$documents = array();
|
|
|
887 |
while ($document = spip_fetch_array($images_liees))
|
|
|
888 |
$documents[] = $document;
|
|
|
889 |
|
|
|
890 |
if (count($documents)) {
|
|
|
891 |
echo "<a name='portfolio'></a>";
|
|
|
892 |
echo "<div> </div>";
|
|
|
893 |
echo "<div style='background-color: $couleur_claire; padding: 4px; color: black; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;' class='verdana2'><b>".majuscules(_T('info_portfolio'))."</b></div>";
|
|
|
894 |
echo "<table width='100%' cellspacing='0' cellpadding='3'>";
|
|
|
895 |
|
|
|
896 |
afficher_portfolio ($documents, $id_article, $type, 'portfolio', $flag_modif, $image_url, $redirect_url, $couleur_claire);
|
|
|
897 |
|
|
|
898 |
echo "</table>\n";
|
|
|
899 |
}
|
|
|
900 |
|
|
|
901 |
|
|
|
902 |
|
|
|
903 |
//// Documents associes
|
|
|
904 |
$query = "SELECT * FROM spip_documents AS docs, spip_documents_".$type."s AS l ".
|
|
|
905 |
"WHERE l.id_$type=$id_article AND l.id_document=docs.id_document ".
|
|
|
906 |
"AND docs.mode='document'";
|
|
|
907 |
|
|
|
908 |
if ($id_doublons['documents']) $query .= " AND docs.id_document NOT IN (0".$id_doublons['documents'].") ";
|
|
|
909 |
$query .= " ORDER BY docs.id_document";
|
|
|
910 |
|
|
|
911 |
$documents_lies = spip_query($query);
|
|
|
912 |
|
|
|
913 |
$documents = array();
|
|
|
914 |
while ($document = spip_fetch_array($documents_lies))
|
|
|
915 |
$documents[] = $document;
|
|
|
916 |
|
|
|
917 |
if (count($documents)) {
|
|
|
918 |
echo "<a id='documents'></a>";
|
|
|
919 |
echo "<div> </div>";
|
|
|
920 |
echo "<div style='background-color: #aaaaaa; padding: 4px; color: black; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;' class='verdana2'><b>". majuscules(_T('info_documents')) ."</b></div>";
|
|
|
921 |
echo "<table width='100%' cellspacing='0' cellpadding='5'>";
|
|
|
922 |
|
|
|
923 |
afficher_portfolio ($documents, $id_article, $type, 'documents', $flag_modif, $image_url, $redirect_url, '#aaaaaa');
|
|
|
924 |
|
|
|
925 |
echo "</table>";
|
|
|
926 |
}
|
|
|
927 |
|
|
|
928 |
|
|
|
929 |
if (lire_meta("documents_$type") != 'non' AND $flag_modif) {
|
|
|
930 |
/// Ajouter nouveau document/image
|
|
|
931 |
|
|
|
932 |
echo "<p> </p>";
|
|
|
933 |
|
|
|
934 |
echo "<div align='right'>";
|
|
|
935 |
echo "<table width='50%' cellpadding=0 cellspacing=0 border=0><tr><td style='text-align: $spip_lang_left;'>";
|
|
|
936 |
|
|
|
937 |
echo debut_cadre_relief("image-24.gif", false, "", _T('titre_joindre_document'));
|
|
|
938 |
|
|
|
939 |
$link = new Link ($image_url);
|
|
|
940 |
$link->addVar('hash', calculer_action_auteur("ajout_doc"));
|
|
|
941 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
942 |
$link->addVar('ajout_doc', 'oui');
|
|
|
943 |
$link->addVar('type', $type);
|
|
|
944 |
|
|
|
945 |
afficher_upload($link, $redirect_url, _T('info_telecharger_ordinateur'), '', true, true);
|
|
|
946 |
|
|
|
947 |
echo fin_cadre_relief();
|
|
|
948 |
|
|
|
949 |
|
|
|
950 |
echo "</td></tr></table>";
|
|
|
951 |
echo "</div>";
|
|
|
952 |
}
|
|
|
953 |
|
|
|
954 |
}
|
|
|
955 |
|
|
|
956 |
|
|
|
957 |
//
|
|
|
958 |
// Afficher un document dans la colonne de gauche
|
|
|
959 |
// (edition des articles)
|
|
|
960 |
|
|
|
961 |
function afficher_documents_colonne($id_article, $type="article", $flag_modif = true) {
|
|
|
962 |
global $connect_id_auteur, $connect_statut;
|
|
|
963 |
global $couleur_foncee, $couleur_claire, $options;
|
|
|
964 |
global $clean_link;
|
|
|
965 |
|
|
|
966 |
$image_url = '../spip_image.php3';
|
|
|
967 |
if ($id_article) $image_url .= '?id_article='.$id_article;
|
|
|
968 |
|
|
|
969 |
$id_doc_actif = $id_document;
|
|
|
970 |
|
|
|
971 |
# HACK!!! simule une mise en page pour affecter la globale id_doublons
|
|
|
972 |
# referencee dans afficher_case_document appelee plus loin :
|
|
|
973 |
# utile pour un affichage differencie des image "libres" et des images
|
|
|
974 |
# integrees via <imgXX|left> dans le texte
|
|
|
975 |
propre($GLOBALS['descriptif']." ".$GLOBALS['texte']." ".$GLOBALS['chapo']);
|
|
|
976 |
|
|
|
977 |
/// Ajouter nouvelle image
|
|
|
978 |
echo "<a id='images'></a>\n";
|
|
|
979 |
$titre_cadre = _T('bouton_ajouter_image').aide("ins_img");
|
|
|
980 |
debut_cadre_relief("image-24.gif", false, "creer.gif", $titre_cadre);
|
|
|
981 |
|
|
|
982 |
$link = new Link ($image_url);
|
|
|
983 |
$link->addVar('hash', calculer_action_auteur("ajout_doc"));
|
|
|
984 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
985 |
$link->addVar('ajout_doc', 'oui');
|
|
|
986 |
$link->addVar('mode', 'vignette');
|
|
|
987 |
$link->addVar('type', $type);
|
|
|
988 |
afficher_upload($link, $redirect_url, _T('info_telecharger'));
|
|
|
989 |
|
|
|
990 |
fin_cadre_relief();
|
|
|
991 |
|
|
|
992 |
|
|
|
993 |
//// Documents associes
|
|
|
994 |
$query = "SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l ".
|
|
|
995 |
"WHERE l.id_".$type."=$id_article AND l.id_document=docs.id_document ".
|
|
|
996 |
"AND docs.mode='document' ORDER BY docs.id_document";
|
|
|
997 |
|
|
|
998 |
$res = spip_query($query);
|
|
|
999 |
$documents_lies = array();
|
|
|
1000 |
while ($row = spip_fetch_array($res))
|
|
|
1001 |
$documents_lies[]= $row['id_document'];
|
|
|
1002 |
|
|
|
1003 |
if (count($documents_lies)) {
|
|
|
1004 |
$res = spip_query("SELECT DISTINCT id_vignette FROM spip_documents ".
|
|
|
1005 |
"WHERE id_document in (".join(',', $documents_lies).")");
|
|
|
1006 |
while ($v = spip_fetch_array($res))
|
|
|
1007 |
$vignettes[]= $v['id_vignette'];
|
|
|
1008 |
$docs_exclus = ereg_replace('^,','',join(',', $vignettes).','.join(',', $documents_lies));
|
|
|
1009 |
|
|
|
1010 |
if ($docs_exclus)
|
|
|
1011 |
$docs_exclus = "AND l.id_document NOT IN ($docs_exclus) ";
|
|
|
1012 |
}
|
|
|
1013 |
|
|
|
1014 |
//// Images sans documents
|
|
|
1015 |
$query = "SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l ".
|
|
|
1016 |
"WHERE l.id_".$type."=$id_article AND l.id_document=docs.id_document ".$docs_exclus.
|
|
|
1017 |
"AND docs.mode='vignette' ORDER BY docs.id_document";
|
|
|
1018 |
|
|
|
1019 |
$images_liees = spip_query($query);
|
|
|
1020 |
|
|
|
1021 |
echo "\n<p />";
|
|
|
1022 |
while ($document = spip_fetch_array($images_liees)) {
|
|
|
1023 |
$id_document = $document['id_document'];
|
|
|
1024 |
afficher_case_document($id_document, $image_url, $redirect_url, $id_doc_actif == $id_document);
|
|
|
1025 |
}
|
|
|
1026 |
|
|
|
1027 |
|
|
|
1028 |
/// Ajouter nouveau document
|
|
|
1029 |
echo "<p> </p>\n";
|
|
|
1030 |
echo "<a name='documents'></a>\n";
|
|
|
1031 |
echo "<a name='portfolio'></a>\n";
|
|
|
1032 |
if ($type == "article" AND lire_meta("documents_$type") != 'non') {
|
|
|
1033 |
$titre_cadre = _T('bouton_ajouter_document').aide("ins_doc");
|
|
|
1034 |
|
|
|
1035 |
debut_cadre_enfonce("doc-24.gif", false, "creer.gif", $titre_cadre);
|
|
|
1036 |
$link = new Link ($image_url);
|
|
|
1037 |
$link->addVar('hash', calculer_action_auteur("ajout_doc"));
|
|
|
1038 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
1039 |
$link->addVar('ajout_doc', 'oui');
|
|
|
1040 |
$link->addVar('mode', 'document');
|
|
|
1041 |
$link->addVar('type', $type);
|
|
|
1042 |
afficher_upload($link, $redirect_url,
|
|
|
1043 |
_T('info_telecharger_ordinateur'));
|
|
|
1044 |
fin_cadre_enfonce();
|
|
|
1045 |
}
|
|
|
1046 |
|
|
|
1047 |
// Afficher les documents lies
|
|
|
1048 |
echo "<p />\n";
|
|
|
1049 |
if ($type == "article") {
|
|
|
1050 |
if ($documents_lies) {
|
|
|
1051 |
reset($documents_lies);
|
|
|
1052 |
while (list(, $id_document) = each($documents_lies)) {
|
|
|
1053 |
afficher_case_document($id_document, $image_url, $redirect_url, $id_doc_actif == $id_document);
|
|
|
1054 |
}
|
|
|
1055 |
}
|
|
|
1056 |
}
|
|
|
1057 |
}
|
|
|
1058 |
|
|
|
1059 |
//
|
|
|
1060 |
// Affiche le raccourci <doc123|left>
|
|
|
1061 |
// et l'insere quand on le clique
|
|
|
1062 |
//
|
|
|
1063 |
function affiche_raccourci_doc($doc, $id, $align) {
|
|
|
1064 |
if ($align) {
|
|
|
1065 |
$pipe = "|$align";
|
|
|
1066 |
|
|
|
1067 |
if ($GLOBALS['browser_barre'])
|
|
|
1068 |
$onclick = " ondblclick='barre_inserer(\"<$doc$id$pipe>\", document.formulaire.texte);' title=\"". entites_html(_T('double_clic_inserer_doc'))."\"";
|
|
|
1069 |
} else {
|
|
|
1070 |
$align='center';
|
|
|
1071 |
}
|
|
|
1072 |
return "<div align='$align'$onclick><$doc$id$pipe></div>\n";
|
|
|
1073 |
}
|
|
|
1074 |
|
|
|
1075 |
//
|
|
|
1076 |
// Afficher un document sous forme de ligne depliable
|
|
|
1077 |
//
|
|
|
1078 |
|
|
|
1079 |
function afficher_case_document($id_document, $image_url, $redirect_url = "", $deplier = false) {
|
|
|
1080 |
global $connect_id_auteur, $connect_statut;
|
|
|
1081 |
global $couleur_foncee, $couleur_claire;
|
|
|
1082 |
global $clean_link;
|
|
|
1083 |
global $options;
|
|
|
1084 |
global $id_doublons;
|
|
|
1085 |
global $spip_lang_left, $spip_lang_right;
|
|
|
1086 |
|
|
|
1087 |
|
|
|
1088 |
$flag_deplie = teste_doc_deplie($id_document);
|
|
|
1089 |
|
|
|
1090 |
$doublons = $id_doublons['documents'].",";
|
|
|
1091 |
|
|
|
1092 |
if (!$redirect_url) $redirect_url = $clean_link->getUrl();
|
|
|
1093 |
|
|
|
1094 |
$document = spip_fetch_array(spip_query("SELECT * FROM spip_documents WHERE id_document = " . intval($id_document)));
|
|
|
1095 |
|
|
|
1096 |
$id_vignette = $document['id_vignette'];
|
|
|
1097 |
$id_type = $document['id_type'];
|
|
|
1098 |
$titre = $document['titre'];
|
|
|
1099 |
$descriptif = $document['descriptif'];
|
|
|
1100 |
$url = generer_url_document($id_document);
|
|
|
1101 |
$fichier = $document['fichier'];
|
|
|
1102 |
$largeur = $document['largeur'];
|
|
|
1103 |
$hauteur = $document['hauteur'];
|
|
|
1104 |
$taille = $document['taille'];
|
|
|
1105 |
$mode = $document['mode'];
|
|
|
1106 |
if (!$titre) {
|
|
|
1107 |
$titre_fichier = _T('info_sans_titre_2');
|
|
|
1108 |
$titre_fichier .= " <small>(".ereg_replace("^[^\/]*\/[^\/]*\/","",$fichier).")</small>";
|
|
|
1109 |
}
|
|
|
1110 |
|
|
|
1111 |
$result = spip_query("SELECT * FROM spip_types_documents WHERE id_type=$id_type");
|
|
|
1112 |
if ($type = @spip_fetch_array($result)) {
|
|
|
1113 |
$type_extension = $type['extension'];
|
|
|
1114 |
$type_inclus = $type['inclus'];
|
|
|
1115 |
$type_titre = $type['titre'];
|
|
|
1116 |
}
|
|
|
1117 |
|
|
|
1118 |
//
|
|
|
1119 |
// Afficher un document
|
|
|
1120 |
//
|
|
|
1121 |
|
|
|
1122 |
if ($mode == 'document') {
|
|
|
1123 |
$titre_cadre = lignes_longues(typo($titre).typo($titre_fichier), 30);
|
|
|
1124 |
debut_cadre_enfonce("doc-24.gif", false, "", $titre_cadre);
|
|
|
1125 |
|
|
|
1126 |
echo "<div style='float: $spip_lang_left;'>";
|
|
|
1127 |
$block = "document $id_document";
|
|
|
1128 |
if ($flag_deplie) echo bouton_block_visible($block);
|
|
|
1129 |
else echo bouton_block_invisible($block);
|
|
|
1130 |
echo "</div>";
|
|
|
1131 |
|
|
|
1132 |
|
|
|
1133 |
//
|
|
|
1134 |
// Affichage de la vignette
|
|
|
1135 |
//
|
|
|
1136 |
echo "<div align='center'>\n";
|
|
|
1137 |
echo document_et_vignette($document, $url, true);
|
|
|
1138 |
echo "</div>\n";
|
|
|
1139 |
|
|
|
1140 |
|
|
|
1141 |
// Affichage du raccourci <doc...> correspondant
|
|
|
1142 |
if (!ereg(",$id_document,", $doublons)) {
|
|
|
1143 |
echo "<div style='padding:2px;'><font size='1' face='arial,helvetica,sans-serif'>";
|
|
|
1144 |
if ($options == "avancees" AND ($type_inclus == "embed" OR $type_inclus == "image") AND $largeur > 0 AND $hauteur > 0) {
|
|
|
1145 |
echo "<b>"._T('info_inclusion_vignette')."</b><br />";
|
|
|
1146 |
}
|
|
|
1147 |
echo "<font color='333333'>"
|
|
|
1148 |
. affiche_raccourci_doc('doc', $id_document, 'left')
|
|
|
1149 |
. affiche_raccourci_doc('doc', $id_document, 'center')
|
|
|
1150 |
. affiche_raccourci_doc('doc', $id_document, 'right')
|
|
|
1151 |
. "</font>\n";
|
|
|
1152 |
echo "</font></div>";
|
|
|
1153 |
|
|
|
1154 |
if ($options == "avancees" AND ($type_inclus == "embed" OR $type_inclus == "image") AND $largeur > 0 AND $hauteur > 0) {
|
|
|
1155 |
echo "<div style='padding:2px;'><font size='1' face='arial,helvetica,sans-serif'>";
|
|
|
1156 |
echo "<b>"._T('info_inclusion_directe')."</b></br>";
|
|
|
1157 |
echo "<font color='333333'>"
|
|
|
1158 |
. affiche_raccourci_doc('emb', $id_document, 'left')
|
|
|
1159 |
. affiche_raccourci_doc('emb', $id_document, 'center')
|
|
|
1160 |
. affiche_raccourci_doc('emb', $id_document, 'right')
|
|
|
1161 |
. "</font>\n";
|
|
|
1162 |
echo "</font></div>";
|
|
|
1163 |
}
|
|
|
1164 |
}
|
|
|
1165 |
|
|
|
1166 |
//
|
|
|
1167 |
// Edition des champs
|
|
|
1168 |
//
|
|
|
1169 |
|
|
|
1170 |
if ($flag_deplie)
|
|
|
1171 |
echo debut_block_visible($block);
|
|
|
1172 |
else
|
|
|
1173 |
echo debut_block_invisible($block);
|
|
|
1174 |
|
|
|
1175 |
if (ereg(",$id_document,", $doublons)) {
|
|
|
1176 |
echo "<div style='padding:2px;'><font size='1' face='arial,helvetica,sans-serif'>";
|
|
|
1177 |
echo affiche_raccourci_doc('doc', $id_document, '');
|
|
|
1178 |
echo "</font></div>";
|
|
|
1179 |
}
|
|
|
1180 |
|
|
|
1181 |
echo "<div class='verdana1' style='color: $couleur_foncee; border: 1px solid $couleur_foncee; padding: 5px; margin-top: 3px; text-align: left; background-color: white;'>";
|
|
|
1182 |
if (strlen($descriptif) > 0) echo propre($descriptif)."<br />";
|
|
|
1183 |
|
|
|
1184 |
|
|
|
1185 |
if ($options == "avancees") {
|
|
|
1186 |
echo "<div style='color: black;'>";
|
|
|
1187 |
if ($type_titre){
|
|
|
1188 |
echo "$type_titre";
|
|
|
1189 |
} else {
|
|
|
1190 |
echo _T('info_document').' '.majuscules($type_extension);
|
|
|
1191 |
}
|
|
|
1192 |
|
|
|
1193 |
if ($largeur * $hauteur)
|
|
|
1194 |
echo ", "._T('info_largeur_vignette',
|
|
|
1195 |
array('largeur_vignette' => $largeur,
|
|
|
1196 |
'hauteur_vignette' => $hauteur));
|
|
|
1197 |
|
|
|
1198 |
echo ', '.taille_en_octets($taille);
|
|
|
1199 |
echo "</div>";
|
|
|
1200 |
}
|
|
|
1201 |
|
|
|
1202 |
$link = new Link($redirect_url);
|
|
|
1203 |
$link->addVar('modif_document', 'oui');
|
|
|
1204 |
$link->addVar('id_document', $id_document);
|
|
|
1205 |
$link->addVar('show_docs', $id_document);
|
|
|
1206 |
echo $link->getForm('POST');
|
|
|
1207 |
|
|
|
1208 |
echo "<b>"._T('entree_titre_document')."</b><br />\n";
|
|
|
1209 |
echo "<input type='text' name='titre_document' class='formo' value=\"".entites_html($titre)."\" size='40'><br />\n";
|
|
|
1210 |
|
|
|
1211 |
if ($descriptif OR $options == "avancees") {
|
|
|
1212 |
echo "<b>"._T('info_description_2')."</b><br />\n";
|
|
|
1213 |
echo "<textarea name='descriptif_document' rows='4' class='formo' cols='*' wrap='soft'>";
|
|
|
1214 |
echo entites_html($descriptif);
|
|
|
1215 |
echo "</textarea>\n";
|
|
|
1216 |
}
|
|
|
1217 |
|
|
|
1218 |
if ($options == "avancees")
|
|
|
1219 |
afficher_formulaire_taille($document, $type_inclus);
|
|
|
1220 |
|
|
|
1221 |
echo "<div align='".$GLOBALS['spip_lang_right']."'>";
|
|
|
1222 |
echo "<input TYPE='submit' class='fondo' style='font-size:9px;' NAME='Valider' VALUE='"._T('bouton_enregistrer')."'>";
|
|
|
1223 |
echo "</div>";
|
|
|
1224 |
echo "</form>";
|
|
|
1225 |
|
|
|
1226 |
$link_supp = new Link ($image_url);
|
|
|
1227 |
$link_supp->addVar('redirect', $redirect_url);
|
|
|
1228 |
$link_supp->addVar('hash', calculer_action_auteur("supp_doc ".$id_document));
|
|
|
1229 |
$link_supp->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
1230 |
$link_supp->addVar('doc_supp', $id_document);
|
|
|
1231 |
$link_supp->addVar('ancre', 'documents');
|
|
|
1232 |
|
|
|
1233 |
echo "</div>";
|
|
|
1234 |
echo fin_block();
|
|
|
1235 |
// Fin edition des champs
|
|
|
1236 |
|
|
|
1237 |
echo "<p /><div align='center'>";
|
|
|
1238 |
icone_horizontale(_T('icone_supprimer_document'), $link_supp->getUrl(), "doc-24.gif", "supprimer.gif");
|
|
|
1239 |
echo "</div>";
|
|
|
1240 |
|
|
|
1241 |
|
|
|
1242 |
// Bloc edition de la vignette
|
|
|
1243 |
if ($options == 'avancees') {
|
|
|
1244 |
echo "<div class='verdana1' style='color: $couleur_foncee; border: 1px solid $couleur_foncee; padding: 5px; margin-top: 3px;'>";
|
|
|
1245 |
# 'extension', a ajouter dans la base quand on supprimera spip_types_documents
|
|
|
1246 |
switch ($id_type) {
|
|
|
1247 |
case 1:
|
|
|
1248 |
$document['extension'] = "jpg";
|
|
|
1249 |
break;
|
|
|
1250 |
case 2:
|
|
|
1251 |
$document['extension'] = "png";
|
|
|
1252 |
break;
|
|
|
1253 |
case 3:
|
|
|
1254 |
$document['extension'] = "gif";
|
|
|
1255 |
break;
|
|
|
1256 |
}
|
|
|
1257 |
bloc_gerer_vignette($document, $image_url, $redirect_url, 'documents');
|
|
|
1258 |
echo "</div>\n";
|
|
|
1259 |
}
|
|
|
1260 |
|
|
|
1261 |
fin_cadre_enfonce();
|
|
|
1262 |
}
|
|
|
1263 |
|
|
|
1264 |
//
|
|
|
1265 |
// Afficher une image inserable dans l'article
|
|
|
1266 |
//
|
|
|
1267 |
else if ($mode == 'vignette') {
|
|
|
1268 |
$block = "image $id_document";
|
|
|
1269 |
$titre_cadre = lignes_longues(typo($titre).typo($titre_fichier), 30);
|
|
|
1270 |
|
|
|
1271 |
debut_cadre_relief("image-24.gif", false, "", $titre_cadre);
|
|
|
1272 |
|
|
|
1273 |
echo "<div style='float: $spip_lang_left;'>";
|
|
|
1274 |
if ($flag_deplie) echo bouton_block_visible($block);
|
|
|
1275 |
else echo bouton_block_invisible($block);
|
|
|
1276 |
echo "</div>";
|
|
|
1277 |
|
|
|
1278 |
|
|
|
1279 |
//
|
|
|
1280 |
// Preparer le raccourci a afficher sous la vignette ou sous l'apercu
|
|
|
1281 |
//
|
|
|
1282 |
$raccourci_doc = "<div style='padding:2px;'>
|
|
|
1283 |
<font size='1' face='arial,helvetica,sans-serif'>";
|
|
|
1284 |
if (strlen($descriptif) > 0 OR strlen($titre) > 0)
|
|
|
1285 |
$doc = 'doc';
|
|
|
1286 |
else
|
|
|
1287 |
$doc = 'img';
|
|
|
1288 |
if (!ereg(",$id_document,", $doublons)) {
|
|
|
1289 |
$raccourci_doc .=
|
|
|
1290 |
affiche_raccourci_doc($doc, $id_document, 'left')
|
|
|
1291 |
. affiche_raccourci_doc($doc, $id_document, 'center')
|
|
|
1292 |
. affiche_raccourci_doc($doc, $id_document, 'right');
|
|
|
1293 |
} else {
|
|
|
1294 |
$raccourci_doc .= affiche_raccourci_doc($doc, $id_document, '');;
|
|
|
1295 |
}
|
|
|
1296 |
$raccourci_doc .= "</font></div>\n";
|
|
|
1297 |
|
|
|
1298 |
//
|
|
|
1299 |
// Afficher un apercu (pour les images)
|
|
|
1300 |
//
|
|
|
1301 |
if ($type_inclus == 'image') {
|
|
|
1302 |
echo "<div style='text-align: center; padding: 2px;'>\n";
|
|
|
1303 |
echo document_et_vignette($document, $url, true);
|
|
|
1304 |
echo "</div>\n";
|
|
|
1305 |
if (strlen($descriptif)>0)
|
|
|
1306 |
echo "<font face='Verdana,Arial,Sans,sans-serif' size='2'>"
|
|
|
1307 |
. propre($descriptif)
|
|
|
1308 |
. "</font>";
|
|
|
1309 |
|
|
|
1310 |
if (!ereg(",$id_document,", $doublons))
|
|
|
1311 |
echo $raccourci_doc;
|
|
|
1312 |
}
|
|
|
1313 |
|
|
|
1314 |
if ($flag_deplie) echo debut_block_visible($block);
|
|
|
1315 |
else echo debut_block_invisible($block);
|
|
|
1316 |
|
|
|
1317 |
if (ereg(",$id_document,", $doublons))
|
|
|
1318 |
echo $raccourci_doc;
|
|
|
1319 |
|
|
|
1320 |
echo "\n<div class='verdana1' align='center'>",
|
|
|
1321 |
_T('info_largeur_vignette', array('largeur_vignette' => $largeur, 'hauteur_vignette' => $hauteur)),
|
|
|
1322 |
"</div>\n";
|
|
|
1323 |
|
|
|
1324 |
$link = new Link($redirect_url);
|
|
|
1325 |
$link->addVar('modif_document', 'oui');
|
|
|
1326 |
$link->addVar('id_document', $id_document);
|
|
|
1327 |
$link->addVar('show_docs', $id_document);
|
|
|
1328 |
echo $link->getForm('POST');
|
|
|
1329 |
|
|
|
1330 |
echo "<div class='verdana1' style='color: #999999; border: 1px solid #999999; padding: 5px; margin-top: 3px; text-align: left; background-color: #eeeeee;'>";
|
|
|
1331 |
echo "<b>"._T('entree_titre_image')."</b><br />\n";
|
|
|
1332 |
echo "<input type='text' name='titre_document' class='formo' value=\"".entites_html($titre)."\" size='40'><br />";
|
|
|
1333 |
|
|
|
1334 |
if ($descriptif OR $options == "avancees") {
|
|
|
1335 |
echo "<b>"._T('info_description_2')."</b><br />\n";
|
|
|
1336 |
echo "<textarea name='descriptif_document' rows='4' class='formo' cols='*' style='font-size:9px;' wrap='soft'>";
|
|
|
1337 |
echo entites_html($descriptif);
|
|
|
1338 |
echo "</textarea>\n";
|
|
|
1339 |
}
|
|
|
1340 |
|
|
|
1341 |
echo "<div align='".$GLOBALS['spip_lang_right']."'>";
|
|
|
1342 |
echo "<input class='fondo' style='font-size: 9px;' TYPE='submit' NAME='Valider' VALUE='"._T('bouton_enregistrer')."'>";
|
|
|
1343 |
echo "</div>";
|
|
|
1344 |
echo "</div>";
|
|
|
1345 |
echo "</form>";
|
|
|
1346 |
|
|
|
1347 |
echo "<center>";
|
|
|
1348 |
$link = new Link ($image_url);
|
|
|
1349 |
$link->addVar('redirect', $redirect_url);
|
|
|
1350 |
$link->addVar('hash', calculer_action_auteur("supp_doc ".$id_document));
|
|
|
1351 |
$link->addVar('hash_id_auteur', $connect_id_auteur);
|
|
|
1352 |
$link->addVar('doc_supp', $id_document);
|
|
|
1353 |
$link->addVar('ancre', 'images');
|
|
|
1354 |
icone_horizontale (_T('icone_supprimer_image'), $link->getUrl(), "image-24.gif", "supprimer.gif");
|
|
|
1355 |
echo "</center>\n";
|
|
|
1356 |
|
|
|
1357 |
|
|
|
1358 |
echo fin_block();
|
|
|
1359 |
|
|
|
1360 |
fin_cadre_relief();
|
|
|
1361 |
}
|
|
|
1362 |
}
|
|
|
1363 |
|
|
|
1364 |
function teste_doc_deplie($id_document) {
|
|
|
1365 |
global $show_docs;
|
|
|
1366 |
static $deplies;
|
|
|
1367 |
|
|
|
1368 |
if (!$deplies)
|
|
|
1369 |
$deplies = split('-',$show_docs);
|
|
|
1370 |
|
|
|
1371 |
return in_array($id_document, $deplies);
|
|
|
1372 |
}
|
|
|
1373 |
|
|
|
1374 |
|
|
|
1375 |
// Mettre a jour la description du document postee par le redacteur
|
|
|
1376 |
// TODO: pour le moment cette fonction ne sait traiter qu'un document...
|
|
|
1377 |
function maj_documents ($id_objet, $type) {
|
|
|
1378 |
global $_POST;
|
|
|
1379 |
|
|
|
1380 |
if ($id_objet
|
|
|
1381 |
AND $id_document = intval($_POST['id_document'])
|
|
|
1382 |
AND $_POST['modif_document'] == 'oui') {
|
|
|
1383 |
|
|
|
1384 |
// "securite" : verifier que le document est bien lie a l'objet
|
|
|
1385 |
$result_doc = spip_query("SELECT * FROM spip_documents_".$type."s
|
|
|
1386 |
WHERE id_document=".$id_document."
|
|
|
1387 |
AND id_".$type." = $id_objet");
|
|
|
1388 |
if (spip_num_rows($result_doc) > 0) {
|
|
|
1389 |
$titre_document = addslashes(corriger_caracteres(
|
|
|
1390 |
$_POST['titre_document']));
|
|
|
1391 |
$descriptif_document = addslashes(corriger_caracteres(
|
|
|
1392 |
$_POST['descriptif_document']));
|
|
|
1393 |
$query = "UPDATE spip_documents
|
|
|
1394 |
SET titre='$titre_document', descriptif='$descriptif_document'";
|
|
|
1395 |
|
|
|
1396 |
// taille du document (cas des embed)
|
|
|
1397 |
if ($largeur_document = intval($_POST['largeur_document'])
|
|
|
1398 |
AND $hauteur_document = intval($_POST['hauteur_document']))
|
|
|
1399 |
$query .= ", largeur='$largeur_document',
|
|
|
1400 |
hauteur='$hauteur_document'";
|
|
|
1401 |
|
|
|
1402 |
$query .= " WHERE id_document=".$_POST['id_document'];
|
|
|
1403 |
spip_query($query);
|
|
|
1404 |
|
|
|
1405 |
|
|
|
1406 |
// Date du document (uniquement dans les rubriques)
|
|
|
1407 |
if ($_POST['jour_doc']) {
|
|
|
1408 |
if ($_POST['annee_doc'] == "0000")
|
|
|
1409 |
$_POST['mois_doc'] = "00";
|
|
|
1410 |
if ($_POST['mois_doc'] == "00")
|
|
|
1411 |
$_POST['jour_doc'] = "00";
|
|
|
1412 |
$date = $_POST['annee_doc'].'-'
|
|
|
1413 |
.$_POST['mois_doc'].'-'.$_POST['jour_doc'];
|
|
|
1414 |
|
|
|
1415 |
if (preg_match('/^[0-9-]+$/', $date)) {
|
|
|
1416 |
spip_query("UPDATE spip_documents
|
|
|
1417 |
SET date='$date'
|
|
|
1418 |
WHERE id_document=$id_document");
|
|
|
1419 |
|
|
|
1420 |
// Changement de date, ce qui nous oblige a :
|
|
|
1421 |
calculer_rubriques();
|
|
|
1422 |
}
|
|
|
1423 |
}
|
|
|
1424 |
|
|
|
1425 |
}
|
|
|
1426 |
|
|
|
1427 |
// Demander l'indexation du document
|
|
|
1428 |
include_ecrire('inc_index.php3');
|
|
|
1429 |
marquer_indexer('document', $id_document);
|
|
|
1430 |
|
|
|
1431 |
}
|
|
|
1432 |
}
|
|
|
1433 |
|
|
|
1434 |
?>
|