Documentation du code de SPIP et de ses plugins

SPIP

rubriques.php

Table of Contents

Functions

calculer_rubriques_if()  : void
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()  : void
Recalcule des héritages de rubriques
calculer_rubriques_publiees()  : void
Recalcule l'ensemble des données associées à l'arborescence des rubriques
propager_les_secteurs()  : void
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()  : void
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()  : void
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 ]) : void

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
uses
depublier_branche_rubrique_if()
uses
calculer_prochain_postdate()
uses
publier_branche_rubrique()

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
todo

Le nom de la fonction est trompeur, vu que la fonction remonte dans la hierarchie !

used-by
calculer_rubriques_if()
used-by
calculer_prochain_postdate()
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
uses
depublier_rubrique_if()
todo

Le nom de la fonction est trompeur, vu que la fonction remonte dans la hierarchie !

used-by
calculer_rubriques_if()
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
pipeline_appel

objet_compte_enfants

used-by
depublier_branche_rubrique_if()
Return values
bool

true si la rubrique a été dépubliée

calculer_rubriques()

Recalcule des héritages de rubriques

calculer_rubriques() : void

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
uses
calculer_rubriques_publiees()
uses
calculer_langues_utilisees()
uses
calculer_prochain_postdate()
used-by
base_repair_dist()

calculer_rubriques_publiees()

Recalcule l'ensemble des données associées à l'arborescence des rubriques

calculer_rubriques_publiees() : void

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
pipeline_appel

calculer_rubriques

used-by
calculer_rubriques()

propager_les_secteurs()

Recalcule les secteurs et les profondeurs des rubriques (et articles)

propager_les_secteurs() : void

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
pipeline_appel

trig_propager_les_secteurs

used-by
base_repair_dist()

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() : void

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
uses
calculer_langues_rubriques_etape()
pipeline_appel

trig_calculer_langues_rubriques

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
used-by
calculer_rubriques()
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
see
inc_calcul_branche_in_dist()
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
see
inc_calcul_hierarchie_in_dist()
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
see
inc_calcul_hierarchie_in_dist()

pour la hierarchie

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
see
inc_calcul_branche_in_dist()

pour la descendence

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 ]) : void

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
uses
publier_branche_rubrique()
pipeline_appel

trig_calculer_prochain_postdate

used-by
calculer_rubriques_if()
used-by
calculer_rubriques()

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.


        
On this page

Search results