Changeset 51809 in spip-zone


Ignore:
Timestamp:
Sep 25, 2011, 2:24:45 PM (8 years ago)
Author:
joseph@…
Message:

Corriger un problème d'héritage : la rubrique parent peut elle-même hériter une composition définissant des héritages.

Location:
_plugins_/compositions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/compositions/compositions_fonctions.php

    r50956 r51809  
    254254        if ($type=='syndic') $type='site'; //grml
    255255        if (intval($id_rubrique) < 1) return '';
    256         $infos = null;
     256        static $infos = null;
    257257        $id_parent = $id_rubrique;
     258        $compo_rubrique = '';
    258259        do {
    259260                $row = sql_fetsel(array('id_parent','composition'),'spip_rubriques','id_rubrique='.intval($id_parent),'','','','',$serveur);
    260                 if (strlen($row['composition']) AND is_null($infos))
     261                if (strlen($row['composition']) AND $row['composition']!='-')
     262                        $compo_rubrique = $row['composition'];
     263                elseif (strlen($row['composition'])==0) // il faut aussi verifier que la rub parente n'herite pas elle-meme d'une composition
     264                        $compo_rubrique = compositions_determiner('rubrique', $id_parent, $serveur='');
     265               
     266                if (strlen($compo_rubrique) AND is_null($infos))
    261267                        $infos = compositions_lister_disponibles('rubrique');
    262268        }
    263269        while ($id_parent = $row['id_parent']
    264270                AND
    265                 (!strlen($row['composition']) OR !isset($infos['rubrique'][$row['composition']]['branche'][$type])));
    266 
    267         if (strlen($row['composition']) AND isset($infos['rubrique'][$row['composition']]['branche'][$type]))
    268                 return $infos['rubrique'][$row['composition']]['branche'][$type];
     271                (!strlen($compo_rubrique) OR !isset($infos['rubrique'][$compo_rubrique]['branche'][$type])));
     272
     273        if (strlen($compo_rubrique) AND isset($infos['rubrique'][$compo_rubrique]['branche'][$type]))
     274                return $infos['rubrique'][$compo_rubrique]['branche'][$type];
    269275
    270276        return '';
  • _plugins_/compositions/plugin.xml

    r50791 r51809  
    66        </auteur>
    77        <licence>GPL</licence>
    8         <version>2.1.3</version>
     8        <version>2.1.4</version>
    99        <version_base>0.4.0</version_base>
    1010        <etat>test</etat>
Note: See TracChangeset for help on using the changeset viewer.