Browse Source

Utiliser l'API parents/enfants pour listes les objets enfants de chaque rubrique, mais il faut quand meme que les objets concernés proposent un squelette prive/squelettes/inclure/plan-{table}.html pour qu'ils apparaissent dans le plan

remotes/checkIfPRContentChanged-1653038138584789461/master
Cerdic 8 months ago
parent
commit
25c1e97e99
  1. 39
      plan_fonctions.php
  2. 2
      prive/squelettes/inclure/plan-rubriques.html
  3. 2
      prive/squelettes/inclure/plan.html

39
plan_fonctions.php

@ -58,17 +58,29 @@ function balise_PLAN_AFFICHER_LISTE_dist($p) {
*
* @return array [table -> chemin du squelette]
**/
function plan_lister_objets_rubrique() {
static $liste = null;
if (is_null($liste)) {
$liste = [];
function plan_lister_objets_rubrique($id_rubrique = null) {
static $objets_possibles = null;
$liste = [];
if (is_null($objets_possibles)) {
// tous les objets possibles, pour style les icones
$objets_possibles = [];
$tables = lister_tables_objets_sql();
unset($tables['spip_rubriques']);
foreach ($tables as $cle => $desc) {
if (isset($desc['field']['id_rubrique'])) {
if (trouver_fond('prive/squelettes/inclure/plan-' . $desc['table_objet'])) {
$liste[$cle] = $desc['table_objet'];
}
if (trouver_fond('prive/squelettes/inclure/plan-' . $desc['table_objet'])) {
$objets_possibles[objet_type($cle)] = $desc['table_objet'];
}
}
}
if (is_null($id_rubrique)) {
$liste = $objets_possibles;
}
else {
$enfants = objet_lister_enfants('rubrique', $id_rubrique);
foreach ($enfants as $enfant) {
if (!isset($liste[$enfant['objet']]) and isset($objets_possibles[$enfant['objet']])) {
$liste[$enfant['objet']] = $objets_possibles[$enfant['objet']];
}
}
}
@ -95,21 +107,20 @@ function plan_lister_objets_rubrique_statuts() {
$objets = plan_lister_objets_rubrique();
include_spip('inc/puce_statut');
$liste = [];
foreach ($objets as $table => $null) {
$desc = lister_tables_objets_sql($table);
foreach ($objets as $objet => $table) {
$desc = lister_tables_objets_sql(table_objet_sql($table));
// l'objet possède un statut
if (!empty($desc['statut_textes_instituer'])) {
$statuts = array_keys($desc['statut_textes_instituer']);
$objet = $desc['table_objet'];
// obtenir titre et image du statut
$_statuts = [];
foreach ($statuts as $statut) {
$_statuts[$statut] = [
'image' => statut_image($objet, $statut),
'titre' => statut_titre($objet, $statut),
'image' => statut_image($table, $statut),
'titre' => statut_titre($table, $statut),
];
}
$liste[$objet] = $_statuts;
$liste[$table] = $_statuts;
}
}
}

2
prive/squelettes/inclure/plan-rubriques.html

@ -19,7 +19,7 @@
</a>
]
<BOUCLE_lister(CONDITION){si #ENV{lister}|in_any{#LISTE{rubrique,tout}}|oui}>
<BOUCLE_objets(DATA){source table, #REM|plan_lister_objets_rubrique}{par cle}>
<BOUCLE_objets(DATA){source table, #_rubriques:ID_RUBRIQUE|plan_lister_objets_rubrique}{par cle}>
[(#ENV{objet}|non|ou{#ENV{objet}|=={#VALEUR}})
<INCLURE{fond=prive/squelettes/inclure/plan-#VALEUR, id_rubrique=#_rubriques:ID_RUBRIQUE, env,
lister=#GET{lister}, conteneur=#GET{conteneur}}>

2
prive/squelettes/inclure/plan.html

@ -22,7 +22,7 @@ jQuery(function($){
icon: "rubrique"
},
objets: [
<BOUCLE_objets(DATA){source table, #REM|plan_lister_objets_rubrique}{", "}>
<BOUCLE_objets(DATA){source table, #NULL|plan_lister_objets_rubrique}{", "}>
{
icon: "[(#VALEUR|objet_type)]",
type: "[(#VALEUR|objet_type)]"

Loading…
Cancel
Save