Skip to content
Extraits de code Groupes Projets
Valider 849fbf49 rédigé par esj's avatar esj
Parcourir les fichiers

Fusion de la sérire de fonctions balise_formulaire_traitement et de la série...

Fusion de la sérire de fonctions balise_formulaire_traitement et de la série de globale formulaire_traitement_collecte à l'intérieur de la série de fonctions balise_formulaire. Les couples de fonctions _stat et _dyn restent en place.

Il y avait beaucoup de variables et d'arguments inutiles dans menu_lang et menu_lang_ecrire, dont l'un avait le gros défaut de faire boucler la nouvelle API
(la balise menu_lang a besoin de la valeur de menu_lang qui n'est pas forcement
une variable d'URL mais, sait-on jamais, une balise. A eviter). Il y a peut-etre une simplification excessive, pourtant le multi-linguisme semble toujours marcher.
parent 94f930df
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
global $balise_FORMULAIRE_ADMIN_collecte ;
$balise_FORMULAIRE_ADMIN_collecte = array(); function balise_FORMULAIRE_ADMIN ($p) {
return calculer_balise_dynamique($p,'FORMULAIRE_ADMIN', array());
}
# on ne peut rien dire au moment de l'execution du squelette # on ne peut rien dire au moment de l'execution du squelette
...@@ -179,6 +181,4 @@ function afficher_raccourci_stats($id_article) { ...@@ -179,6 +181,4 @@ function afficher_raccourci_stats($id_article) {
} }
function balise_FORMULAIRE_ADMIN ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_ADMIN');}
?> ?>
...@@ -15,8 +15,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite ...@@ -15,8 +15,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// On prend l'email dans le contexte de maniere a ne pas avoir a le // On prend l'email dans le contexte de maniere a ne pas avoir a le
// verifier dans la base ni a le devoiler au visiteur // verifier dans la base ni a le devoiler au visiteur
global $balise_FORMULAIRE_ECRIRE_AUTEUR_collecte;
$balise_FORMULAIRE_ECRIRE_AUTEUR_collecte = array('id_auteur', 'id_article', 'email');
function balise_FORMULAIRE_ECRIRE_AUTEUR ($p) {
return calculer_balise_dynamique($p,'FORMULAIRE_ECRIRE_AUTEUR', array('id_auteur', 'id_article', 'email'));
}
function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) { function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) {
include_spip('inc/filtres'); include_spip('inc/filtres');
...@@ -93,6 +96,4 @@ function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) { ...@@ -93,6 +96,4 @@ function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) {
) )
); );
} }
function balise_FORMULAIRE_ECRIRE_AUTEUR ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_ECRIRE_AUTEUR');}
?> ?>
...@@ -34,11 +34,10 @@ charger_generer_url(); ...@@ -34,11 +34,10 @@ charger_generer_url();
// dans le fichier d'appel, et si la table de reference est OK, proposer // dans le fichier d'appel, et si la table de reference est OK, proposer
// la liste des mots-cles // la liste des mots-cles
global $balise_FORMULAIRE_FORUM_collecte; function balise_FORMULAIRE_FORUM ($p) {
$balise_FORMULAIRE_FORUM_collecte = array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte');
// Ajouter l'invalideur forums sur les pages contenant ce formulaire $p = calculer_balise_dynamique($p,'FORMULAIRE_FORUM', array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte'));
function balise_FORMULAIRE_FORUM_traitement($p) { // Ajouter l'invalideur forums sur les pages contenant ce formulaire
$p->code = code_invalideur_forums($p, $p->code); $p->code = code_invalideur_forums($p, $p->code);
return $p; return $p;
} }
...@@ -324,6 +323,4 @@ function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) { ...@@ -324,6 +323,4 @@ function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) {
return array ($titre, $table, $accepter_forum); return array ($titre, $table, $accepter_forum);
} }
function balise_FORMULAIRE_FORUM ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_FORUM');}
?> ?>
...@@ -13,10 +13,14 @@ ...@@ -13,10 +13,14 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
include_spip('base/abstract_sql'); include_spip('base/abstract_sql');
spip_log("je charge fip");
// Balise independante du contexte // Balise independante du contexte
global $balise_FORMULAIRE_INSCRIPTION_collecte ;
$balise_FORMULAIRE_INSCRIPTION_collecte = array();
function balise_FORMULAIRE_INSCRIPTION ($p) {
return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION', array());
}
// args[0] indique le focus eventuel // args[0] indique le focus eventuel
// args[1] indique la rubrique eventuelle de proposition // args[1] indique la rubrique eventuelle de proposition
...@@ -204,6 +208,4 @@ function creer_pass_pour_auteur($id_auteur) { ...@@ -204,6 +208,4 @@ function creer_pass_pour_auteur($id_auteur) {
return $pass; return $pass;
} }
function balise_FORMULAIRE_INSCRIPTION ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_INSCRIPTION');}
?> ?>
...@@ -13,8 +13,12 @@ ...@@ -13,8 +13,12 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// Pas besoin de contexte de compilation // Pas besoin de contexte de compilation
global $balise_FORMULAIRE_RECHERCHE_collecte;
$balise_FORMULAIRE_RECHERCHE_collecte = array();
function balise_FORMULAIRE_RECHERCHE ($p)
{
return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION', array());
}
function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) { function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) {
// Si le moteur n'est pas active, pas de balise // Si le moteur n'est pas active, pas de balise
...@@ -40,6 +44,4 @@ function balise_FORMULAIRE_RECHERCHE_dyn($lien, $rech) { ...@@ -40,6 +44,4 @@ function balise_FORMULAIRE_RECHERCHE_dyn($lien, $rech) {
)); ));
} }
function balise_FORMULAIRE_RECHERCHE ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_RECHERCHE');}
?> ?>
...@@ -22,9 +22,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite ...@@ -22,9 +22,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// Il *faut* demander petition, meme si on ne s'en sert pas dans l'affichage, // Il *faut* demander petition, meme si on ne s'en sert pas dans l'affichage,
// car on doit obtenir la jointure avec sql_petitions pour verifier si // car on doit obtenir la jointure avec sql_petitions pour verifier si
// une petition est attachee a l'article // une petition est attachee a l'article
global $balise_FORMULAIRE_SIGNATURE_collecte;
$balise_FORMULAIRE_SIGNATURE_collecte = array('id_article', 'petition');
function balise_FORMULAIRE_SIGNATURE ($p) {
return calculer_balise_dynamique($p,'FORMULAIRE_SIGNATURE', array('id_article', 'petition'));
}
// Verification des arguments (contexte + filtres) // Verification des arguments (contexte + filtres)
function balise_FORMULAIRE_SIGNATURE_stat($args, $filtres) { function balise_FORMULAIRE_SIGNATURE_stat($args, $filtres) {
...@@ -298,7 +299,4 @@ function test_pass() { ...@@ -298,7 +299,4 @@ function test_pass() {
} }
return $passw; return $passw;
} }
function balise_FORMULAIRE_SIGNATURE ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_SIGNATURE');}
?> ?>
...@@ -13,8 +13,11 @@ ...@@ -13,8 +13,11 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// Le contexte indique dans quelle rubrique le visiteur peut proposer le site // Le contexte indique dans quelle rubrique le visiteur peut proposer le site
global $balise_FORMULAIRE_SITE_collecte;
$balise_FORMULAIRE_SITE_collecte = array('id_rubrique');
function balise_FORMULAIRE_SITE ($p) {
return calculer_balise_dynamique($p,'FORMULAIRE_SITE', array('id_rubrique'));
}
function balise_FORMULAIRE_SITE_stat($args, $filtres) { function balise_FORMULAIRE_SITE_stat($args, $filtres) {
...@@ -58,7 +61,4 @@ function balise_FORMULAIRE_SITE_dyn($id_rubrique) { ...@@ -58,7 +61,4 @@ function balise_FORMULAIRE_SITE_dyn($id_rubrique) {
return _T('form_prop_enregistre'); return _T('form_prop_enregistre');
} }
function balise_FORMULAIRE_SITE ($p) {return declencher_balise_dynamique($p,'FORMULAIRE_SITE');}
?> ?>
...@@ -14,8 +14,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite ...@@ -14,8 +14,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return; #securite
include_spip('balise/login_public'); include_spip('balise/login_public');
global $balise_LOGIN_PRIVE_collecte;
$balise_LOGIN_PRIVE_collecte = array('url'); function balise_LOGIN_PRIVE ($p) {
return balise_login_public($p,'LOGIN_PRIVE');
}
# retourner: # retourner:
# 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0) # 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0)
...@@ -30,11 +33,4 @@ function balise_LOGIN_PRIVE_stat ($args, $filtres) { ...@@ -30,11 +33,4 @@ function balise_LOGIN_PRIVE_stat ($args, $filtres) {
function balise_LOGIN_PRIVE_dyn($login, $cible) { function balise_LOGIN_PRIVE_dyn($login, $cible) {
return login_explicite($login, $cible); return login_explicite($login, $cible);
} }
function balise_LOGIN_PRIVE_traitement($p) {
return balise_LOGIN_PUBLIC_traitement($p);
}
function balise_LOGIN_PRIVE ($p) {return declencher_balise_dynamique($p,'LOGIN_PRIVE');}
?> ?>
...@@ -12,22 +12,13 @@ ...@@ -12,22 +12,13 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
global $balise_LOGIN_PUBLIC_collecte;
$balise_LOGIN_PUBLIC_collecte = array('url');
# retourner:
# 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0)
# 2. l'eventuel parametre de la balise (args1) fournie par
# calculer_balise_dynamique, en l'occurence le #LOGIN courant si l'on
# programme une <boucle(AUTEURS)>[(#LOGIN_PUBLIC{#LOGIN})]
function balise_LOGIN_PUBLIC_stat ($args, $filtres) {
return array($filtres[0] ? $filtres[0] : $args[0], $args[1], $args[2]);
}
// Cette balise necessite les entetes "flag_dynamique" // Cette balise necessite les entetes "flag_dynamique"
// (attention, ne fonctionnera pas en INCLURE) // (attention, ne fonctionnera pas en INCLURE)
function balise_LOGIN_PUBLIC_traitement($p) {
function balise_LOGIN_PUBLIC ($p, $nom='LOGIN_PUBLIC') {
spip_log("bLP $nom");
return calculer_balise_dynamique($p, $nom, array('url'));
$p->code = '\'<' $p->code = '\'<'
.'?php header("Cache-Control: no-store, no-cache, must-revalidate"); ?' .'?php header("Cache-Control: no-store, no-cache, must-revalidate"); ?'
.'><' .'><'
...@@ -36,6 +27,16 @@ function balise_LOGIN_PUBLIC_traitement($p) { ...@@ -36,6 +27,16 @@ function balise_LOGIN_PUBLIC_traitement($p) {
return $p; return $p;
} }
# retourner:
# 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0)
# 2. l'eventuel parametre de la balise (args1) fournie par
# calculer_balise_dynamique, en l'occurence le #LOGIN courant si l'on
# programme une <boucle(AUTEURS)>[(#LOGIN_PUBLIC{#LOGIN})]
function balise_LOGIN_PUBLIC_stat ($args, $filtres) {
return array($filtres[0] ? $filtres[0] : $args[0], $args[1], $args[2]);
}
function balise_LOGIN_PUBLIC_dyn($url, $login) { function balise_LOGIN_PUBLIC_dyn($url, $login) {
if (!$url # pas d'url passee en filtre ou dans le contexte if (!$url # pas d'url passee en filtre ou dans le contexte
...@@ -178,6 +179,4 @@ function filtre_rester_connecte($prefs) { ...@@ -178,6 +179,4 @@ function filtre_rester_connecte($prefs) {
return $prefs['cnx'] == 'perma' ? ' ' : ''; return $prefs['cnx'] == 'perma' ? ' ' : '';
} }
function balise_LOGIN_PUBLIC ($p) {return declencher_balise_dynamique($p,'LOGIN_PUBLIC');}
?> ?>
...@@ -12,21 +12,24 @@ ...@@ -12,21 +12,24 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// Ce "menu_lang" collecte dans le contexte permet de forcer la langue // #MENU_LANG affiche le menu des langues de l'espace public
// par defaut proposee dans le menu, en faisant une inclusion // et preselectionne celle la globale $lang
// <INCLURE(toto){menu_lang=xxx}> ; mais a quoi ca sert concretement ? // ou de l'arguemnt fourni: #MENU_LANG_ECRIRE{#ENV{malangue}}
global $balise_MENU_LANG_collecte;
$balise_MENU_LANG_collecte = array('menu_lang');
function balise_MENU_LANG ($p) {
return calculer_balise_dynamique($p,'MENU_LANG', array('lang'));
}
// s'il n'y a qu'une langue eviter definitivement la balise ?php // s'il n'y a qu'une langue eviter definitivement la balise ?php
function balise_MENU_LANG_stat ($args, $filtres) { function balise_MENU_LANG_stat ($args, $filtres) {
if (strpos($GLOBALS['meta']['langues_proposees'],',') === false) return ''; if (strpos($GLOBALS['meta']['langues_proposees'],',') === false) return '';
return $args; return $filtres ? $filtres : $args;
} }
// normalement $opt sera toujours non vide suite au test ci-dessus // normalement $opt sera toujours non vide suite au test ci-dessus
function balise_MENU_LANG_dyn($menu_lang) { function balise_MENU_LANG_dyn($opt) {
include_spip('menu_lang_ecrire', 'balise'); include_spip('menu_lang_ecrire', 'balise');
return menu_lang_pour_tous('var_lang', $opt); return menu_lang_pour_tous('var_lang', $opt);
} }
......
...@@ -12,40 +12,38 @@ ...@@ -12,40 +12,38 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
// Ce "menu_lang" collecte dans le contexte permet de forcer la langue // #MENU_LANG_ECRIRE affiche le menu des langues de l'espace privé
// par defaut proposee dans le menu ; mais a quoi ca sert concretement ? // et preselectionne celle la globale $lang
global $balise_MENU_LANG_ECRIRE_collecte; // ou de l'arguemnt fourni: #MENU_LANG_ECRIRE{#ENV{malangue}}
$balise_MENU_LANG_ECRIRE_collecte = array('menu_lang');
function balise_MENU_LANG_ECRIRE ($p) {
return calculer_balise_dynamique($p,'MENU_LANG_ECRIRE', array('lang'));
}
// s'il n'y a qu'une langue proposee eviter definitivement la balise ?php // s'il n'y a qu'une langue proposee eviter definitivement la balise ?php
function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) { function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) {
global $all_langs; global $all_langs;
include_spip('inc/lang'); include_spip('inc/lang');
if (strpos($all_langs,',') === false) return ''; if (strpos($all_langs,',') === false) return '';
return $args; return $filtres ? $filtres : $args;
} }
// normalement $opt sera toujours non vide suite au test ci-dessus // normalement $opt sera toujours non vide suite au test ci-dessus
function balise_MENU_LANG_ECRIRE_dyn($default) { function balise_MENU_LANG_ECRIRE_dyn($opt) {
return menu_lang_pour_tous('var_lang_ecrire', $opt); return menu_lang_pour_tous('var_lang_ecrire', $opt);
} }
function menu_lang_pour_tous($nom, $opt) { function menu_lang_pour_tous($nom, $default) {
include_spip('inc/lang'); include_spip('inc/lang');
// Voir s'il y a une langue demandee par _request,
// ou une langue par defaut dans le contexte {menu_lang=xx}
$default = _request('lang');
lang_select($default);
if ($GLOBALS['spip_lang'] <> $default) { if ($GLOBALS['spip_lang'] <> $default) {
$default = $menu_lang;
lang_select($default); # et remplace lang_select($default); # et remplace
if ($GLOBALS['spip_lang'] <> $default) if ($GLOBALS['spip_lang'] <> $default) {
unset ($default); # annule tout choix par defaut unset ($default); # annule tout choix par defaut
lang_dselect(); #annule la selection lang_dselect(); #annule la selection
}
} }
lang_dselect();
$opt = liste_options_langues($nom, $default); $opt = liste_options_langues($nom, $default);
if (!$opt) if (!$opt)
...@@ -65,6 +63,4 @@ function menu_lang_pour_tous($nom, $opt) { ...@@ -65,6 +63,4 @@ function menu_lang_pour_tous($nom, $opt) {
); );
} }
function balise_MENU_LANG_ECRIRE ($p) {return declencher_balise_dynamique($p,'MENU_LANG_ECRIRE');}
?> ?>
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return; #securite if (!defined("_ECRIRE_INC_VERSION")) return; #securite
global $balise_URL_LOGOUT_collecte; function balise_URL_LOGOUT ($p) {return calculer_balise_dynamique($p,'URL_LOGOUT', array());
$balise_URL_LOGOUT_collecte = array(); }
// filtres[0] = url destination apres logout [(#URL_LOGOUT|url)] // filtres[0] = url destination apres logout [(#URL_LOGOUT|url)]
function balise_URL_LOGOUT_stat ($args, $filtres) { function balise_URL_LOGOUT_stat ($args, $filtres) {
...@@ -31,7 +31,4 @@ function balise_URL_LOGOUT_dyn($cible) { ...@@ -31,7 +31,4 @@ function balise_URL_LOGOUT_dyn($cible) {
"logout_public=".urlencode($login)."&amp;url=" . urlencode($cible) "logout_public=".urlencode($login)."&amp;url=" . urlencode($cible)
); );
} }
function balise_URL_LOGOUT ($p) {return declencher_balise_dynamique($p,'URL_LOGOUT');}
?> ?>
...@@ -212,6 +212,7 @@ function declencher_balise_dynamique($p, $nom) ...@@ -212,6 +212,7 @@ function declencher_balise_dynamique($p, $nom)
// mais on traite le vrai parametre si present. // mais on traite le vrai parametre si present.
function calculer_balise_dynamique($p, $nom, $l) { function calculer_balise_dynamique($p, $nom, $l) {
balise_distante_interdite($p); balise_distante_interdite($p);
$param = ""; $param = "";
if ($a = $p->param) { if ($a = $p->param) {
...@@ -222,7 +223,7 @@ function calculer_balise_dynamique($p, $nom, $l) { ...@@ -222,7 +223,7 @@ function calculer_balise_dynamique($p, $nom, $l) {
$param = compose_filtres_args($p, $c, ','); $param = compose_filtres_args($p, $c, ',');
} }
} }
$collecte = join(',',collecter_balise_dynamique($l, $p)); $collecte = join(',',collecter_balise_dynamique($l, $p, $nom));
$p->code = "executer_balise_dynamique('" . $nom . "',\n\tarray(" $p->code = "executer_balise_dynamique('" . $nom . "',\n\tarray("
. $collecte . $collecte
. ($collecte ? $param : substr($param,1)) # virer la virgule . ($collecte ? $param : substr($param,1)) # virer la virgule
...@@ -238,9 +239,11 @@ function calculer_balise_dynamique($p, $nom, $l) { ...@@ -238,9 +239,11 @@ function calculer_balise_dynamique($p, $nom, $l) {
return $p; return $p;
} }
// construire un tableau des valeurs interessant un formulaire // Construction du tableau des arguments d'une balise dynamique.
// Ces arguments peuvent etre eux-meme des balises (cf FORMULAIRE_SIGNATURE)
// mais gare au bouclage (on peut s'aider de $nom pour le reperer au besoin)
function collecter_balise_dynamique($l, $p) { function collecter_balise_dynamique($l, &$p, $nom) {
$args = array(); $args = array();
foreach($l as $c) { $x = calculer_balise($c, $p); $args[] = $x->code;} foreach($l as $c) { $x = calculer_balise($c, $p); $args[] = $x->code;}
return $args; return $args;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter