X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fplan%2Fplan_fonctions.php;fp=www%2Fplugins-dist%2Fplan%2Fplan_fonctions.php;h=38724d8082455c5ad95e5c4888178c11d6a4850c;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=0000000000000000000000000000000000000000;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/plan/plan_fonctions.php b/www/plugins-dist/plan/plan_fonctions.php new file mode 100644 index 00000000..38724d80 --- /dev/null +++ b/www/plugins-dist/plan/plan_fonctions.php @@ -0,0 +1,143 @@ +code; + + // #ENV{lister} + $lister = "(isset(\$Pile[0]['lister']) ? \$Pile[0]['lister'] : '')"; + + $p->code = "(($lister == 'tout') OR ($grand_total <= plan_limiter_listes()))"; + + return $p; +} + +/** + * Trouve les objets qui peuvent s'afficher dans le plan de page, dans une rubrique + * + * @return array [table -> chemin du squelette] + **/ +function plan_lister_objets_rubrique() { + static $liste = null; + if (is_null($liste)) { + $liste = array(); + $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']; + } + } + } + } + + return $liste; +} + +/** + * Trouve les objets qui peuvent s'afficher dans le plan de page, + * dans une rubrique ainsi que leurs statuts éventuels + * + * @note + * Tous les statuts sont ici retournés, même ceux que ne peuvent pas + * forcément utiliser l'auteur en cours. + * + * @see plan_lister_objets_rubrique_statuts_auteur() + * @uses plan_lister_objets_rubrique() + * + * @return array + **/ +function plan_lister_objets_rubrique_statuts() { + static $liste = null; + if (is_null($liste)) { + $objets = plan_lister_objets_rubrique(); + include_spip('inc/puce_statut'); + $liste = array(); + foreach ($objets as $table => $null) { + $desc = lister_tables_objets_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 = array(); + foreach ($statuts as $statut) { + $_statuts[$statut] = array( + 'image' => statut_image($objet, $statut), + 'titre' => statut_titre($objet, $statut), + ); + } + $liste[$objet] = $_statuts; + } + } + } + + return $liste; +} + + +/** + * Trouve les objets qui peuvent s'afficher dans le plan de page, + * dans une rubrique ainsi que leurs statuts utilisables pour l'auteur en cours + * + * @uses plan_lister_objets_rubrique_statuts() + * + * @return array + **/ +function plan_lister_objets_rubrique_statuts_auteur() { + static $liste = null; + if (is_null($liste)) { + $liste = plan_lister_objets_rubrique_statuts(); + include_spip('inc/session'); + foreach ($liste as $objet => $statuts) { + if ($objet == 'articles') { + $autorises = statuts_articles_visibles(session_get('statut')); + $statuts = array_intersect_key($statuts, array_flip($autorises)); + $liste[$objet] = $statuts; + } + } + } + + return $liste; +}