Ejemplo n.º 1
0
/**
 * Contexte du formulaire
 * Mots-cles dans les forums :
 * Si la variable de personnalisation $afficher_groupe[] est definie
 * dans le fichier d'appel, et si la table de reference est OK, proposer
 * la liste des mots-cles
 * #FORMULAIRE_FORUM seul calcule (objet, id_objet) depuis la boucle parente
 * #FORMULAIRE_FORUM{#SELF} pour forcer l'url de retour
 * #FORMULAIRE_FORUM{#SELF, article, 3} pour forcer l'objet et son identifiant
 * http://code.spip.net/@balise_FORMULAIRE_FORUM
 *
 * @param Object $p
 * @return Object
 */
function balise_FORMULAIRE_FORUM($p)
{
    /**
     * On recupere $objet et $id_objet depuis une boucle englobante si possible
     * Sinon, on essaie aussi de recuperer des id_xx dans l'URL qui pourraient indiquer
     * sur quoi le formulaire porte.
     * Enfin, on pourra aussi forcer objet et id_objet depuis l'appel du formulaire
     */
    $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
    $_id_objet = $p->boucles[$i_boucle]->primary;
    $_type = $p->boucles[$i_boucle]->id_table;
    /**
     * On essaye de trouver les forums en fonction de l'environnement
     * pour cela, on recupere l'ensemble des id_xxx possibles dans l'env
     */
    $ids = forum_get_objets_depuis_env();
    $ids = array_values($ids);
    $obtenir = array($_id_objet, 'id_forum', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte');
    if ($ids) {
        $obtenir = array_merge($obtenir, $ids);
    }
    $p = calculer_balise_dynamique($p, 'FORMULAIRE_FORUM', $obtenir, array("'{$_type}'", count($ids)));
    // Ajouter le code d'invalideur specifique aux forums
    include_spip('inc/invalideur');
    if ($i = charger_fonction('code_invalideur_forums', '', true)) {
        $p->code = $i($p, $p->code);
    }
    return $p;
}
/**
 * Compile la balise `#FORMULAIRE_FORUM_PRIVE` qui affiche un formulaire d'ajout
 * de commentaire pour l'espace privé
 *
 * Signature : `#FORMULAIRE_FORUM_PRIVE{[redirection[, objet, id_objet]]}`
 *
 * Particularité du contexte du formulaire pour permettre une saisie
 * de mots-clés dans les forums : si la variable de personnalisation
 * `$afficher_groupe[]` est définie dans le fichier d'appel, et si la table
 * de référence est OK, la liste des mots-clés est alors proposée.
 *
 * @balise
 * @see balise_FORMULAIRE_FORUM()
 * @example
 *     ```
 *     #FORMULAIRE_FORUM_PRIVE seul calcule (objet, id_objet) depuis la boucle parente
 *     #FORMULAIRE_FORUM_PRIVE{#SELF} pour forcer l'url de retour
 *     #FORMULAIRE_FORUM_PRIVE{#SELF, article, 3} pour forcer l'objet et son identifiant
 *     ```
 *
 * @param Champ $p
 *     Pile au niveau de la balise
 * @return Champ
 *     Pile complétée par le code à générer
 */
function balise_FORMULAIRE_FORUM_PRIVE($p)
{
    /**
     * On recupere $objet et $id_objet depuis une boucle englobante si possible
     * Sinon, on essaie aussi de recuperer des id_xx dans l'URL qui pourraient indiquer
     * sur quoi le formulaire porte.
     * Enfin, on pourra aussi forcer objet et id_objet depuis l'appel du formulaire
     */
    $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
    if (isset($p->boucles[$i_boucle])) {
        $_id_objet = $p->boucles[$i_boucle]->primary;
        $_type = $p->boucles[$i_boucle]->id_table;
    } else {
        $_id_objet = $_type = '';
    }
    /**
     * On essaye de trouver les forums en fonction de l'environnement
     * pour cela, on recupere l'ensemble des id_xxx possibles dans l'env
     */
    $ids = forum_get_objets_depuis_env();
    $ids = array_values($ids);
    $obtenir = array($_id_objet, 'id_forum', 'forcer_previsu', 'statut');
    if ($ids) {
        $obtenir = array_merge($obtenir, $ids);
    }
    $p = calculer_balise_dynamique($p, 'FORMULAIRE_FORUM_PRIVE', $obtenir, array("'{$_type}'", count($ids)));
    return $p;
}
Ejemplo n.º 3
0
function balise_FORMULAIRE_CONTACT($p)
{
    /* Cette fonction défini la balise, et en particulier les variables à récuperer dans le contexte et à passer à la fonction _stat en appelant 
      	 la fonction "calculer_balise_dynamique". On pourra ainsi récuperer l’id_article d’une boucle englobante ou la langue contenue dans l’url.
       	C’est un peu comme les paramètres que l’on passe à une balise INCLURE spip.
    	   Déclare le nom de la balise et un tableau des variables à récupérer dans le contexte.
    	*/
    $p = calculer_balise_dynamique($p, 'FORMULAIRE_CONTACT', array('0'));
    return $p;
}
Ejemplo n.º 4
0
function balise_FORMULAIRE_FORUM ($p) {

	$p = calculer_balise_dynamique($p,'FORMULAIRE_FORUM', array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte'));

	// Ajouter le code d'invalideur specifique aux forums
	include_spip('inc/invalideur');
	if (function_exists($i = 'code_invalideur_forums'))
		$p->code = $i($p, $p->code);

	return $p;
}
Ejemplo n.º 5
0
function balise_FORMULAIRE_UPLOAD ($p) {
	// on prend nom de la cle primaire de l'objet pour calculer sa valeur
	$_id_objet = $p->boucles[$p->id_boucle]->primary;
	return calculer_balise_dynamique(
		$p,
		'FORMULAIRE_UPLOAD',
		array(
			'FORMULAIRE_UPLOAD_TYPE_BOUCLE', // demande du type d'objet
			$_id_objet
		)
	);
}
Ejemplo n.º 6
0
function balise_FORMULAIRE__dist($p) {

	// Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide.
	// mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer
	if (existe_formulaire($p->nom_champ)===FALSE) {
		    $p->code = "''";
		    $p->interdire_scripts = false;
		    return $p;
	}

	// sinon renvoyer un code php dnamique
	return calculer_balise_dynamique($p, $p->nom_champ, array());
}
Ejemplo n.º 7
0
function balise_EC_PRICEG($p)
{
    return calculer_balise_dynamique($p, 'EC_PRICEG', array());
}
Ejemplo n.º 8
0
function balise_CLEVERMAIL_VALIDATION($p)
{
    return calculer_balise_dynamique($p, 'CLEVERMAIL_VALIDATION', array());
}
function balise_LANGUE_PREFEREE_SECTEUR_REDIRECTION($p)
{
	return calculer_balise_dynamique($p, 'LANGUE_PREFEREE_SECTEUR_REDIRECTION', array());
}
function balise_LANGUE_PREFEREE_LIEN_EFFACE_COOKIE($p)
{
	return calculer_balise_dynamique($p, 'LANGUE_PREFEREE_LIEN_EFFACE_COOKIE', array());
}
Ejemplo n.º 11
0
/**
 *  Dymanic Tag wich outputs Sorting Select
 *  Format: #ECATALOGUE_SORTING
 */
function balise_ECATALOGUE_SORTING($p)
{
    return calculer_balise_dynamique($p, 'ECATALOGUE_SORTING', array());
}
Ejemplo n.º 12
0
/**
 * Compile la balise dynamique `#FORMULAIRE_ADMIN` qui des boutons
 * d'administration dans l'espace public
 *
 * Cette balise permet de placer les boutons d'administrations dans un
 * endroit spécifique du site. Si cette balise n'est pas présente, les boutons
 * seront automatiquement ajoutés par SPIP si l'auteur a activé le
 * cookie de correspondance.
 *
 * @balise
 * @see f_admin()
 * @example
 *     ```
 *     #FORMULAIRE_ADMIN
 *     ```
 *
 * @param Champ $p
 *     Pile au niveau de la balise
 * @return Champ
 *     Pile complétée du code compilé
 **/
function balise_FORMULAIRE_ADMIN($p)
{
    return calculer_balise_dynamique($p, 'FORMULAIRE_ADMIN', array());
}
Ejemplo n.º 13
0
function balise_FORMULAIRE_ABONNEMENT ($p) {

	spiplistes_debug_log('balise_FORMULAIRE_ABONNEMENT()');

	return(calculer_balise_dynamique($p, 'FORMULAIRE_ABONNEMENT', array('id_liste')));
}
Ejemplo n.º 14
0
function balise_CALENDRIER_MINI ($p) {
	return calculer_balise_dynamique($p,'CALENDRIER_MINI', array('id_rubrique','id_article', 'id_mot'));
}
/**
 *  Dymanic Tag wich outputs product price according to product's or given currency
 *  Format: #ECATALOGUE_PRODUCT_PRICE{<id_article>[, <currency_code>][, <type>]}
 *      If you want to output price in product's currency, dont specify currency_code
 *      If you want to output not standart price, specify it's type (<type>), i.e. type="priceold"
 */
function balise_ECATALOGUE_PRODUCT_PRICE($p)
{
    return calculer_balise_dynamique($p, 'ECATALOGUE_PRODUCT_PRICE', array());
}
Ejemplo n.º 16
0
function balise_FORMULAIRE_SIGNATURE($p)
{
    return calculer_balise_dynamique($p, 'FORMULAIRE_SIGNATURE', array('id_article', 'petition'));
}
Ejemplo n.º 17
0
function balise_CLEVERMAIL_UNSUBSCRIBE($p)
{
    return calculer_balise_dynamique($p, 'CLEVERMAIL_UNSUBSCRIBE', array());
}
/**
 *  Dymanic Tag wich outputs product currency sign according to product's currency
 *  Format: #ECATALOGUE_PRODUCT_CURRENCY{<id_article[, <sign>]}
 *      If you want to output sign_pre, veale <sign> empty
 */
function balise_ECATALOGUE_PRODUCT_CURRENCY_SIGN($p)
{
    return calculer_balise_dynamique($p, 'ECATALOGUE_PRODUCT_CURRENCY_SIGN', array());
}
Ejemplo n.º 19
0
/**
 * http://doc.spip.org/@balise_FORMULAIRE_INSCRIPTION
 *
 * @param object $p
 * @return mixed
 */
function balise_FORMULAIRE_INSCRIPTION($p)
{
    return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION', array());
}
/**
 *  Dymanic Tag which outputs option filter's results.
 *  The idea is that it passes result array of articles IDs (#ARTICLES_IDS) in template,
 *  and you use this array in there to get filtered articles.
 *  It provides default html template, but in most cases you will override it in squelettes or
 *  by passing parameter. Example:
 *      #ECATALOGUE_OPTION_FILTER_RESULT{inc/filter_result_template_file}
 */
function balise_ECATALOGUE_OPTION_FILTER_RESULT($p)
{
    return calculer_balise_dynamique($p, 'ECATALOGUE_OPTION_FILTER_RESULT', array());
}
/**
 * Dynamic tag that outputs quantity of product that belongs to composite with taking 
 * to account user changed value 
 */
function balise_ECATALOGUE_COMPOSITE_QUANTITY($p)
{
    return calculer_balise_dynamique($p, 'ECATALOGUE_COMPOSITE_QUANTITY', array());
}
Ejemplo n.º 22
0
function balise_URL_LOGOUT($p)
{
    return calculer_balise_dynamique($p, 'URL_LOGOUT', array());
}
Ejemplo n.º 23
0
/**
 * Compile la balise dynamique `#FORMULAIRE_ECRIRE_AUTEUR` qui permet
 * très logiquement d'afficher un formulaire pour écrire à un auteur
 *
 * Cette balise récupère l'id_auteur (et son email) ou l'id_article de
 * la boucle AUTEURS ou ARTICLES englobante.
 *
 * Le ou les emails correspondants à l'auteur ou aux auteurs de l'article
 * sont transmis au formulaire CVT (mais ils ne seront pas dévoilés
 * au visiteur).
 * 
 * @balise
 * 
 * @param Champ $p
 *     Pile au niveau de la balise
 * @return Champ
 *     Pile complétée du code compilé
**/
function balise_FORMULAIRE_ECRIRE_AUTEUR($p)
{
    return calculer_balise_dynamique($p, 'FORMULAIRE_ECRIRE_AUTEUR', array('id_auteur', 'id_article', 'email'));
}
Ejemplo n.º 24
0
function balise_CONFIGURER_METAS_dist($p)
{
    return calculer_balise_dynamique($p, $p->nom_champ, array());
}
Ejemplo n.º 25
0
/**
 * Compile la balise dynamique `#MENU_LANG_ECRIRE` qui affiche
 * un sélecteur de langue pour l'interface privée
 *
 * Affiche le menu des langues de l'espace privé
 * et présélectionne celle la globale `$lang`
 * ou de l'arguemnt fourni: `#MENU_LANG_ECRIRE{#ENV{malangue}}`
 * 
 * @balise
 * @link http://www.spip.net/4626
 * 
 * @param Champ $p
 *     Pile au niveau de la balise
 * @return Champ
 *     Pile complétée du code compilé
**/
function balise_MENU_LANG_ECRIRE($p)
{
    return calculer_balise_dynamique($p, 'MENU_LANG_ECRIRE', array('lang'));
}
Ejemplo n.º 26
0
function balise_FORMULAIRE_SITE($p)
{
    return calculer_balise_dynamique($p, 'FORMULAIRE_SITE', array('id_rubrique'));
}
Ejemplo n.º 27
0
function balise_LOGIN_PRIVE($p)
{
    return calculer_balise_dynamique($p, 'LOGIN_PRIVE', array('url'));
}
Ejemplo n.º 28
0
function balise_LOGIN_PUBLIC($p, $nom = 'LOGIN_PUBLIC')
{
    return calculer_balise_dynamique($p, $nom, array('url'));
}