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 
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 = ''