Valider 84dfaae3 rédigé par esj's avatar esj
Parcourir les fichiers

Fusion de code pour la fonction tester_config, avec simplification du...

Fusion de code pour la fonction tester_config, avec simplification du squelette l'utilisant (autant implémenter dans la fonction de controle le choix automatique du statut)
parent 2932762a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -46,7 +46,7 @@
			#LOGIN_PRIVE

			<p style="text-align: center;">
			[&#91;<a href="#URL_PAGE{identifiants,focus=nom_inscription}&amp;mode=(#URL_SITE_SPIP|tester_config{mode_inscription})" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=400'); return false;"><:login_sinscrire:></a>&#93;]
			[&#91;<a href="#URL_PAGE{identifiants,focus=nom_inscription}&amp;mode=(#URL_SITE_SPIP|tester_config)" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=400'); return false;"><:login_sinscrire:></a>&#93;]
			&#91;<a href="#URL_PAGE{spip_pass}" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=330'); return false;"><:login_motpasseoublie:></a>&#93;
			&#91;<a href="#URL_SITE_SPIP/"><:login_retoursitepublic:></a>&#93;
			</p>
+3 −25
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -22,7 +22,7 @@ function balise_FORMULAIRE_INSCRIPTION ($p) {
	return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION', array());
}

// args[0] un statut d'auteur (1comite par defaut)
// args[0] un statut d'auteur (redacteur par defaut)
// args[1] indique la rubrique eventuelle de proposition
// args[2] indique le focus eventuel
// [(#FORMULAIRE_INSCRIPTION{nom_inscription, #ID_RUBRIQUE})]
@@ -30,7 +30,7 @@ function balise_FORMULAIRE_INSCRIPTION ($p) {
// http://doc.spip.org/@balise_FORMULAIRE_INSCRIPTION_stat
function balise_FORMULAIRE_INSCRIPTION_stat($args, $filtres) {
	list($mode, $id, $focus) = $args;
	$mode = test_mode_inscription($mode);
	$mode = tester_config($id, $mode);
	return $mode ? array($mode, $focus, $id) : '';
}

@@ -43,7 +43,7 @@ function balise_FORMULAIRE_INSCRIPTION_stat($args, $filtres) {
// http://doc.spip.org/@balise_FORMULAIRE_INSCRIPTION_dyn
function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus, $id=0) {

	if (!test_mode_inscription($mode)) return _T('pass_rien_a_faire_ici');
	if (!tester_config($id, $mode)) return _T('pass_rien_a_faire_ici');
	$nom = _request('nom_inscription');
	$mail = _request('mail_inscription');
	$commentaire = ($mode=='1comite') ? _T('pass_espace_prive_bla') : _T('pass_forum_bla');
@@ -80,28 +80,6 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus, $id=0) {
}


// Verifier que les options de configuration acceptent l'inscription demandee
// La liste globale des statuts donne le nom du statut pour le mode
// Si mode inconnu laisser faire, c'est une extension non std
// mais verifier que la syntaxe est compatible avec SQL

// http://doc.spip.org/@test_mode_inscription
function test_mode_inscription($mode) {

	$s = array_search($mode, $GLOBALS['liste_des_statuts']);
	switch ($s) {

	case 'info_redacteurs' : 
	  return (($GLOBALS['meta']['accepter_inscriptions'] == 'oui') ? $mode : '');

	case 'info_visiteurs' : 
	  return (($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo') ? $mode : '');

	default:
	  return ($mode AND $mode == addslashes($mode)) ? $mode : '';
	}
}

// fonction qu'on peut redefinir pour filtrer les adresses mail et les noms,
// et donner des infos supplémentaires
// Std: controler que le nom (qui sert a calculer le login) est plausible
+26 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1289,21 +1289,31 @@ function vider_attribut ($balise, $attribut) {
}


// Un filtre ad hoc, qui retourne ce qu'il faut pour les tests de config
// dans les squelettes : [(#URL_SITE_SPIP|tester_config{quoi})]
// http://doc.spip.org/@tester_config
function tester_config($ignore, $quoi) {
	switch ($quoi) {
		case 'mode_inscription':
			if ($GLOBALS['meta']["accepter_inscriptions"] == "oui")
				return '1comite';
			else if ($GLOBALS['meta']["accepter_visiteurs"] == "oui"
			OR $GLOBALS['meta']['forums_publics'] == 'abo')
				return '6forum';
			else
				return '';
// Un filtre pour determiner le nom du mode des librement inscrits,
// a l'aide de la liste globale des statuts (tableau mode => nom du mode)
// Utile pour le formulaire d'inscription.
// Si un mode est fourni, verifier que la configuration l'accepte.
// Si mode inconnu laisser faire, c'est une extension non std
// mais verifier que la syntaxe est compatible avec SQL

function tester_config($id, $mode='') {

	$s = array_search($mode, $GLOBALS['liste_des_statuts']);
	switch ($s) {

	case 'info_redacteurs' :
	  return (($GLOBALS['meta']['accepter_inscriptions'] == 'oui') ? $mode : '');

	case 'info_visiteurs' : 
	  return (($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo') ? $mode : '');

	default:
	  if ($mode AND $mode == addslashes($mode))
	    return $mode;
	  if ($GLOBALS['meta']["accepter_inscriptions"] == "oui")
	    return $GLOBALS['liste_des_statuts']['info_redacteurs'];
	  if ($GLOBALS['meta']["accepter_visiteurs"] == "oui")
	    return $GLOBALS['liste_des_statuts']['info_visiteurs'];
	  return '';
	}
}