rubriques.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Functions
- calculer_rubriques_if() : mixed
- Recalcule les statuts d'une rubrique
- publier_branche_rubrique() : bool
- Publie une rubrique et sa hiérarchie de rubriques
- depublier_branche_rubrique_if() : bool
- Dépublie si nécessaire des éléments d'une hiérarchie de rubriques
- depublier_rubrique_if() : bool
- Dépublier une rubrique si aucun contenu publié connu n'est trouvé dedans
- calculer_rubriques() : mixed
- Recalcule des héritages de rubriques
- calculer_rubriques_publiees() : mixed
- Recalcule l'ensemble des données associées à l'arborescence des rubriques
- propager_les_secteurs() : mixed
- Recalcule les secteurs et les profondeurs des rubriques (et articles)
- calculer_langues_rubriques_etape() : bool
- Recalcule les langues héritées des sous-rubriques
- calculer_langues_rubriques() : mixed
- Recalcule les langues des rubriques et articles
- calculer_langues_utilisees() : string
- Calcule la liste des langues réellement utilisées dans le site public
- calcul_branche_in() : string
- Calcul d'une branche de rubrique
- calcul_hierarchie_in() : string
- Calcul d'une hiérarchie
- inc_calcul_branche_in_dist() : string
- Calcul d'une branche de rubriques
- inc_calcul_hierarchie_in_dist() : string
- Calcul d'une hiérarchie
- calculer_prochain_postdate() : mixed
- Calcule la date du prochain article post-daté
- creer_rubrique_nommee() : int
- Crée une arborescence de rubrique
Functions
calculer_rubriques_if()
Recalcule les statuts d'une rubrique
calculer_rubriques_if(int $id_rubrique, array<string|int, mixed> $modifs[, array<string|int, mixed> $infos = [] ][, bool $postdate = false ]) : mixed
Fonction à appeler lorsque le statut d'un objet change dans une rubrique ou que la rubrique est deplacée.
Si le statut passe a "publie", la rubrique et ses parents y passent aussi et les langues utilisees sont recalculées. Conséquences symétriques s'il est depublié.
S'il est deplacé alors qu'il était publiée, double conséquence.
Tout cela devrait passer en SQL, sous forme de Cascade SQL.
Parameters
- $id_rubrique : int
-
Identifiant de la rubrique
- $modifs : array<string|int, mixed>
-
Tableau de description des modifications. Peut avoir 2 index, 'statut' étant obligatoire :
- statut : indique le nouveau statut de la rubrique
- id_rubrique : indiquer la rubrique dans laquelle on déplace la rubrique (son nouveau parent donc)
- $infos : array<string|int, mixed> = []
-
Infos sur l'objet modifié : statut_ancien, objet, id_objet…
- $postdate : bool = false
-
true pour recalculer aussi la date du prochain article post-daté
Tags
publier_branche_rubrique()
Publie une rubrique et sa hiérarchie de rubriques
publier_branche_rubrique(int $id_rubrique) : bool
Fonction à appeler lorsqu'on dépublie ou supprime quelque chose dans une rubrique.
Parameters
- $id_rubrique : int
-
Identifiant de la rubrique
Tags
Return values
bool —true si le statut change effectivement
depublier_branche_rubrique_if()
Dépublie si nécessaire des éléments d'une hiérarchie de rubriques
depublier_branche_rubrique_if(int $id_rubrique) : bool
Fonction à appeler lorsqu'on dépublie ou supprime quelque chose dans une rubrique.
Parameters
- $id_rubrique : int
-
Identifiant de la rubrique
Tags
Return values
bool —true si le statut change effectivement
depublier_rubrique_if()
Dépublier une rubrique si aucun contenu publié connu n'est trouvé dedans
depublier_rubrique_if(int $id_rubrique[, string|null $date = null ]) : bool
Parameters
- $id_rubrique : int
-
Identifiant de la rubrique à tester
- $date : string|null = null
-
Date pour le calcul des éléments post-datés. null = date actuelle.
Tags
Return values
bool —true si la rubrique a été dépubliée
calculer_rubriques()
Recalcule des héritages de rubriques
calculer_rubriques() : mixed
Recalcule le statut des rubriques, les langues héritées et la date du prochain article post-daté
Cette fonction est appelée après importation: elle calcule les meta-donnes resultantes et remet de la coherence au cas où la base importée en manquait
Cette fonction doit etre invoquée sans processus concurrent potentiel.
Tags
calculer_rubriques_publiees()
Recalcule l'ensemble des données associées à l'arborescence des rubriques
calculer_rubriques_publiees() : mixed
Attention, faute de SQL transactionnel on travaille sur des champs temporaires afin de ne pas casser la base pendant la demi seconde de recalculs
Tags
propager_les_secteurs()
Recalcule les secteurs et les profondeurs des rubriques (et articles)
propager_les_secteurs() : mixed
Cherche les rubriques ayant des id_secteur ou profondeurs ne correspondant pas avec leur parent, et les met à jour. De même avec les articles et leur id_secteur On procede en iterant la profondeur de 1 en 1 pour ne pas risquer une boucle infinie sur reference circulaire
Tags
calculer_langues_rubriques_etape()
Recalcule les langues héritées des sous-rubriques
calculer_langues_rubriques_etape() : bool
Cherche les langues incorrectes de sous rubriques, qui doivent hériter de la rubrique parente lorsque langue_choisie est différent de oui, et les corrige.
Return values
bool —true si un changement a eu lieu
calculer_langues_rubriques()
Recalcule les langues des rubriques et articles
calculer_langues_rubriques() : mixed
Redéfinit la langue du site sur les rubriques sans langue spécifiée (langue_choisie différent de 'oui')
Redéfinit les langues des articles sans langue spécifiée (langue_choisie différent de 'oui') en les rebasant sur la langue de la rubrique parente lorsque ce n'est pas le cas.
Tags
calculer_langues_utilisees()
Calcule la liste des langues réellement utilisées dans le site public
calculer_langues_utilisees([string $serveur = '' ]) : string
La recherche de langue est effectuée en recréant une boucle pour chaque objet éditorial gérant des langues de sorte que les éléments non publiés ne sont pas pris en compte.
Parameters
- $serveur : string = ''
-
Nom du connecteur à la base de données
Tags
Return values
string —Liste des langues utilisées séparées par des virgules
calcul_branche_in()
Calcul d'une branche de rubrique
calcul_branche_in(string|int|array<string|int, mixed> $id) : string
Liste des id_rubrique contenues dans une rubrique donnée
Parameters
- $id : string|int|array<string|int, mixed>
-
Identifiant de la, ou des rubriques noeuds
Tags
Return values
string —Liste des identifiants séparés par des virgules, incluant les rubriques noeuds et toutes leurs descendances
calcul_hierarchie_in()
Calcul d'une hiérarchie
calcul_hierarchie_in(string|int|array<string|int, mixed> $id[, bool $tout = true ]) : string
Liste des id_rubrique contenant une rubrique donnée
Parameters
- $id : string|int|array<string|int, mixed>
-
Identifiant de la, ou des rubriques dont on veut obtenir les hierarchies
- $tout : bool = true
-
inclure la rubrique de depart dans la hierarchie ou non
Tags
Return values
string —Liste des identifiants séparés par des virgules, incluant les rubriques transmises et toutes leurs parentées
inc_calcul_branche_in_dist()
Calcul d'une branche de rubriques
inc_calcul_branche_in_dist(string|int|array<string|int, mixed> $id) : string
Liste des id_rubrique contenues dans une rubrique donnée pour le critere {branche}
Fonction surchargeable pour optimisation
Parameters
- $id : string|int|array<string|int, mixed>
-
Identifiant de la, ou des rubriques noeuds
Tags
Return values
string —Liste des identifiants séparés par des virgules, incluant les rubriques noeuds et toutes leurs descendances
inc_calcul_hierarchie_in_dist()
Calcul d'une hiérarchie
inc_calcul_hierarchie_in_dist(string|int|array<string|int, mixed> $id[, bool $tout = true ]) : string
Liste des id_rubrique contenant une rubrique donnée, contrairement à la fonction calcul_branche_in() qui calcule les rubriques contenues
Parameters
- $id : string|int|array<string|int, mixed>
-
Identifiant de la, ou des rubriques dont on veut obtenir les hierarchies
- $tout : bool = true
-
inclure la rubrique de depart dans la hierarchie ou non
Tags
Return values
string —Liste des identifiants séparés par des virgules, incluant les rubriques transmises et toutes leurs parentées
calculer_prochain_postdate()
Calcule la date du prochain article post-daté
calculer_prochain_postdate([bool $check = false ]) : mixed
Appelée lorsqu'un (ou plusieurs) article post-daté arrive à terme ou est redaté
Parameters
- $check : bool = false
-
true pour affecter le statut des rubriques concernées.
Tags
creer_rubrique_nommee()
Crée une arborescence de rubrique
creer_rubrique_nommee(string $titre[, int $id_parent = 0 ][, string $serveur = '' ]) : int
creer_rubrique_nommee('truc/machin/chose') va créer une rubrique truc, une sous-rubrique machin, et une sous-sous-rubrique chose, sans créer de rubrique si elle existe déjà à partir de $id_parent (par défaut, à partir de la racine)
NB: cette fonction est très pratique, mais pas utilisée dans le core pour rester légère elle n'appelle pas calculer_rubriques()
Parameters
- $titre : string
-
Titre des rubriques, séparés par des /
- $id_parent : int = 0
-
Identifiant de la rubrique parente
- $serveur : string = ''
-
Nom du connecteur à la base de données
Return values
int —Identifiant de la rubrique la plus profonde.