Changeset 25729 in spip-zone


Ignore:
Timestamp:
Jan 4, 2009, 1:35:31 PM (13 years ago)
Author:
esj@…
Message:

Nouvelle fonctionnalité des urls-trad: dans une URL de la forme {{langue}}_article{{numero}}.html, la langue était auparavant ignorée, le numéro de l'article étant la seule information utilisée; à présent on retourne la traduction dans la langue indiquée de l'article portant ce numéro (et toujours celui-ci si la traduction n'est pas disponible).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _galaxie_/www.spip.net/squelettes/urls/trad.php

    r25398 r25729  
    33// executer une seule fois
    44if (defined("_INC_URLS2")) return;
    5 define("_INC_URLS2", "1");
     5define("_INC_URLS2", "1"); // est-ce encore utile ?
    66
    7 define('_TRAD_AIDE', "#^/aide/([^-]*)-aide\.html$#");
    8 define('_TRAD_MOT', "#^/(@[a-z_0-9,-]+)$#");
    9 define('_TRAD_RUBRIQUE', "#^/([a-z_]+)_$#");
    10 define('_TRAD_ARTICLE', "#^/(([a-z_]+)_)?(suivi|download)$#");
     7// Les cles de ce tableau sont reperees par le htaccess
     8$GLOBALS['articles_aide_en_ligne'] = array(
     9        'download' =>  2670,
     10        'suivi' => 2275,
     11        'article(\d+)\.html' => 0
     12        );
     13
     14@define('_TRAD_REWRITE_BASE', '/');
     15define('_TRAD_ARTICLE', '#^' . _TRAD_REWRITE_BASE . "(([a-z_]+)_)?(" .
     16       join('|', array_keys($GLOBALS['articles_aide_en_ligne'])) .
     17       ")$#");
     18define('_TRAD_AIDE',     '#^' . _TRAD_REWRITE_BASE . "aide/([^-]*)-aide\.html$#");
     19define('_TRAD_MOT',      '#^' . _TRAD_REWRITE_BASE . "(@[a-z_0-9,-]+)$#");
     20define('_TRAD_RUBRIQUE', '#^' . _TRAD_REWRITE_BASE . "([a-z_]+)_$#");
     21
    1122
    1223define('URLS_TRAD_EXEMPLE', 'fr_rubrique_91.html');
     
    158169        // si possible dans la langue, sinon en francais
    159170        else if (preg_match(_TRAD_ARTICLE, $url, $regs)) {
    160                 if ($regs[3] == 'download') {
    161                         $id_original = 2670;
    162                 } else {
    163                         $id_original = 2275;
    164                 }
    165171                $lang = $regs[2];
     172                $id_original = $GLOBALS['articles_aide_en_ligne'][$regs[3]];
     173                if (!$id_original) $id_original = intval($regs[4]);
    166174                $id_article = sql_getfetsel('id_article', 'spip_articles', "id_trad=$id_original AND statut='publie'", '',  "lang<>'$lang',lang<>'fr'");
    167175                if ($id_article)
     
    178186        }
    179187}
    180 
    181188?>
Note: See TracChangeset for help on using the changeset viewer.