Changeset 28068 in spip-zone for _plugins_/_stable_/odt2spip


Ignore:
Timestamp:
Apr 24, 2009, 2:10:15 PM (12 years ago)
Author:
cy_altern@…
Message:

passage version 0.12: ajout du chois du mode (doc/img) pour les images et utilisation du nom du fichier si le titre est vide

Location:
_plugins_/_stable_/odt2spip/version_0.1_stable
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/odt2spip/version_0.1_stable/action/odt2spip_importe.php

    r27630 r28068  
    6363    $Tplugins = liste_plugin_actifs();
    6464    $intertitres_riches = ((array_key_exists('TYPOENLUMINEE', $Tplugins) OR array_key_exists('INTERTITRESTDM', $Tplugins)) ? 'oui' : 'non');
     65   
     66  // faut il mettre les images en mode document?
     67    $type = (_request('mode_image') AND _request('mode_image') == 'document') ? 'document' : ($spip_version_code > 2 ? 'image' : 'vignette');
     68    $ModeImages = ($type == 'document' ? 'doc' : 'img');
    6569   
    6670  // appliquer la transformation XSLT sur le fichier content.xml
     
    7882     
    7983      // definition de l'array des parametres a passer a la xslt
    80         $params = array('IntertitresRiches' => $intertitres_riches);
     84        $params = array('IntertitresRiches' => $intertitres_riches, 'ModeImages' => $ModeImages);
    8185       
    8286      // lancer le parseur
     
    9296
    9397      // passage d'un parametre a la xslt
    94         $proc->setParameter(null, 'IntertitresRiches', $intertitres_riches);   
     98        $proc->setParameter(null, 'IntertitresRiches', $intertitres_riches);
     99        $proc->setParameter(null, 'ModeImages', $ModeImages);
    95100       
    96101        $xml = new DOMDocument();
     
    127132    // virer les sauts de ligne multiples
    128133    $xml_sortie = preg_replace('/([\r\n]{2})[ \r\n]*/m', "$1", $xml_sortie);
    129        
     134   
     135    // si malgré toutes les magouille xslt la balise  <titre> est vide, mettre le nom du fichier odt
     136    if(preg_match('/<titre>([ ]*?)<\/titre>/', $xml_sortie, $match) == 1)
     137        $xml_sortie = preg_replace('/<titre>[ ]*?<\/titre>/',
     138                                   '<titre>'.str_replace(array('_','-','.odt'), array(' ',' ',''), $fichier_zip).'</titre>',
     139                                   $xml_sortie);   
     140
    130141    // traiter les images: dans tous les cas il faut les intégrer dans la table documents
    131142    // en 1.9.2 c'est mode vignette + il faut les intégrer dans la table de liaison
    132143    // en 2.0 c'est mode image + les fonctions de snippets font la liaison => on bloque la liaison en filant un id_article vide
    133     $id_article_tmp = ($spip_version_code > 2 ? '' : 10000);   
    134     preg_match_all('/<img([;a-zA-Z0-9\.]*)/', $xml_sortie, $match, PREG_PATTERN_ORDER);
     144    $id_article_tmp = ($spip_version_code > 2 ? '' : 100000);   
     145    preg_match_all('/<'.$ModeImages.'([;a-zA-Z0-9\.]*)/', $xml_sortie, $match, PREG_PATTERN_ORDER);
    135146    if (@count($match) > 0) {
    136147        include_spip('inc/ajouter_document');
     
    148159                if (!function_exists('spip_abstract_insert')) include_spip('base/abstract_sql');
    149160                $ajouter_documents = charger_fonction('ajouter_documents','inc');
    150                 $type = ($spip_version_code > 2 ? 'image' : 'vignette');
     161//                $type = ($spip_version_code > 2 ? 'image' : 'vignette');
    151162                if ($id_document = $ajouter_documents($rep_pictures.$img, $img, "article", $id_article_tmp, $type, 0, $toto='')) {
    152163                  // uniformiser la sortie: si on est en 1.9.2 inc_ajouter_documents_dist() retourne le type de fichier (extension) alors qu'en 2.0 c'est l'id_document
     
    173184        fclose($fic);
    174185    }
    175 /* die;   */
     186/* die;  */
    176187  // générer l'article à partir du fichier xml de sortie (code pompé sur plugins/snippets/action/snippet_importe.php)
    177188    include_spip('inc/snippets');
     
    185196    snippets_translate_raccourcis_modeles($translations);
    186197    $id_article = $translations[0][2];
    187    
    188198  // si on est en 1.9.2 mettre à jour l'id_article auquel sont liees les images
    189199    if ($spip_version_code < 2) spip_query("UPDATE spip_documents_articles SET id_article = $id_article WHERE id_document IN (".implode(',',$T_images).")");
  • _plugins_/_stable_/odt2spip/version_0.1_stable/inc/odt2spip.xsl

    r27242 r28068  
    4141<xsl:preserve-space elements="*" />
    4242
    43 <!-- Récuperation du parametre venant de PHP: IntertitresRiches = oui|non
     43<!-- Récuperation des parametres venant de PHP:
     44  IntertitresRiches = oui|non
    4445  en fct de la presence d'un des plugins enluminure_typo ou intertitres_enrichis -->
    4546<xsl:param name="IntertitresRiches"/>
     47<!-- ModeImages = img|doc pour la balise a utiliser pour integrer les images -->
     48<xsl:param name="ModeImages"/>
    4649
    4750<!-- gestion des titres de façon la plus generique possible -->
     
    224227<!-- test recuperation du parametre passe par PHP
    225228intertitres_riches= <xsl:value-of select="$IntertitresRiches" />
     229ModeImages= <xsl:value-of select="$ModeImages" />
    226230-->
    227231<articles>
     
    509513</xsl:template>
    510514
    511 <xsl:template name="img2texte">&#60;img<xsl:value-of select="substring(@xlink:href,10)"/>;;;<xsl:value-of select="substring-before(parent::draw:frame/@svg:width,'cm')" />;;;<xsl:value-of select="substring-before(parent::draw:frame/@svg:height,'cm')" />;;;|<xsl:choose>
     515<xsl:template name="img2texte">&#60;<xsl:value-of select="$ModeImages" /><xsl:value-of select="substring(@xlink:href,10)"/>;;;<xsl:value-of select="substring-before(parent::draw:frame/@svg:width,'cm')" />;;;<xsl:value-of select="substring-before(parent::draw:frame/@svg:height,'cm')" />;;;|<xsl:choose>
    512516<!-- sale bidouille pour approximer la position de l'image (|left |center |right) -->
    513517<xsl:when test="substring-before(parent::draw:frame/@svg:x, 'cm') &lt;= 2">left</xsl:when>
  • _plugins_/_stable_/odt2spip/version_0.1_stable/lang/odtspip_fr.php

    r27242 r28068  
    1515    // C
    1616                        'choix_fichier' => 'Fichier ODT &agrave; utiliser : ',
     17       
     18    // D
     19        'mode_document' => 'documents',
    1720
    1821    // E
     
    2629
    2730    // I
     31        'images_mode_document' => 'Images attach&eacute;es en mode:',
     32        'mode_image' => 'images',
    2833        'importer_fichier' => 'Cr&eacute;er un article &agrave; partir d\'un fichier OOo Writer',
    2934       
  • _plugins_/_stable_/odt2spip/version_0.1_stable/odt2spip_pipelines.php

    r27204 r28068  
    2626    $out .= "<input type='radio' name='attacher_odt' value='0' id='attacher_non'/>";
    2727    $out .= "<label for='attacher_non'>"._T("odtspip:non")."</label>";
     28    $out .= "<br /><br /><strong>"._T("odtspip:images_mode_document")."</strong><br />";
     29    $out .= "<label for='mode_image'>"._T("odtspip:mode_image")."</label>";
     30    $out .= "<input type='radio' name='mode_image' value='image' id='mode_image' checked='checked'/>";
     31    $out .= "<input type='radio' name='mode_image' value='document' id='mode_document'/>";
     32    $out .= "<label for='mode_document'>"._T("odtspip:mode_document")."</label>";   
    2833    $out .= "</small><br />";
    2934    $out .= "<div style='text-align:$spip_lang_right'>";
  • _plugins_/_stable_/odt2spip/version_0.1_stable/plugin.xml

    r27242 r28068  
    44_ &#169; 2009 - distribu&#233; sous licence GNU/LGPL
    55    </auteur>
    6     <version>0.11</version>
     6    <version>0.12</version>
    77    <etat>stable</etat>
    88    <description>
Note: See TracChangeset for help on using the changeset viewer.