Newer
Older

cedric@yterium.com
a validé
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *

cedric@yterium.com
a validé
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/actions');
include_spip('inc/editer');
include_spip('inc/documents');
function formulaires_editer_document_charger_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){
$valeurs = formulaires_editer_objet_charger('document',$id_document,$id_parent,$lier_trad,$retour,$config_fonc,$row,$hidden);
// relier les parents
$valeurs['parents'] = array();
$valeurs['_hidden'] = "";
$parents = sql_allfetsel('objet,id_objet','spip_documents_liens','id_document='.intval($id_document));
foreach($parents as $p){
if (in_array($p['objet'],array('article','rubrique')) AND $p['id_objet']>0)
$valeurs['parents'][] = $p['objet'].'|'.$p['id_objet'];
else
$valeurs['_hidden'] .= "<input type='hidden' name='parents[]' value='".$p['objet'].'|'.$p['id_objet']."' />";
}
$valeurs['saisie_date'] = affdate($valeurs['date'],'d/m/Y');
$valeurs['saisie_heure'] = affdate($valeurs['date'],'H:i');
// en fonction du format
$valeurs['_editer_dimension'] = autoriser('tailler','document',$id_document)?' ':'';

cedric@yterium.com
a validé
// type du document et inclusion
$row = sql_fetsel('titre as type_document,inclus','spip_types_documents','extension='.sql_quote($valeurs['extension']));
$valeurs['type_document'] = $row['type_document'];
$valeurs['_inclus'] = $row['inclus'];

cedric@yterium.com
a validé
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
if (in_array($valeurs['extension'],array('jpg','gif','png'))){
$valeurs['apercu'] = get_spip_doc($valeurs['fichier']);
}
// verifier les infos de taille et dimensions sur les fichiers locaux
// cas des maj de fichier directes par ftp
if ($valeurs['distant']!=='oui'){
include_spip('inc/renseigner_document');
$infos = renseigner_taille_dimension_image(get_spip_doc($valeurs['fichier']),$valeurs['extension']);
if ($infos['taille']!=$valeurs['taille']
OR ($infos['type_image'] && ($infos['largeur']!=$valeurs['largeur']))
OR ($infos['type_image'] && ($infos['hauteur']!=$valeurs['hauteur']))){
$valeurs['_taille_modif'] = $infos['taille'];
$valeurs['_largeur_modif'] = $infos['largeur'];
$valeurs['_hauteur_modif'] = $infos['hauteur'];
$valeurs['_hidden'].=
"<input type='hidden' name='_taille_modif' value='".$infos['taille']."' />"
. "<input type='hidden' name='_largeur_modif' value='".$infos['largeur']."' />"
. "<input type='hidden' name='_hauteur_modif' value='".$infos['hauteur']."' />";
}
}
// pour l'upload d'un nouveau doc
if ($valeurs['fichier']){
$charger = charger_fonction('charger','formulaires/joindre_document');
$valeurs = array_merge($valeurs,$charger($id_document,0,'','choix'));
$valeurs['_hidden'] .= "<input name='id_document' value='$id_document' type='hidden' />";
}
return $valeurs;
}
// Choix par defaut des options de presentation
function documents_edit_config($row)
{

cedric@yterium.com
a validé
global $spip_lang;

cedric@yterium.com
a validé
$config = array();//$GLOBALS['meta'];

cedric@yterium.com
a validé
$config['lignes'] = 8;

cedric@yterium.com
a validé
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
$config['langue'] = $spip_lang;
$config['restreint'] = ($row['statut'] == 'publie');
return $config;
}
function formulaires_editer_document_verifier_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){
$erreurs = formulaires_editer_objet_verifier('document',$id_document,is_numeric($id_document)?array():array('titre'));
// verifier l'upload si on a demande a changer le document
if (_request('joindre_upload') OR _request('joindre_ftp') OR _request('joindre_distant')){
if (_request('copier_local')){
}
else {
$verifier = charger_fonction('verifier','formulaires/joindre_document');
$erreurs = array_merge($erreurs,$verifier($id_document));
}
}
if (!$date = recup_date(_request('saisie_date').' '._request('saisie_heure').':00')
OR !($date = mktime($date[3],$date[4],0,$date[1],$date[2],$date[0])))
$erreurs['saisie_date'] = _T('medias:format_date_incorrect');
else {
set_request('saisie_date',date('d/m/Y',$date));
set_request('saisie_heure',date('H:i',$date));
set_request('date',date("Y-m-d H:i:s",$date));
}
return $erreurs;
}
// http://doc.spip.org/@inc_editer_article_dist
function formulaires_editer_document_traiter_dist($id_document='new', $id_parent='', $retour='', $lier_trad=0, $config_fonc='documents_edit_config', $row=array(), $hidden=''){
if (is_null(_request('parents')))
set_request('parents',array());
// verifier les infos de taille et dimensions sur les fichiers locaux
// cas des maj de fichier directes par ftp
foreach(array('taille','largeur','hauteur') as $c)
if (($v=_request("_{$c}_modif")) AND !_request($c)){
set_request($c,$v);
}
$res = formulaires_editer_objet_traiter('document',$id_document,$id_parent,$lier_trad,$retour,$config_fonc,$row,$hidden);
$autoclose = "<script type='text/javascript'>if (window.jQuery) jQuery.modalboxclose();</script>";
if (_request('copier_local')
OR _request('joindre_upload')
OR _request('joindre_ftp')
OR _request('joindre_distant')
OR _request('joindre_zip')){

cedric@yterium.com
a validé
$autoclose = "";
if (_request('copier_local')){
$copier_local = charger_fonction('copier_local','action');
$res = array('editable'=>true);
if (($err=$copier_local($id_document))===true)
$res['message_ok'] = (isset($res['message_ok'])?$res['message_ok'].'<br />':'')._T('medias:document_copie_locale_succes');
else
$res['message_erreur'] = (isset($res['message_erreur'])?$res['message_erreur'].'<br />':'').$err;
}
else {
// liberer le nom de l'ancien fichier pour permettre le remplacement par un fichier du meme nom
if ($ancien_fichier = sql_getfetsel('fichier','spip_documents','id_document='.intval($id_document))

cedric@yterium.com
a validé
AND @file_exists($rename = get_spip_doc($ancien_fichier))){
@rename($rename,"$rename--.old");

cedric@yterium.com
a validé
}
$traiter = charger_fonction('traiter','formulaires/joindre_document');
$res2 = $traiter($id_document);

cedric@yterium.com
a validé
if (isset($res2['message_erreur'])){
$res['message_erreur'] = $res2['message_erreur'];
// retablir le fichier !
if ($rename)
@rename("$rename--.old",$rename);

cedric@yterium.com
a validé
}
else
// supprimer vraiment le fichier initial
spip_unlink("$rename--.old");

cedric@yterium.com
a validé
}

cedric@yterium.com
a validé
// on annule les saisies largeur/hauteur : l'upload a pu charger les siens
set_request('largeur');
set_request('hauteur');

cedric@yterium.com
a validé
}
else{
// regarder si une demande de rotation a eu lieu
// c'est un bouton image, dont on a pas toujours le name en request, on fait avec
$angle = 0;
if (_request('tournerL90') OR _request('tournerL90_x'))
$angle = -90;
if (_request('tournerR90') OR _request('tournerR90_x'))
$angle = 90;
if (_request('tourner180') OR _request('tourner180_x'))
$angle = 180;
if ($angle){
$autoclose = "";
$tourner = charger_fonction('tourner','action');
action_tourner_post($id_document,$angle);
}
}
if (!isset($res['redirect']))
$res['editable'] = true;
if (!isset($res['message_erreur']))
$res['message_ok'] = _T('info_modification_enregistree').$autoclose;

cedric@yterium.com
a validé
if ($res['message_ok'])
$res['message_ok'].='<script type="text/javascript">if (window.jQuery) ajaxReload("document_infos");</script>';

cedric@yterium.com
a validé
return $res;
}
?>