Changeset 15678 in spip-zone


Ignore:
Timestamp:
Oct 2, 2007, 11:19:10 AM (13 years ago)
Author:
real3t@…
Message:

Suivre la SVN (http://trac.rezo.net/trac/spip/changeset/10478)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/plugins_1.9.3/plugins/__soyezcreateurs/public/composer.php

    r15664 r15678  
    324324
    325325// http://doc.spip.org/@calcul_exposer
    326 function calcul_exposer ($id, $type, $reference) {
     326function calcul_exposer ($id, $type, $reference, $parent) {
    327327        static $exposer;
    328328        static $ref_precedente;
     
    334334        if ($reference<>$ref_precedente) {
    335335                $ref_precedente = $reference;
    336                 $exposer = array();
    337                 foreach ($reference as $element=>$v) {
    338                         if ((strpos($element, "id_") === 0) AND $v) {
    339                                 $x = substr($element, 3);
    340                                 if ($x == 'secteur') $x = 'rubrique';
    341                                 $desc = trouver_table(table_objet($x));
    342                                 if ($desc) {
    343                                         $table = $desc['table'];
    344                                         $exposer[$element][$v] = true;
    345                                         if (isset($desc['field']['id_rubrique'])) {
    346                                                 $row = sql_fetsel('id_rubrique', $table, ("$element=" . _q($v)));
    347                                         $hierarchie = calculer_hierarchie($row['id_rubrique']);
    348                                 foreach (split(',',$hierarchie) as $id_rubrique)
    349                                         $exposer['id_rubrique'][$id_rubrique] = true;
    350                                 }
    351                         }
    352                 }
     336                $principal = $reference[$type];
     337                $exposer= array($type => array($principal => true));
     338                if ($principal AND $parent) {
     339                        foreach(split(',',calculer_hierarchie($parent)) as $n)
     340                                $exposer['id_rubrique'][$n] = true;
    353341        }
    354342        }
     
    502490
    503491// Ajouter "&lang=..." si la langue de base n'est pas celle du site.
    504 // Si le 2e parametre est "-1", c'est qu'on n'a pas pu
     492// Si le 2e parametre n'est pas une chaine, c'est qu'on n'a pas pu
    505493// determiner la table a la compil, on le fait maintenant.
    506494// Il faudrait encore completer: on ne connait pas la langue
     
    510498// http://doc.spip.org/@lang_parametres_forum
    511499function lang_parametres_forum($qs, $lang) {
    512         if ($lang == -1 AND preg_match(',id_(\w+)=([0-9]+),', $qs, $r)) {
    513                 $desc = trouver_table(table_objet($r[1]));
    514                 if (!$desc OR !isset($desc['field']['lang'])) return '';
    515                 $lang = sql_getfetsel('lang', $desc['table'], ("id_$r[1]=" . intval($r[2])));
     500        if (is_array($lang) AND preg_match(',id_(\w+)=([0-9]+),', $qs, $r)) {
     501                $id = 'id_' . $r[1];
     502                if ($t = $lang[$id])
     503                        $lang = sql_getfetsel('lang', $t, "$id=" . $r[2]);
    516504        }
    517505        // Si ce n'est pas la meme que celle du site, l'ajouter aux parametres
     506
    518507        if ($lang AND $lang <> $GLOBALS['meta']['langue_site'])
    519508                return $qs . "&lang=" . $lang;
Note: See TracChangeset for help on using the changeset viewer.