Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
20573 validations de retard le dépôt en amont.
inc-form-squel.php3 6,70 Kio
<?php

//
// Traduction des champs "formulaire" et "parametres"
//


// Formulaire de recherche
function calculer_champ_FORMULAIRE_RECHERCHE($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	if ($fonctions) {
		list(, $lien) = each($fonctions);	// le premier est un url
		while (list(, $filtre) = each($fonctions))
			$filtres[] = $filtre;	// les suivants sont des filtres
		$fonctions = $filtres;
	}
	if (!$lien) $lien = 'recherche.php3';
	$code = "((lire_meta('activer_moteur') != 'oui') ? '' : calcul_form_rech('$lien'))";
	return applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
}


// Formulaire d'inscription comme redacteur (dans inc-formulaires.php3)
function calculer_champ_FORMULAIRE_INSCRIPTION($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$milieu = '
		$spip_lang = $GLOBALS["spip_lang"];';
	$code = '((lire_meta("accepter_inscriptions") != "oui") ? "" :
		("<"."?php include(\'inc-formulaires.php3\'); lang_select(\"$spip_lang\"); formulaire_inscription(\"redac\"); lang_dselect(); ?".">"))';
	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);
}

// Formulaire ecrire auteur
function calculer_champ_FORMULAIRE_ECRIRE_AUTEUR($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$milieu = '
		$spip_lang = $GLOBALS["spip_lang"];
		$mailauteur = ' .
	index_pile($id_boucle,  'email', $boucles) . ';
		$nomauteur = ' .
	index_pile($id_boucle,  'id_auteur', $boucles) . ';';
	$code = '(!email_valide($mailauteur) ? "" :
		("<'.'?php include(\'inc-formulaires.php3\');
		lang_select(\"$spip_lang\");
		formulaire_ecrire_auteur(\"$nomauteur\", trim(\"$mailauteur\"));
		lang_dselect(); ?'.'>"))';
	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);  
}

// Formulaire signature de petition
function calculer_champ_FORMULAIRE_SIGNATURE($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$milieu = '
		$spip_lang = $GLOBALS["spip_lang"];
		$lacible = ' . index_pile($id_boucle, 'id_article', $boucles) . ";";
	$code = '(!sql_petitions($lacible) ? "" :
		("<"."?php include(\'inc-formulaires.php3\');
		lang_select(\"$spip_lang\"); echo formulaire_signature($lacible);
		lang_dselect(); ?".">"))';
	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);
}

// Formulaire d'inscription de site dans l'annuaire
function calculer_champ_FORMULAIRE_SITE($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$milieu = '
		$spip_lang = $GLOBALS["spip_lang"];
		$lacible = ' .
		index_pile($id_boucle,  'id_rubrique', $boucles) . ';';
	$code = '(lire_meta("proposer_sites") != "2") ? "" :
		("<"."?php include(\'inc-formulaires.php3\');
		lang_select(\"$spip_lang\"); formulaire_site($lacible);
		lang_dselect(); ?".">")';
	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);
}


// Formulaire de reponse a un forum
function calculer_champ_FORMULAIRE_FORUM($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$type = $boucles[$id_boucle]->type_requete;
	$milieu ='';
	switch ($type) {
		case 'breves':
			$code = "boutons_de_forum('', '', ''," .
				index_pile($id_boucle,  'id_breve', $boucles) .
				", '', " .
				index_pile($id_boucle,  'titre', $boucles) .
				", '$type', substr(lire_meta('forums_publics'),0,3)), \$Cache)";
		break;

		case 'rubriques':
			$code = 'boutons_de_forum(' .
			index_pile($id_boucle,  'id_rubrique', $boucles) .
			", '', '', '', ''," .
			index_pile($id_boucle,  'titre', $boucles) .
			", '$type', substr(lire_meta('forums_publics'),0,3)), \$Cache)";
			break;

		case 'syndication':
			$code = "boutons_de_forum('', '', '','', " .
			index_pile($id_boucle, 'id_rubrique', $boucles) . ", " .
			index_pile($id_boucle,  'nom_site', $boucles) .
			", '$type', substr(lire_meta('forums_publics'),0,3)), \$Cache)";
			break;
    
	case 'articles': 
		$code = "boutons_de_forum('', '', " .
		index_pile($id_boucle, 'id_article', $boucles) .
		", '','', " .
		index_pile($id_boucle,  'nom_site', $boucles) .
		"'$type', " .
		index_pile($id_boucle,  'accepter_forum', $boucles) .
		', $Cache)';
		break;

	case 'forums':
	default:
		$code = "boutons_de_forum(" .
		index_pile($id_boucle, 'id_rubrique', $boucles) . ', ' .
		index_pile($id_boucle, 'id_forum', $boucles) . ', ' .
		index_pile($id_boucle, 'id_article', $boucles) . ', ' .
		index_pile($id_boucle, 'id_breve', $boucles) . ', ' .
		index_pile($id_boucle, 'id_syndic', $boucles) . ', ' .
		index_pile($id_boucle, 'titre', $boucles) .
		", '$type', '', \$Cache)";
		break;
	}
	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);
}

// Parametres de reponse a un forum
function calculer_champ_PARAMETRES_FORUM($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
	$milieu = '$forums_publics = ((' .
	index_pile($id_boucle,  "accepter_forum", $boucles) . ' == ""
	AND lire_meta("forums_publics") != "non")
	OR (' . index_pile($id_boucle,  "accepter_forum", $boucles) .
	' != "" AND ' .
	index_pile($id_boucle,  "accepter_forum", $boucles) . ' != "non"));
	if ($forums_publics) {
		if (!($lien = $GLOBALS["HTTP_GET_VARS"]["retour"])) {
			$lien = nettoyer_uri();
		}
	$lien = rawurlencode($lien); ';

	switch ($boucles[$id_boucle]->type_requete) {
		case 'articles':
			$c = '"id_article=".' . index_pile($id_boucle,  id_article, $boucles);
			break;
		case 'breves':
			$c = '"id_breve=".' . index_pile($id_boucle,  id_breve, $boucles);
			break;
		case 'rubriques':
			$c = '"id_rubrique=".' . index_pile($id_boucle,  id_rubrique, $boucles);
			break;
		case 'syndication':
			$c = '"id_syndic=".' . index_pile($id_boucle,  id_syndic, $boucles);
			break;
		case 'forums':
		default:
			$liste_champs = array ("id_article","id_breve","id_rubrique","id_syndic","id_forum");
			$c="";$s="";
			foreach ($liste_champs as $champ) {
				$x = index_pile($id_boucle,  $champ, $boucles);
				$c .= (($c) ? ".\n" : "") . "((!$x) ? '' : ('$s$champ='.$x))";
				$s="&";
			}
			break;
	}
	$milieu .= "}\n";
	$code = "(!\$forums_publics) ? '' :
		($c . \"&retour=\$lien\")";

	list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere);
	return array($c,$milieu . $m);
}

/*
# Boutons d'administration: 
# comme c'est soumis a` une condition dynamique (adminitrateur ?)
# on produit un appel a` une fonction Javascript
# a chaque utilisation du squelette, on produira la de'finition ad hoc
*/
function calculer_champ_FORMULAIRE_ADMIN($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) {
# Quand Fil sera convaincu:
# return array("envoi_script('if (window.admin != null) admin()')",'');
  return array("'<!-- @@formulaire_admin@@45609871@@ -->'",'');
}

?>