[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / odt2spip_30 / inc / odt2spip_generer_sortie.php
diff --git a/www/plugins/odt2spip_30/inc/odt2spip_generer_sortie.php b/www/plugins/odt2spip_30/inc/odt2spip_generer_sortie.php
deleted file mode 100644 (file)
index 82f1c0d..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php\r
-/**\r
- * Créer un article à partir d'un fichier au format odt\r
- *\r
- * @author cy_altern\r
- * @license GNU/LGPL\r
- *\r
- * @package plugins\r
- * @subpackage odt2spip\r
- * @category import\r
- *\r
- *\r
- */\r
-\r
-if (!defined("_ECRIRE_INC_VERSION")) return;\r
-\r
-/**\r
- * Création de l'Array contenant les paramètres du futur article\r
- *\r
- * Le fichier content.xml a été extrait de l'archive .odt, et placé dans le dossier\r
- * temporaire propre à l'utilisateur courant. Un premier traitement est effectué\r
- * par cette fonction pour qu'il soit finalement transformé en texte utilisant les\r
- * balises SPIP. On tient compte de la présence des plugins enluminure_typo et\r
- * intertitre_enrichis. Les images sont extraites du document .odt et sont prêtes\r
- * à être insérées dans le futur article SPIP.\r
- * \r
- * @param int $id_auteur Utilisateur courant\r
- * @param string $rep_dezip Répertoire où est dezippé le fichier odt\r
- * @return Array\r
- */\r
-function inc_odt2spip_generer_sortie($id_auteur, $rep_dezip){\r
-       // variables en dur pour xml en entree et xslt utilisee\r
-       // $xml_entre = $rep_dezip . 'content.xml';  // chemin du fichier xml a lire    \r
-       $xml_entre = _DIR_TMP . 'odt2spip/' . $id_auteur . '/content.xml';  // chemin du fichier xml a lire\r
-       $xslt_texte = _DIR_PLUGIN_ODT2SPIP . 'inc/odt2spip.xsl'; // chemin de la xslt a utiliser pour le texte\r
-\r
-       // determiner si le plugin enluminure_typo ou intertitres_enrichis est present & actif\r
-       include_spip('inc/plugin');\r
-       $Tplugins = liste_plugin_actifs();\r
-       $intertitres_riches = ((array_key_exists('TYPOENLUMINEE', $Tplugins) OR array_key_exists('INTERTITRESTDM', $Tplugins)) ? 'oui' : 'non'); \r
-\r
-       // si il n'existe pas de titre:h dans le doc, on parametre ici la longueur max du paragraphe utilise pour remplacer\r
-       $nb_caracteres_titre = 50;\r
-\r
-       // faut il mettre les images en mode document?\r
-    $type = (_request('mode_image') AND _request('mode_image') == 'document') ? 'document' : 'image';\r
-    $ModeImages = ($type == 'document' ? 'doc' : 'img');\r
-    \r
-       // récupérer la langue de publication + verifier la valeur envoyée\r
-    $Tlangues = explode(',', $GLOBALS['meta']['langues_proposees']);\r
-    $LanguePublication = (in_array(_request('lang_publi'), $Tlangues) ? _request('lang_publi') : $GLOBALS['meta']['langue_site']);\r
-    \r
-       // date pour les champs date et date_modif\r
-       $date_jour = date("Y-m-d H:i:s");\r
-\r
-       // appliquer la transformation XSLT sur le fichier content.xml\r
-       // on est php5: utiliser les fonctions de la classe XSLTProcessor\r
-       // verifier que l'extension xslt est active\r
-       if (!class_exists('XSLTProcessor')) {\r
-               die(_T('odtspip:err_extension_xslt'));\r
-       }\r
-       $proc = new XSLTProcessor();\r
-\r
-       // passage des parametres a la xslt\r
-       $proc->setParameter(null, 'IntertitresRiches', $intertitres_riches);  \r
-\r
-       $xml = new DOMDocument();\r
-       $xml->load($xml_entre);\r
-       $xsl = new DOMDocument();\r
-       $xsl->load($xslt_texte);\r
-       $proc->importStylesheet($xsl); // attachement des regles xsl\r
-\r
-       // lancer le parseur\r
-       if (!$xml_sortie = $proc->transformToXml($xml)) {\r
-               die(_T('odtspip:err_transformation_xslt'));\r
-       }\r
-\r
-       // construire l'array des parametres de l'article\r
-       preg_match('/<titre>(.*?)<\/titre>/',$xml_sortie, $t);\r
-       $Tarticle['titre'] = $t[1];\r
-       preg_match('/<texte>(.*?)<\/texte>/s',$xml_sortie, $a);\r
-       $Tarticle['texte'] = $a[1];\r
-       $Tarticle['date_redac'] = '0000-00-00 00:00:00';\r
-       $Tarticle['date'] = $Tarticle['date_modif'] = $date_jour;\r
-       $Tarticle['lang'] = $LanguePublication;\r
-       $Tarticle['statut'] = 'prop';\r
-       $Tarticle['accepter_forum'] = 'non';\r
-       \r
-       // traitements complementaires du texte de l'article\r
-       // remplacer les &gt; et &lt;\r
-       $a_remplacer = array('&#60;', '&#62;', '&lt;', '&gt;', '"');\r
-       $remplace = array('<', '>', '<', '>', "'");\r
-       \r
-    // si plugin TYPOENLUMINE est en version 3 (ou plus) utiliser la syntaxe {{{**titre 2}}} a la place de {2{titre 2}2}\r
-    // (cf http://www.spip-contrib.net/odt2spip-creation-d-articles-a-partir-de-fichiers#forum435614)\r
-    if (array_key_exists('TYPOENLUMINEE', $Tplugins) AND intval(substr($Tplugins['TYPOENLUMINEE']['version'], 0, 1)) >= 3) {\r
-               array_push($a_remplacer, '{2{', '}2}', '{3{', '}3}', '{4{', '}4}', '{5{', '}5}');\r
-               array_push($remplace, '{{{**', '}}}', '{{{***', '}}}', '{{{****', '}}}', '{{{*****', '}}}');\r
-       }\r
-       \r
-       $Tarticle['texte'] = str_replace($a_remplacer, $remplace, $Tarticle['texte']);\r
-\r
-       // gerer la conversion des <math>Object X</math> => on delegue a /inc/odt2spip_traiter_mathml.php\r
-       if (preg_match_all('/<math>(.*?)<\/math>/', $Tarticle['texte'], $match, PREG_PATTERN_ORDER) > 0) {\r
-               include_spip('inc/odt2spip_traiter_mathml');\r
-               foreach ($match[1] as $balise) {\r
-                       $fic_content = $rep_dezip . $balise . '/content.xml';\r
-                       // si le fichier /Object X/content.xml ne contient pas du mathML, virer la balise <math>\r
-                       if (substr_count(file_get_contents($fic_content), '<!DOCTYPE math:math') < 1) {\r
-                               $Tarticle['texte'] = str_replace('<math>' . $balise . '</math>', '', $Tarticle['texte']);\r
-                               continue;\r
-                       }\r
-                       // sinon faire la transfo xsl du contenu du fichier pour obtenir le LateX qu'on place dans la balise\r
-                       $Tarticle['texte'] = str_replace($balise, odt2spip_traiter_mathml($fic_content), $Tarticle['texte']);\r
-               }\r
-       }\r
-\r
-       // virer les sauts de ligne multiples\r
-       $Tarticle['texte'] = preg_replace('/([\r\n]{2})[ \r\n]*/m', "$1", $Tarticle['texte']);\r
-\r
-    // si malgré toutes les magouille xslt la balise  <titre> est vide, mettre le nom du fichier odt\r
-    if ($Tarticle['titre'] == '')\r
-               $Tarticle['titre'] = str_replace(array('_','-','.odt'), array(' ',' ',''), $fichier_zip);\r
-               \r
-       // traiter les images: dans tous les cas il faut les integrer dans la table documents \r
-       $rep_pictures = $rep_dezip . "Pictures/";\r
-\r
-       // parametres de conversion de taille des images : cm -> px (en 96 dpi puisque c'est ce que semble utiliser Writer)\r
-       $conversion_image = 96 / 2.54;\r
-\r
-       preg_match_all('/<img([;a-zA-Z0-9\.]*)/', $Tarticle['texte'], $match, PREG_PATTERN_ORDER);\r
-       if (@count($match) > 0) {\r
-               if (!isset($odt2spip_retailler_img)) {\r
-                       $odt2spip_retailler_img = charger_fonction('odt2spip_retailler_img', 'inc');\r
-               }\r
-               if (!isset($ajouter_documents)) {\r
-                       $ajouter_documents = charger_fonction('ajouter_documents', 'action');\r
-               }\r
-               $Timages = array();\r
-               foreach($match[1] as $ch) {\r
-                       $Tdims = explode(';;;', $ch);\r
-                       $img = $Tdims[0];\r
-                       // si l'extension du fichier image n'est pas jpg/gif/png virer la balise\r
-            if (!in_array(strtolower(substr($img, -3)), array('jpg','gif','png')))\r
-                               $Tarticle['texte'] = str_replace($ch, '', $Tarticle['texte']);\r
-            elseif (file_exists($rep_pictures . $img)) {\r
-                               // retailler l'image en fct des parametres ;;;largeur;;;hauteur;;;\r
-                               $largeur = round($Tdims[1] * $conversion_image);\r
-                               $hauteur = round($Tdims[2] * $conversion_image);\r
-                               $odt2spip_retailler_img($rep_pictures . $img, $largeur, $hauteur);\r
-                               if ($id_document = $ajouter_documents('new',\r
-                                       array(array('tmp_name' =>  $rep_pictures . $img, 'name' => $img, 'titrer' => 0, 'distant' => 0, 'type' => $type)),\r
-                                       '', 0, $type)\r
-                                       AND $id_img = intval($id_document[0])\r
-                                       AND $id_img == $id_document[0]) {\r
-                                       $Timages[] = $id_img;\r
-\r
-                                       // remplacer les noms de fichier par leur id_document dans les <imgLeNomDuFichier.jpg> du texte\r
-                                       $Tarticle['texte'] = str_replace($ch, $id_img, $Tarticle['texte']);\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               // si les images doivent êtres intégrées en mode document, remplacer la balise <imgXY> par <docXY>\r
-               if ($type == 'document')\r
-                       preg_replace('/<img/', '<doc', $Tarticle['texte']);\r
-\r
-               // intégrer l'array des images dans les parametres de l'article\r
-               // ce qui permettra de faire la liaison lorsqu'on aura l'id_article\r
-               $Tarticle['Timages'] = $Timages;\r
-       }\r
-\r
-       // encodage des caracteres pour gerer aussi les SPIP 3 en ISO-8859-1\r
-       // cf http://contrib.spip.net/odt2spip-creation-d-articles-a-partir-de-fichiers#forum466929\r
-       if ($GLOBALS['meta']['charset'] != 'utf-8'){\r
-               include_spip('inc/charsets');\r
-               $Tarticle['texte'] = importer_charset($Tarticle['texte'], 'utf-8');\r
-               $Tarticle['titre'] = importer_charset($Tarticle['titre'], 'utf-8');\r
-       }\r
-       \r
-       return $Tarticle;\r
-}\r
-\r
-?>\r