Changeset 60177 in spip-zone for _plugins_/compositions


Ignore:
Timestamp:
Apr 7, 2012, 6:03:17 PM (7 years ago)
Author:
cy_altern@…
Message:

utiliser les fonctions "officielles" table_objet_sql($type) et id_table_objet($type) plutot que des approximations de celles-ci... Merci Rastapopoulos!
Desormais la declaration d'un heritage de composition via le pipeline compositions_declarer_heritage se fait uniquement par:
$arrobjet? = 'parent';

Location:
_plugins_/compositions/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/compositions/trunk/compositions_fonctions.php

    r59991 r60177  
    225225 * Renvoie les parametres necessaires pour utiliser l'heritage de composition de façon generique
    226226 * pour les objets n'utilisant pas les rubriques comme source d'heritage
    227  * exploite le pipeline compositions_declarer_heritage
    228  * 2 possibilites pour les donnees du pipeline:
    229  *              $flux['machin'] = array('type_parent'=>'truc', 'table_parent'=>'spip_trucs', 'nom_id_parent'=>'id_truc');
    230  *              $flux['machin'] = 'truc';
     227 * recupere les donnes du pipeline compositions_declarer_heritage
    231228 *
    232229 * @param string $type
     
    234231 */
    235232function compositions_recuperer_heritage($type){
    236         // recuperer les heritages declares par le pipeline
     233        // recuperer les heritages declares via le pipeline compositions_declarer_heritage
    237234        $Theritages = array();
    238235        $Theritages = pipeline('compositions_declarer_heritage', $Theritages);
    239236
    240         // recuperer les infos pour les types ajoutes par le pipeline
    241         // et eventuellement faire une approximation spipienne des parametres manquants
    242237        if (array_key_exists($type, $Theritages)) {
    243                 $Ttype = $Theritages[$type];
    244                 $type_parent = ((is_array($Ttype) AND array_key_exists('type_parent', $Ttype)) ?
    245                         $Ttype['type_parent'] : (strval($Ttype) == $Ttype ? $Ttype : false));
    246                 $table_parents = ((is_array($Ttype) AND array_key_exists('table_parent', $Ttype)) ?
    247                         $Ttype['table_parent'] : 'spip_'.$type_parent.'s');
    248                 $nom_id_parent = ((is_array($Ttype) AND array_key_exists('nom_id_parent', $Ttype)) ?
    249                         $Ttype['nom_id_parent'] : 'id_'.$type_parent);
    250 
    251                 // verifier que table et champs existent...
    252                 $trouver_table = charger_fonction('trouver_table', 'base');
    253                 if (!$type_parent OR $type_parent == ''
    254                         OR!$desc = $trouver_table($table_parents,$serveur)
    255                         OR !isset($desc['field']['composition'])
    256                         OR !isset($desc['field'][$nom_id_parent]))
    257                         return '';
    258 
     238                $type_parent = $Theritages[$type];
    259239                // KISS: heritage a un seul niveau (pas de recursivite comme avec les rubriques)
    260240                $ancetres = false;
     241                $nom_id_ancetre = null;
    261242                $arr_sql = array('composition');
    262243        }
    263244        else {
    264245                $type_parent = 'rubrique';
    265                 $table_parents = 'spip_rubriques';
    266                 $nom_id_parent = 'id_rubrique';
    267                 $ancetres = true;
    268246                $nom_id_ancetre = 'id_parent';
    269247                $arr_sql = array($nom_id_ancetre,'composition');
    270248        }
     249        $table_parents =  table_objet_sql($type_parent);
     250        $nom_id_parent = id_table_objet($type_parent);
     251
     252        // verifier que table et champs existent...
     253        $trouver_table = charger_fonction('trouver_table', 'base');
     254        if (!$type_parent OR $type_parent == ''
     255                OR !$desc = $trouver_table($table_parents,$serveur)
     256                OR !isset($desc['field']['composition'])
     257                OR !isset($desc['field'][$nom_id_parent]))
     258                return '';
    271259
    272260        return array(
  • _plugins_/compositions/trunk/compositions_pipeline.php

    r60103 r60177  
    123123
    124124/**
    125  * pipeline pour ajout d'heritages de composition pour les objets non lies aux rubriques
    126  * 2 possibilites pour les donnees du pipeline qui permet a l'objet machin d'heriter de son parent truc:
    127  *              $flux['machin'] = array('type_parent'=>'truc', 'table_parent'=>'spip_trucs', 'nom_id_parent'=>'id_truc');
     125 * utilisation du pipeline compositions_declarer_heritage:
     126 * exemple pour faire heriter l'objet machin des compostions definies dans son parent truc:
    128127 *              $flux['machin'] = 'truc';
     128 * ce qui permet ensuite de faire dans le fichier truc-ma_compo.xml
     129 * <branche type="machin" composition="une_compo" />
    129130 *
    130131 * ajouter l'heritage pour les mots-cles (mieux ici que dans le plugin mots?)
    131132 *
    132133 */
    133 function compositions_declarer_heritage($arr){
    134         $arr['mot'] = array('type_parent'=>'groupe_mots', 'table_parent'=>'spip_groupes_mots', 'nom_id_parent'=>'id_groupe');
     134function compositions_compositions_declarer_heritage($arr){
     135        $arr['mot'] = 'groupe_mots';
     136       
    135137        return $arr;
    136138}
     139
     140
    137141?>
  • _plugins_/compositions/trunk/paquet.xml

    r59990 r60177  
    2424        <pipeline nom="styliser" inclure="compositions_pipeline.php" />
    2525        <pipeline nom="compositions_lister_disponibles" action="" />
    26         <pipeline nom="compositions_declarer_heritage" inclure="compositions_pipeline.php" />
     26        <pipeline nom="compositions_declarer_heritage" action="" />
     27
     28        <pipeline nom="compositions_declarer_heritage"  inclure="compositions_pipeline.php" />
    2729       
    2830
Note: See TracChangeset for help on using the changeset viewer.