function tourner_selon_exif_orientation($id_document, $fichier) { if (function_exists('exif_read_data') and $exif = exif_read_data($fichier) and ($ort = $exif['IFD0']['Orientation'] or $ort = $exif['Orientation'])) { spip_log("rotation: {$ort}"); $rot = null; switch ($ort) { case 3: $rot = 180; case 6: $rot = 90; case 8: $rot = -90; } if ($rot) { action_tourner_post(array(null, $id_document, $rot)); } } }
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); set_request('parents'); $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')) { $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; } set_request('credits'); // modifie par la copie locale } 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)) and !tester_url_absolue($ancien_fichier) and @file_exists($rename = get_spip_doc($ancien_fichier))) { @rename($rename, "{$rename}--.old"); } $traiter = charger_fonction('traiter', 'formulaires/joindre_document'); $res2 = $traiter($id_document); if (isset($res2['message_erreur'])) { $res['message_erreur'] = $res2['message_erreur']; // retablir le fichier ! if ($rename) { @rename("{$rename}--.old", $rename); } } else { spip_unlink("{$rename}--.old"); } } // on annule les saisies largeur/hauteur : l'upload a pu charger les siens set_request('largeur'); set_request('hauteur'); } 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; } if ($res['message_ok']) { $res['message_ok'] .= '<script type="text/javascript">if (window.jQuery) ajaxReload("document_infos");</script>'; } return $res; }