Beispiel #1
0
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;
}