Skip to content

feat: déclaration des parents

tcharlss a demandé de fusionner dev/issue_7_declarer_parents vers master

Permettre à objet_lister_parents() d'inclure les rubriques indirectes également.

Fix: #7

Ça semble fonctionner, mais à relire et tester car les subtilités de l'API des parents ne sont pas encore documentées.

La déclaration :

[
	'type'              => 'rubrique',
	'champ'             => 'id_parent',
	'table'             => 'spip_rubriques_liens',
	'champ_type'        => 'id_parent', // = id_rubrique
	'source_champ'      => 'id_objet', // id_article
	'source_champ_type' => 'objet', // article
]

Exemple : mon article n°10 est directement dans la rubrique 1919, et indirectement dans les rubriques 4268 et 4008

objet_lister_parents_par_type('article', 10) :

array(1) {
  ["rubrique"]=>
  array(3) {
    [0]=>
    int(1919)
    [1]=>
    int(4268)
    [2]=>
    int(4008)
  }
}

objet_lister_parents('article', 10) :

array(3) {
  [0]=>
  array(4) {
    ["objet"]=>
    string(8) "rubrique"
    ["id_objet"]=>
    int(1919)
    ["champ"]=>
    string(11) "id_rubrique"
    ["table"]=>
    string(13) "spip_articles"
  }
  [1]=>
  array(5) {
    ["objet"]=>
    string(8) "rubrique"
    ["id_objet"]=>
    int(4268)
    ["champ"]=>
    string(9) "id_parent"
    ["table"]=>
    string(20) "spip_rubriques_liens"
    ["lien"]=>
    array(3) {
      ["id_parent"]=>
      string(4) "4268"
      ["id_objet"]=>
      string(6) "117680"
      ["objet"]=>
      string(7) "article"
    }
  }
  [2]=>
  array(5) {
    ["objet"]=>
    string(8) "rubrique"
    ["id_objet"]=>
    int(4008)
    ["champ"]=>
    string(9) "id_parent"
    ["table"]=>
    string(20) "spip_rubriques_liens"
    ["lien"]=>
    array(3) {
      ["id_parent"]=>
      string(4) "4008"
      ["id_objet"]=>
      string(6) "117680"
      ["objet"]=>
      string(7) "article"
    }
  }
}

Rapports de requête de fusion