Documentation du code de SPIP et de ses plugins

SPIP

fonctions.php

Des fonctions diverses utilisees lors du calcul d'une page ; ces fonctions bien pratiques n'ont guere de logique organisationnelle ; elles sont appelees par certaines balises ou criteres au moment du calcul des pages. (Peut-on trouver un modele de donnees qui les associe physiquement au fichier definissant leur balise ???)

Ce ne sont pas des filtres à part entière, il n'est donc pas logique de les retrouver dans inc/filtres

Table of Contents

Constants

_PAGINATION_NOMBRE_LIENS_MAX  = 10
_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE  = 5

Functions

filtre_introduction_dist()  : string
Calcul d'une introduction
filtre_pagination_dist()  : string
Filtre calculant une pagination, utilisé par la balise `#PAGINATION`
filtre_bornes_pagination_dist()  : array<string|int, int>
Calcule les bornes d'une pagination
filtre_pagination_affiche_texte_lien_page_dist()  : mixed
lister_objets_avec_logos()  : string
Retourne pour une clé primaire d'objet donnée les identifiants ayant un logo
calculer_notes()  : string
Renvoie l'état courant des notes, le purge et en prépare un nouveau
retrouver_rang_lien()  : string
Retrouver le rang du lien entre un objet source et un obet lie utilisable en direct dans un formulaire d'edition des liens, mais #RANG doit faire le travail automatiquement [(#ENV{objet_source}|rang_lien{#ID_AUTEUR,#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}})]
lister_objets_liens()  : mixed
Lister les liens en le memoizant dans une static pour utilisation commune par lister_objets_lies et retrouver_rang_lien dans un formulaire d'edition de liens (evite de multiplier les requetes)
calculer_rang_smart()  : int|string
Calculer la balise #RANG quand ce n'est pas un champ rang : peut etre le num titre, le champ rang_lien ou le rang du lien en edition des liens, a retrouver avec les infos du formulaire
calculer_balise_tri()  : string
Calcul de la balise #TRI
tri_protege_champ()  : string
Proteger les champs passes dans l'url et utiliser dans {tri ...} preserver l'espace pour interpreter ensuite num xxx et multi xxx on permet d'utiliser les noms de champ prefixes articles.titre et les propriete json properties.gis[0].ville
tri_champ_order()  : string
Interpreter les multi xxx et num xxx utilise comme tri pour la clause order 'multi xxx' devient simplement 'multi' qui est calcule dans le select
tri_champ_select()  : string
Interpreter les multi xxx et num xxx utilise comme tri pour la clause select 'multi xxx' devient select "...." as multi les autres cas ne produisent qu'une chaine vide '' en select 'hasard' devient 'rand() AS hasard' dans le select
formate_liste_critere_par_ordre_liste()  : string
Fonction de mise en forme utilisee par le critere {par_ordre_liste..}
filtre_styles_inline_page_login_pass_dist()  : string
generer le style dynamique inline pour la page de login et spip_pass

Constants

_PAGINATION_NOMBRE_LIENS_MAX

public mixed _PAGINATION_NOMBRE_LIENS_MAX = 10

_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE

public mixed _PAGINATION_NOMBRE_LIENS_MAX_ECRIRE = 5

Functions

filtre_introduction_dist()

Calcul d'une introduction

filtre_introduction_dist(string $descriptif, string $texte, string $longueur, string $connect[, string $suite = null ]) : string

L'introduction est prise dans le descriptif s'il est renseigné, sinon elle est calculée depuis le texte : à ce moment là, l'introduction est prise dans le contenu entre les balises <intro> et </intro> si présentes, sinon en coupant le texte à la taille indiquée.

Cette fonction est utilisée par la balise #INTRODUCTION

Parameters
$descriptif : string

Descriptif de l'introduction

$texte : string

texte à utiliser en absence de descriptif

$longueur : string

Longueur de l'introduction

$connect : string

Nom du connecteur à la base de données

$suite : string = null

points de suite si on coupe (par defaut _INTRODUCTION_SUITE et sinon  (...)

Tags
used-by
generer_objet_introduction()
Return values
string

Introduction calculée

filtre_pagination_dist()

Filtre calculant une pagination, utilisé par la balise `#PAGINATION`

filtre_pagination_dist(int $total, string $nom, int $position, int $pas[, bool $liste = true ][, string $modele = '' ][, string $connect = '' ][, array<string|int, mixed> $env = [] ]) : string

Le filtre cherche le modèle pagination.html par défaut, mais peut chercher un modèle de pagination particulier avec l'argument $modele. S'il $modele='prive', le filtre cherchera le modèle pagination_prive.html.

Parameters
$total : int

Nombre total d'éléments

$nom : string

Nom identifiant la pagination

$position : int

Page à afficher (tel que la 3è page)

$pas : int

Nombre d'éléments par page

$liste : bool = true
  • True pour afficher toute la liste des éléments,
  • False pour n'afficher que l'ancre
$modele : string = ''

Nom spécifique du modèle de pagination

$connect : string = ''

Nom du connecteur à la base de données

$env : array<string|int, mixed> = []

Environnement à transmettre au modèle

Tags
filtre
see
balise_PAGINATION_dist()
Return values
string

Code HTML de la pagination

filtre_bornes_pagination_dist()

Calcule les bornes d'une pagination

filtre_bornes_pagination_dist(int $courante, int $nombre[, int $max = 10 ]) : array<string|int, int>
Parameters
$courante : int

Page courante

$nombre : int

Nombre de pages

$max : int = 10

Nombre d'éléments par page

Tags
filtre
Return values
array<string|int, int>

Liste (première page, dernière page).

filtre_pagination_affiche_texte_lien_page_dist()

filtre_pagination_affiche_texte_lien_page_dist(mixed $type_pagination, mixed $numero_page, mixed $rang_item) : mixed
Parameters
$type_pagination : mixed
$numero_page : mixed
$rang_item : mixed

lister_objets_avec_logos()

Retourne pour une clé primaire d'objet donnée les identifiants ayant un logo

lister_objets_avec_logos(string $type) : string
Parameters
$type : string

Nom de la clé primaire de l'objet

Tags
used-by
critere_logo_dist()

Pour obtenir les éléments qui ont un logo

Return values
string

Liste des identifiants ayant un logo (séparés par une virgule)

calculer_notes()

Renvoie l'état courant des notes, le purge et en prépare un nouveau

calculer_notes() : string

Fonction appelée par la balise #NOTES

Tags
see
balise_NOTES_dist()
uses
inc_notes_dist()
Return values
string

Code HTML des notes

retrouver_rang_lien()

Retrouver le rang du lien entre un objet source et un obet lie utilisable en direct dans un formulaire d'edition des liens, mais #RANG doit faire le travail automatiquement [(#ENV{objet_source}|rang_lien{#ID_AUTEUR,#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}})]

retrouver_rang_lien(string $objet_source, int $ids, string $objet_lie, int $idl, string $objet_lien) : string
Parameters
$objet_source : string
$ids : int
$objet_lie : string
$idl : int
$objet_lien : string
Return values
string

lister_objets_liens()

Lister les liens en le memoizant dans une static pour utilisation commune par lister_objets_lies et retrouver_rang_lien dans un formulaire d'edition de liens (evite de multiplier les requetes)

lister_objets_liens(string $objet_source, string $objet, int $id_objet, string $objet_lien) : mixed
Parameters
$objet_source : string
$objet : string
$id_objet : int
$objet_lien : string
Tags
private

calculer_rang_smart()

Calculer la balise #RANG quand ce n'est pas un champ rang : peut etre le num titre, le champ rang_lien ou le rang du lien en edition des liens, a retrouver avec les infos du formulaire

calculer_rang_smart(string $titre, string $objet_source, int $id, array<string|int, mixed> $env) : int|string
Parameters
$titre : string
$objet_source : string
$id : int
$env : array<string|int, mixed>
Return values
int|string

calculer_balise_tri()

Calcul de la balise #TRI

calculer_balise_tri(string $champ_ou_sens, string $libelle, string $classe, string $tri_nom, string $tri_champ, string $tri_sens, array<string|int, mixed>|string|int $liste_tri_sens_defaut[, string $nom_pagination = '' ]) : string
Parameters
$champ_ou_sens : string
  • soit le nom de champ sur lequel effectuer le nouveau tri
  • soit < et > pour définir le sens du tri sur le champ actuel
$libelle : string

Texte du lien

$classe : string

Classe ajoutée au lien, telle que ajax

$tri_nom : string

Nom du paramètre définissant le tri

$tri_champ : string

Nom du champ actuel utilisé pour le tri

$tri_sens : string

Sens de tri actuel, 1 ou -1

$liste_tri_sens_defaut : array<string|int, mixed>|string|int

Soit la liste des sens de tri par défaut pour chaque champ Soit une valeur par défaut pour tous les champs (1, -1, inverse)

$nom_pagination : string = ''

Nom de la boucle

Return values
string

HTML avec un lien cliquable

tri_protege_champ()

Proteger les champs passes dans l'url et utiliser dans {tri ...} preserver l'espace pour interpreter ensuite num xxx et multi xxx on permet d'utiliser les noms de champ prefixes articles.titre et les propriete json properties.gis[0].ville

tri_protege_champ(string $t) : string
Parameters
$t : string
Return values
string

tri_champ_order()

Interpreter les multi xxx et num xxx utilise comme tri pour la clause order 'multi xxx' devient simplement 'multi' qui est calcule dans le select

tri_champ_order(string $t[, array<string|int, mixed> $from = null ][, mixed $senstri = '' ]) : string
Parameters
$t : string
$from : array<string|int, mixed> = null
$senstri : mixed = ''
Return values
string

tri_champ_select()

Interpreter les multi xxx et num xxx utilise comme tri pour la clause select 'multi xxx' devient select "...." as multi les autres cas ne produisent qu'une chaine vide '' en select 'hasard' devient 'rand() AS hasard' dans le select

tri_champ_select(string $t) : string
Parameters
$t : string
Return values
string

formate_liste_critere_par_ordre_liste()

Fonction de mise en forme utilisee par le critere {par_ordre_liste..}

formate_liste_critere_par_ordre_liste(array<string|int, mixed> $valeurs[, string $serveur = '' ]) : string
Parameters
$valeurs : array<string|int, mixed>
$serveur : string = ''
Tags
see
critere_par_ordre_liste_dist()
Return values
string

filtre_styles_inline_page_login_pass_dist()

generer le style dynamique inline pour la page de login et spip_pass

filtre_styles_inline_page_login_pass_dist(array<string|int, mixed> &$Pile,  ...$dummy) : string
Parameters
$Pile : array<string|int, mixed>

Pile de données

$dummy :
Return values
string

        
On this page

Search results