3 if (!defined('_ECRIRE_INC_VERSION')) {
9 * Charger le contenu d’un document dans un objet SPIP.
11 * Le document est transformé en document ODT (si possible),
12 * puis la transformation odt2spip est appliquée.
14 * @param string $objet
15 * @param int $id_objet
16 * @param null|string $creer_objet
17 * Si définie, créera un nouvel objet enfant de $objet/$id_objet.
18 * Note que seul le cas 'article' dans une rubrique est actuellement géré.
19 * @param string $retour
22 function formulaires_document2spip_charger_dist($objet, $id_objet, $creer_objet = null, $retour = '') {
23 include_spip('inc/config');
25 if ($creer_objet and !autoriser('creer' . objet_type($creer_objet) . 'dans', $objet, $id_objet)) {
27 } elseif (!autoriser('modifier', $objet, $id_objet)) {
31 include_spip('inc/odt2spip');
34 'id_objet' => $id_objet,
35 'creer_objet' => $creer_objet,
36 'attacher_fichier' => lire_config('odt2spip/defaut_attacher'),
37 'attacher_fichier_odt' => lire_config('odt2spip/defaut_attacher_odt_genere'),
38 'mode_image' => 'image',
40 '_conversion_disponible' => odt2spip_convertisseur_disponible(),
41 '_bigup_rechercher_fichiers' => true,
42 '_accept' => odt2spip_liste_extensions_acceptees(true),
43 '_selecteur_langue' => (bool)lire_config('langues_multilingue'),
52 * @param string $objet
53 * @param int $id_objet
54 * @param null|string $creer_objet
55 * Si définie, créera un nouvel objet enfant de $objet/$id_objet.
56 * Note que seul le cas 'article' dans une rubrique est actuellement géré.
57 * @param string $retour
60 function formulaires_document2spip_verifier_dist($objet, $id_objet, $creer_objet = null, $retour = '') {
63 if (!in_array(_request('mode_image'), array('image', 'document'))) {
64 $erreurs['mode_image'] = _T('info_obligatoire');
67 include_spip('inc/odt2spip');
68 $extensions_acceptees = odt2spip_liste_extensions_acceptees();
70 if (empty($_FILES['fichier']['name'])) {
71 $erreurs['fichier'] = _T('info_obligatoire');
72 } elseif ($_FILES['fichier']['error'] != 0) {
73 $erreurs['fichier'] = _T('odtspip:err_recuperer_fichier');
74 } elseif (!in_array(strtolower(pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION
)), $extensions_acceptees)) {
75 $erreurs['fichier'] = _T('odtspip:err_extension_fichier', array('extension' => implode(', ', $extensions_acceptees)));
84 * @param string $objet
85 * @param int $id_objet
86 * @param null|string $creer_objet
87 * Si définie, créera un nouvel objet enfant de $objet/$id_objet.
88 * Note que seul le cas 'article' dans une rubrique est actuellement géré.
89 * @param string $retour
92 function formulaires_document2spip_traiter_dist($objet, $id_objet, $creer_objet = null, $retour = '') {
97 include_spip('inc/odt2spip');
99 $fichier_source = odt2spip_deplacer_fichier_upload('fichier');
100 } catch (\Exception
$e) {
101 $res['message_erreur'] = $e->getMessage();
105 // Si le fichier n’est pas un document odt, le traduire.
106 $extension = strtolower(pathinfo($fichier_source, PATHINFO_EXTENSION
));
107 if ($extension !== 'odt') {
109 $fichier = odt2spip_convertir_fichier($fichier_source);
111 $res['message_erreur'] = _T('odtspip:err_convertir_fichier');
114 } catch (\Exception
$e) {
115 spip_log($e->getMessage(), 'odtspip.' . _LOG_ERREUR
);
116 $res['message_erreur'] = _T('odtspip:err_convertir_fichier');
120 $fichier = $fichier_source;
123 list($id, $erreurs) = odt2spip_integrer_fichier(
129 'attacher_fichier' => _request('attacher_fichier'),
130 'fichier_source' => $fichier_source,
131 'attacher_fichier_odt' => _request('attacher_fichier_odt'),
136 $res['message_erreur'] = $erreurs;
140 $res['redirect'] = generer_url_entite($id, $creer_objet ?
$creer_objet : $objet);
141 $res['message_ok'] = _T('odtspip:fichier_traiter_ok');