1 | <?php |
---|
2 | |
---|
3 | /***************************************************************************\ |
---|
4 | * SPIP, Systeme de publication pour l'internet * |
---|
5 | * * |
---|
6 | * Copyright (c) 2001-2009 * |
---|
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/actions'); |
---|
16 | include_spip('inc/editer'); |
---|
17 | include_spip('inc/documents'); |
---|
18 | |
---|
19 | function formulaires_editer_document_charger_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){ |
---|
20 | $valeurs = formulaires_editer_objet_charger('document',$id_document,$id_parent,$lier_trad,$retour,$config_fonc,$row,$hidden); |
---|
21 | |
---|
22 | // relier les parents |
---|
23 | $valeurs['parents'] = array(); |
---|
24 | $valeurs['_hidden'] = ""; |
---|
25 | $parents = sql_allfetsel('objet,id_objet','spip_documents_liens','id_document='.intval($id_document)); |
---|
26 | foreach($parents as $p){ |
---|
27 | if (in_array($p['objet'],array('article','rubrique')) AND $p['id_objet']>0) |
---|
28 | $valeurs['parents'][] = $p['objet'].'|'.$p['id_objet']; |
---|
29 | else |
---|
30 | $valeurs['_hidden'] .= "<input type='hidden' name='parents[]' value='".$p['objet'].'|'.$p['id_objet']."' />"; |
---|
31 | } |
---|
32 | |
---|
33 | $valeurs['saisie_date'] = affdate($valeurs['date'],'d/m/Y'); |
---|
34 | $valeurs['saisie_heure'] = affdate($valeurs['date'],'H:i'); |
---|
35 | // en fonction du format |
---|
36 | $valeurs['_editer_dimension'] = autoriser('tailler','document',$id_document)?' ':''; |
---|
37 | |
---|
38 | // type du document |
---|
39 | $valeurs['type_document'] = sql_getfetsel('titre as type_document','spip_types_documents','extension='.sql_quote($valeurs['extension'])); |
---|
40 | if (in_array($valeurs['extension'],array('jpg','gif','png'))){ |
---|
41 | $valeurs['apercu'] = get_spip_doc($valeurs['fichier']); |
---|
42 | } |
---|
43 | |
---|
44 | // verifier les infos de taille et dimensions sur les fichiers locaux |
---|
45 | // cas des maj de fichier directes par ftp |
---|
46 | if ($valeurs['distant']!=='oui'){ |
---|
47 | include_spip('inc/renseigner_document'); |
---|
48 | $infos = renseigner_taille_dimension_image(get_spip_doc($valeurs['fichier']),$valeurs['extension']); |
---|
49 | if ($infos['taille']!=$valeurs['taille'] |
---|
50 | OR ($infos['type_image'] && ($infos['largeur']!=$valeurs['largeur'])) |
---|
51 | OR ($infos['type_image'] && ($infos['hauteur']!=$valeurs['hauteur']))){ |
---|
52 | $valeurs['_taille_modif'] = $infos['taille']; |
---|
53 | $valeurs['_largeur_modif'] = $infos['largeur']; |
---|
54 | $valeurs['_hauteur_modif'] = $infos['hauteur']; |
---|
55 | $valeurs['_hidden'].= |
---|
56 | "<input type='hidden' name='_taille_modif' value='".$infos['taille']."' />" |
---|
57 | . "<input type='hidden' name='_largeur_modif' value='".$infos['largeur']."' />" |
---|
58 | . "<input type='hidden' name='_hauteur_modif' value='".$infos['hauteur']."' />"; |
---|
59 | } |
---|
60 | } |
---|
61 | |
---|
62 | |
---|
63 | // pour l'upload d'un nouveau doc |
---|
64 | if ($valeurs['fichier']){ |
---|
65 | $charger = charger_fonction('charger','formulaires/joindre_document'); |
---|
66 | $valeurs = array_merge($valeurs,$charger($id_document,0,'','choix')); |
---|
67 | $valeurs['_hidden'] .= "<input name='id_document' value='$id_document' type='hidden' />"; |
---|
68 | } |
---|
69 | |
---|
70 | return $valeurs; |
---|
71 | } |
---|
72 | |
---|
73 | // Choix par defaut des options de presentation |
---|
74 | function documents_edit_config($row) |
---|
75 | { |
---|
76 | global $spip_ecran, $spip_lang, $spip_display; |
---|
77 | |
---|
78 | $config = $GLOBALS['meta']; |
---|
79 | $config['lignes'] = ($spip_ecran == "large")? 8 : 5; |
---|
80 | $config['langue'] = $spip_lang; |
---|
81 | |
---|
82 | $config['restreint'] = ($row['statut'] == 'publie'); |
---|
83 | return $config; |
---|
84 | } |
---|
85 | |
---|
86 | function formulaires_editer_document_verifier_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){ |
---|
87 | $erreurs = formulaires_editer_objet_verifier('document',$id_document,is_numeric($id_document)?array():array('titre')); |
---|
88 | |
---|
89 | // verifier l'upload si on a demande a changer le document |
---|
90 | if (_request('joindre_upload') OR _request('joindre_ftp') OR _request('joindre_distant')){ |
---|
91 | if (_request('copier_local')){ |
---|
92 | } |
---|
93 | else { |
---|
94 | $verifier = charger_fonction('verifier','formulaires/joindre_document'); |
---|
95 | $erreurs = array_merge($erreurs,$verifier($id_document)); |
---|
96 | } |
---|
97 | } |
---|
98 | |
---|
99 | if (!$date = recup_date(_request('saisie_date').' '._request('saisie_heure').':00') |
---|
100 | OR !($date = mktime($date[3],$date[4],0,$date[1],$date[2],$date[0]))) |
---|
101 | $erreurs['saisie_date'] = _T('gestdoc:format_date_incorrect'); |
---|
102 | else { |
---|
103 | set_request('saisie_date',date('d/m/Y',$date)); |
---|
104 | set_request('saisie_heure',date('H:i',$date)); |
---|
105 | set_request('date',date("Y-m-d H:i:s",$date)); |
---|
106 | } |
---|
107 | |
---|
108 | return $erreurs; |
---|
109 | } |
---|
110 | |
---|
111 | // http://doc.spip.org/@inc_editer_article_dist |
---|
112 | function formulaires_editer_document_traiter_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){ |
---|
113 | if (is_null(_request('parents'))) |
---|
114 | set_request('parents',array()); |
---|
115 | |
---|
116 | // verifier les infos de taille et dimensions sur les fichiers locaux |
---|
117 | // cas des maj de fichier directes par ftp |
---|
118 | foreach(array('taille','largeur','hauteur') as $c) |
---|
119 | if (($v=_request("_{$c}_modif")) AND !_request($c)){ |
---|
120 | set_request($c,$v); |
---|
121 | } |
---|
122 | |
---|
123 | $res = formulaires_editer_objet_traiter('document',$id_document,$id_parent,$lier_trad,$retour,$config_fonc,$row,$hidden); |
---|
124 | $autoclose = "<script type='text/javascript'>if (window.jQuery) jQuery.modalboxclose();</script>"; |
---|
125 | if (_request('copier_local') OR _request('joindre_upload') OR _request('joindre_ftp') OR _request('joindre_distant')){ |
---|
126 | $autoclose = ""; |
---|
127 | if (_request('copier_local')){ |
---|
128 | $copier_local = charger_fonction('copier_local','action'); |
---|
129 | $res = array('editable'=>true); |
---|
130 | if (($err=$copier_local($id_document))===true) |
---|
131 | $res['message_ok'] = (isset($res['message_ok'])?$res['message_ok'].'<br />':'')._T('gestdoc:document_copie_locale_succes'); |
---|
132 | else |
---|
133 | $res['message_erreur'] = (isset($res['message_erreur'])?$res['message_erreur'].'<br />':'').$err; |
---|
134 | } |
---|
135 | else { |
---|
136 | // liberer le nom de l'ancien fichier pour permettre le remplacement par un fichier du meme nom |
---|
137 | if ($ancien_fichier = sql_getfetsel('fichier','spip_documents','id_document='.intval($id_document)) |
---|
138 | AND @file_exists($f = get_spip_doc($ancien_fichier))){ |
---|
139 | spip_unlink($f); |
---|
140 | } |
---|
141 | $traiter = charger_fonction('traiter','formulaires/joindre_document'); |
---|
142 | $res2 = $traiter($id_document); |
---|
143 | } |
---|
144 | } |
---|
145 | else{ |
---|
146 | // regarder si une demande de rotation a eu lieu |
---|
147 | // c'est un bouton image, dont on a pas toujours le name en request, on fait avec |
---|
148 | $angle = 0; |
---|
149 | if (_request('tournerL90') OR _request('tournerL90_x')) |
---|
150 | $angle = -90; |
---|
151 | if (_request('tournerR90') OR _request('tournerR90_x')) |
---|
152 | $angle = 90; |
---|
153 | if (_request('tourner180') OR _request('tourner180_x')) |
---|
154 | $angle = 180; |
---|
155 | if ($angle){ |
---|
156 | $autoclose = ""; |
---|
157 | $tourner = charger_fonction('tourner','action'); |
---|
158 | action_tourner_post($id_document,$angle); |
---|
159 | } |
---|
160 | } |
---|
161 | |
---|
162 | if (!isset($res['redirect'])) |
---|
163 | $res['editable'] = true; |
---|
164 | if (!isset($res['message_erreur'])) |
---|
165 | $res['message_ok'] = _L('Votre modification a été enregistrée').$autoclose; |
---|
166 | |
---|
167 | return $res; |
---|
168 | } |
---|
169 | |
---|
170 | ?> |
---|