composer.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
Constants
- CODE_INCLURE_BALISE = '<' . '?php include_once("%s"); if ($lang_select = "%s") $lang_select = lang_select($lang_select); inserer_balise_dynamique(balise_%s_dyn(%s), array(%s)); if ($lang_select) lang_select(); ?' . '>'
- Code PHP pour inclure une balise dynamique à l'exécution d'une page
Functions
- public_composer_dist() : mixed
- squelette_traduit() : mixed
- squelette_obsolete() : mixed
- invalideur_session() : mixed
- analyse_resultat_skel() : mixed
- synthetiser_balise_dynamique() : string
- Synthétise une balise dynamique : crée l'appel à l'inclusion en transmettant les arguments calculés et le contexte de compilation.
- argumenter_squelette() : string
- Crée le code PHP pour transmettre des arguments (généralement pour une inclusion)
- executer_balise_dynamique_dans_un_modele() : string
- Fonction proxy pour retarder le calcul d'un formulaire si on est au depart dans un modele
- executer_balise_dynamique() : string
- Calcule et retourne le code PHP retourné par l'exécution d'une balise dynamique.
- chercher_balise_generique() : array<string|int, mixed>|null
- Pour une balise "NOM" donné, cherche s'il existe une balise générique qui peut la traiter
- lang_select_public() : mixed
- Selectionner la langue de l'objet dans la boucle
- nettoyer_env_doublons() : mixed
- match_self() : string|bool
- Cherche la présence d'un opérateur SELF ou SUBSELECT
- remplace_sous_requete() : array<string|int, mixed>|string
- Remplace une condition décrivant une sous requête par son code
- trouver_sous_requetes() : array<string|int, mixed>
- Sépare les conditions de boucles simples de celles possédant des sous-requêtes.
- calculer_select() : mixed
- preparer_calculer_select() : array{select: array, from: array, where: array, orderby: string, having: array, serveur: string, requeter: bool|array|string, debug: array}
- Calcule une requête et l’exécute
- executer_calculer_select() : mixed
- compter_calculer_select() : int
- calculer_where_to_string() : string
- Analogue a calculer_mysql_expression et autre (a unifier ?)
- calculer_jointnul() : mixed
- reinjecte_joint() : mixed
- remplacer_jointnul() : mixed
- calculer_nom_fonction_squel() : mixed
Constants
CODE_INCLURE_BALISE
Code PHP pour inclure une balise dynamique à l'exécution d'une page
public
mixed
CODE_INCLURE_BALISE
= '<' . '?php
include_once("%s");
if ($lang_select = "%s") $lang_select = lang_select($lang_select);
inserer_balise_dynamique(balise_%s_dyn(%s), array(%s));
if ($lang_select) lang_select();
?' . '>'
Functions
public_composer_dist()
public_composer_dist(mixed $squelette, mixed $mime_type, mixed $gram, mixed $source[, string $connect = '' ]) : mixed
Parameters
- $squelette : mixed
- $mime_type : mixed
- $gram : mixed
- $source : mixed
- $connect : string = ''
squelette_traduit()
squelette_traduit(mixed $squelette, mixed $sourcefile, mixed $phpfile, mixed $boucles) : mixed
Parameters
- $squelette : mixed
- $sourcefile : mixed
- $phpfile : mixed
- $boucles : mixed
squelette_obsolete()
squelette_obsolete(mixed $skel, mixed $squelette) : mixed
Parameters
- $skel : mixed
- $squelette : mixed
invalideur_session()
invalideur_session(mixed &$Cache[, mixed $code = null ]) : mixed
Parameters
- $Cache : mixed
- $code : mixed = null
analyse_resultat_skel()
analyse_resultat_skel(mixed $nom, mixed $cache, mixed $corps[, mixed $source = '' ]) : mixed
Parameters
- $nom : mixed
- $cache : mixed
- $corps : mixed
- $source : mixed = ''
synthetiser_balise_dynamique()
Synthétise une balise dynamique : crée l'appel à l'inclusion en transmettant les arguments calculés et le contexte de compilation.
synthetiser_balise_dynamique(string $nom, array<string|int, mixed> $args, string $file, array<string|int, mixed> $context_compil) : string
Parameters
- $nom : string
-
Nom de la balise dynamique
- $args : array<string|int, mixed>
-
Liste des arguments calculés
- $file : string
-
Chemin du fichier de squelette à inclure
- $context_compil : array<string|int, mixed>
-
Tableau d'informations sur la compilation
Tags
Return values
string —Code PHP pour inclure le squelette de la balise dynamique
argumenter_squelette()
Crée le code PHP pour transmettre des arguments (généralement pour une inclusion)
argumenter_squelette(array<string|int, mixed>|string $v) : string
Parameters
- $v : array<string|int, mixed>|string
-
Arguments à transmettre :
- string : un simple texte à faire écrire
- array : couples ('nom' => 'valeur') liste des arguments et leur valeur
Tags
Return values
string —- Code PHP créant le tableau des arguments à transmettre,
- ou texte entre quote
'
(si$v
était une chaîne)
executer_balise_dynamique_dans_un_modele()
Fonction proxy pour retarder le calcul d'un formulaire si on est au depart dans un modele
executer_balise_dynamique_dans_un_modele(mixed ...$args) : string
un modele est toujours inséré en texte dans son contenant donc si on est dans le public avec un cache on va perdre le dynamisme et on risque de mettre en cache les valeurs pre-remplies du formulaire on passe donc par une fonction proxy qui si besoin va collecter les arguments et injecter le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction (dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave))
Parameters
- $args : mixed
Tags
Return values
stringexecuter_balise_dynamique()
Calcule et retourne le code PHP retourné par l'exécution d'une balise dynamique.
executer_balise_dynamique(string $nom, array<string|int, mixed> $args, array<string|int, mixed> $context_compil) : string
Vérifier les arguments et filtres et calcule le code PHP à inclure.
- charge le fichier PHP de la balise dynamique dans le répertoire
balise/
, soit du nom complet de la balise, soit d'un nom générique (comme 'formulaire_.php'). Dans ce dernier cas, le nom de la balise est ajouté en premier argument. - appelle une éventuelle fonction de traitement des arguments
balise_NOM_stat()
- crée le code PHP de la balise si une fonction
balise_NOM_dyn()
(ou variantes) est effectivement trouvée.
Parameters
- $nom : string
-
Nom de la balise dynamique
- $args : array<string|int, mixed>
-
Liste des arguments calculés de la balise
- $context_compil : array<string|int, mixed>
-
Tableau d'informations sur la compilation
Tags
Return values
string —Code PHP d'exécutant l'inclusion du squelette (ou texte) de la balise dynamique
chercher_balise_generique()
Pour une balise "NOM" donné, cherche s'il existe une balise générique qui peut la traiter
chercher_balise_generique(string $nom) : array<string|int, mixed>|null
Le nom de balise doit contenir au moins un souligné "A_B", auquel cas on cherche une balise générique "A_"
S'il y a plus d'un souligné, tel que "A_B_C_D" on cherche différentes balises génériques en commençant par la plus longue possible, tel que "A_B_C_", sinon "A_B_" sinon "A_"
Parameters
- $nom : string
Return values
array<string|int, mixed>|nulllang_select_public()
Selectionner la langue de l'objet dans la boucle
lang_select_public(string $lang, string $lang_select[, null|string $titre = null ]) : mixed
Applique sur un item de boucle la langue de l'élément qui est parcourru. Sauf dans les cas ou il ne le faut pas !
La langue n'est pas modifiée lorsque :
- la globale 'forcer_lang' est définie à true
- l'objet ne définit pas de langue
- le titre contient une balise multi.
Parameters
- $lang : string
-
Langue de l'objet
- $lang_select : string
-
'oui' si critère lang_select est présent, '' sinon.
- $titre : null|string = null
-
Titre de l'objet
Tags
nettoyer_env_doublons()
nettoyer_env_doublons(mixed $envd) : mixed
Parameters
- $envd : mixed
match_self()
Cherche la présence d'un opérateur SELF ou SUBSELECT
match_self(string|array<string|int, mixed> $w) : string|bool
Cherche dans l'index 0 d'un tableau, la valeur SELF ou SUBSELECT indiquant pour une expression WHERE de boucle que nous sommes face à une sous-requête.
Cherche de manière récursive également dans les autres valeurs si celles-ci sont des tableaux
Parameters
- $w : string|array<string|int, mixed>
-
Description d'une condition WHERE de boucle (ou une partie de cette description)
Return values
string|bool —Opérateur trouvé (SELF ou SUBSELECT) sinon false.
remplace_sous_requete()
Remplace une condition décrivant une sous requête par son code
remplace_sous_requete(array<string|int, mixed>|string $w, string $sousrequete) : array<string|int, mixed>|string
Parameters
- $w : array<string|int, mixed>|string
-
Description d'une condition WHERE de boucle (ou une partie de cette description) qui possède une description de sous-requête
- $sousrequete : string
-
Code PHP de la sous requête (qui doit remplacer la description)
Return values
array<string|int, mixed>|string —Tableau de description du WHERE dont la description de sous-requête est remplacée par son code.
trouver_sous_requetes()
Sépare les conditions de boucles simples de celles possédant des sous-requêtes.
trouver_sous_requetes(array<string|int, mixed> $where) : array<string|int, mixed>
Parameters
- $where : array<string|int, mixed>
-
Description d'une condition WHERE de boucle
Return values
array<string|int, mixed> —Liste de 2 tableaux :
- Conditions simples (ne possédant pas de sous requêtes)
- Conditions avec des sous requêtes
calculer_select()
calculer_select(mixed ...$args) : mixed
Parameters
- $args : mixed
Tags
preparer_calculer_select()
Calcule une requête et l’exécute
preparer_calculer_select([array<string|int, mixed> $select = [] ][, array<string|int, mixed> $from = [] ][, array<string|int, mixed> $from_type = [] ][, array<string|int, mixed> $where = [] ][, array<string|int, mixed> $join = [] ][, array<string|int, mixed> $groupby = [] ][, array<string|int, mixed> $orderby = [] ][, string $limit = '' ][, array<string|int, mixed> $having = [] ][, string $table = '' ][, string $id = '' ][, string $serveur = '' ][, bool|array<string|int, mixed>|string $requeter = true ]) : array{select: array, from: array, where: array, orderby: string, having: array, serveur: string, requeter: bool|array|string, debug: array}
Cette fonction est présente dans les squelettes compilés. Elle peut permettre de générer des requêtes avec jointure.
Parameters
- $select : array<string|int, mixed> = []
- $from : array<string|int, mixed> = []
- $from_type : array<string|int, mixed> = []
- $where : array<string|int, mixed> = []
- $join : array<string|int, mixed> = []
- $groupby : array<string|int, mixed> = []
- $orderby : array<string|int, mixed> = []
- $limit : string = ''
- $having : array<string|int, mixed> = []
- $table : string = ''
- $id : string = ''
- $serveur : string = ''
- $requeter : bool|array<string|int, mixed>|string = true
Return values
array{select: array, from: array, where: array, orderby: string, having: array, serveur: string, requeter: bool|array|string, debug: array}executer_calculer_select()
executer_calculer_select(array<string|int, mixed> $requete) : mixed
Parameters
- $requete : array<string|int, mixed>
compter_calculer_select()
compter_calculer_select(array<string|int, mixed> $requete) : int
Parameters
- $requete : array<string|int, mixed>
Return values
intcalculer_where_to_string()
Analogue a calculer_mysql_expression et autre (a unifier ?)
calculer_where_to_string(string|array<string|int, mixed> $v[, string $join = 'AND' ]) : string
Parameters
- $v : string|array<string|int, mixed>
- $join : string = 'AND'
Return values
stringcalculer_jointnul()
calculer_jointnul(mixed $cle, mixed $exp[, mixed $equiv = '' ]) : mixed
Parameters
- $cle : mixed
- $exp : mixed
- $equiv : mixed = ''
reinjecte_joint()
reinjecte_joint(mixed $afrom, mixed $from) : mixed
Parameters
- $afrom : mixed
- $from : mixed
remplacer_jointnul()
remplacer_jointnul(mixed $cle, mixed $exp[, mixed $equiv = '' ]) : mixed
Parameters
- $cle : mixed
- $exp : mixed
- $equiv : mixed = ''
calculer_nom_fonction_squel()
calculer_nom_fonction_squel(mixed $skel[, mixed $mime_type = 'html' ][, string $connect = '' ]) : mixed
Parameters
- $skel : mixed
- $mime_type : mixed = 'html'
- $connect : string = ''