source: spip-zone/_plugins_/gestion_documents/formulaires/editer_document.php @ 40595

Last change on this file since 40595 was 40595, checked in by kent1@…, 11 years ago

un spip_log commité par erreur

File size: 7.1 KB
Line 
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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('inc/actions');
16include_spip('inc/editer');
17include_spip('inc/documents');
18
19function 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
74function 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
86function 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
112function 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 &eacute;t&eacute; enregistr&eacute;e').$autoclose;
166
167        return $res;
168}
169
170?>
Note: See TracBrowser for help on using the repository browser.