4 * Créer un article à partir d'un fichier au format odt
10 * @subpackage odt2spip
13 * @version $Id: odt2spip_importe.php 106329 2017-09-18 20:38:37Z marcimat@rezo.net $
16 if (!defined('_ECRIRE_INC_VERSION')) {
21 * Création de l'article et redirection vers celui-ci
23 * Le fichier .odt est envoyé par un formulaire, ainsi que des informations sur
24 * la rubrique dans laquelle créer l'article, un flag qui indique s'il faut joindre
25 * le document à l'article créé, etc..
26 * Cette fonction s'assure avant tout que l'utilisateur peut y ajouter un article.
27 * Le fichier .odt est traité et transformé en article.
28 * En fin de traitement, on est redirigé vers l'article qui vient d'être créé.
31 * Un répertoire temporaire, spécifique à l'utilisateur en cours, est utilisé et
32 * créé si nécessaire. Il est supprimé en fin de traitement.
33 * Le format odt correspond à une archive .zip, et regroupe le contenu dans un fichier
34 * content.xml : ce fichier est transformé par XSLT afin de générer un texte
35 * utilisant les balises SPIP pour sa mise en forme.
39 function action_odt2spip_importe($fichier = null, $arg = null) {
41 $arg = _request('arg');
44 // arg : id_rubrique=XXX ou id_article=YYY
45 $id_article = $id_rubrique = false;
46 list($objet, $id_objet) = explode('=', $arg);
47 if ($objet === 'id_rubrique') {
48 $id_rubrique = intval($id_objet);
50 $creer_objet = 'article';
52 $id_article = intval($id_objet);
57 include_spip('inc/securiser_action');
60 ($id_rubrique and !autoriser('creerarticledans', 'rubrique', $id_rubrique))
61 or ($id_article and !autoriser('modifier', 'article', $id_article))
63 die(_T('avis_non_acces_page'));
66 include_spip('inc/odt2spip');
68 $fichier = odt2spip_deplacer_fichier_upload('fichier_odt');
69 } catch (\Exception
$e) {
73 list($id, $erreurs) = odt2spip_integrer_fichier(
79 'attacher_fichier' => _request('attacher_odt'),
87 if (is_null(_request('redirect'))) {
88 include_spip('inc/headers');
89 redirige_par_entete(generer_url_entite($id, $creer_objet ?
$creer_objet : $objet));