Gestion unifiée du champ id_parent pour les objets dans les rubriques (API objet_get_rubrique)
Un debuging du plugin autorite a mis en évidence le besoin et le manque d'une API sur les "rubriques contenant" d'un objet de type quelconque.
Voici un début de code
// yeah function objet_get_rubrique ($objet, $id_objet) { switch ($objet) { case 'article' : case 'rubrique' : case 'breve' : return sql_getfetsel("id_rubrique", "spip_".$objet."s", "id_$objet=$id_objet"); case 'forum' : if (intval($GLOBALS['spip_version_branche']) < 3 ){ $id_rubrique = sql_getfetsel("id_rubrique", "spip_forum", "id_forum=$id"); if (!$id_rubrique AND ($id_article = sql_getfetsel("id_article", "spip_forum", "id_forum=$id")) $id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=$id_article"); if (!$id_rubrique AND ($id_breve = sql_getfetsel("id_breve", "spip_forum", "id_forum=$id")) $id_rubrique = sql_getfetsel("id_rubrique", "spip_breves", "id_breve=$id_breve"); } else { list ($objet,$id_objet) = sql_fetsel("objet, id_objet", "spip_forum", "id_forum=$id"); if ($objet == "rubrique") $id_rubrique=$id_objet; else return objet_get_rubrique ($objet, $id_objet) } default : // on pourrait tester si ya un champ id_rubrique ou id_secteur dans la table objet, et si c'est le cas en renvoyer la valeur return 0; } }
Cette fonction devra pouvoir être personnalisée pour les nouveaux objets. Avec un mécanisme comme pour les autorisations ? (genre appeler objet_get_rubrique_chat si cette fonction est définie, pour choper la rubrique d'un objet chat)
A noter que la notion de 'rubrique contenant' est spécifique.
Il y a aussi peut être aussi une notion de 'contenant plus large' (par exemple les groupemots, pour les mots), qu'il ne faut pas confondre.
Modification effectuée par JamesRezo