Changeset 93582 in spip-zone


Ignore:
Timestamp:
Dec 12, 2015, 9:32:46 AM (5 years ago)
Author:
dorch@…
Message:

Les liens entre articles ne fonctionnent pas dans la documentation CHM si ceux-ci ne pointent pas vers la bonne langue.
Les détails du bug sont décrits ici : http://sic.g-eau.net/mantis/view.php?id=1213

Location:
_plugins_/chmlatex/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/chmlatex/trunk/formulaires/fchmlatex.php

    r91748 r93582  
    244244/**
    245245 * Traitement des liens entre articles et rubriques pour l'export HTML/CHM
    246  * @param
    247  * @author Hicham Gartit
     246 * Transforme les liens du type /?exec=article&id_article=nnn et /?exec=rubrique&id_rubrique=nnn
     247 * en lien articlennn.html et rubriquennn.html
     248 * @param $matches lien absolu ou relatif
     249 * @author Hicham Gartit, David Dorchies
    248250 */
    249251function html_lien($matches)
     
    259261        if(substr($chemin, 0, strlen($GLOBALS['meta']['adresse_site'].'/ecrire/?exec=')) === $GLOBALS['meta']['adresse_site'].'/ecrire/?exec=')
    260262        {
     263            $tAncre = explode('#',$chemin); // Traitement des ancres
     264            $chemin = $tAncre[0];
    261265            if(strstr($chemin, 'exec=article'))
    262266            {
    263267                $id = substr(strstr($chemin, "id_article="),11);
     268                // Il faut s'assurer que l'id correspond à la traduction de la langue en cours
     269                $art = sql_fetsel(array('id_trad','lang'), 'spip_articles', "id_article=$id");
     270                $langue = _request('langue');
     271                if($art['lang']!=$langue) {
     272                    // Le lien ne pointe pas vers la bonne traduction de l'article
     273                    $art2 = sql_fetsel('id_article', 'spip_articles',
     274                        array('id_trad='.$art['id_trad'],"lang='$langue'"));
     275                        //~ spip_log(sql_get_select('id_article', 'spip_articles',
     276                        //~ array('id_trad='.$art['id_trad'],"lang='$langue'")),'lien');
     277                    if(isset($art2['id_article'])) {
     278                        // La bonne traduction existe
     279                        $id = $art2['id_article'];
     280                    } else {
     281                        // La bonne traduction n'existe pas, on utilise l'article de référence
     282                        $id = $art['id_trad'];
     283                    }
     284                }
    264285                $type = 'article';
    265286            }
     
    269290                $type = 'rubrique';
    270291            }
    271             $aId = explode('#',$id); // Traitement des ancres
    272             $id = $aId[0];
    273292            $nom = $type.$id.'.html';
    274             if(isset($aId[1])) $nom .= '#'.$aId[1];
     293            if(isset($tAncre[1])) $nom .= '#'.$tAncre[1]; // Rajout de l'ancre si elle existe
    275294
    276295            return str_replace($matches[1],$nom,$matches[0]);
  • _plugins_/chmlatex/trunk/paquet.xml

    r91747 r93582  
    22    prefix="chmlatex"
    33    categorie="edition"
    4     version="1.4.0"
     4    version="1.4.1"
    55    etat="test"
    66    compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.