Proposer une amélioration de commentaire

Le commentaire à poster est au format «docblock» (de phpDoc) qui peut être enrichi de tags spécifiques pour SPIP.
Fichier
plugins-dist/forum/balise/formulaire_forum.php
Fonction
balise_FORMULAIRE_FORUM

    Nom ou pseudo de l'auteur de la proposition

Code original

/**
 * Compile la balise `#FORMULAIRE_FORUM` qui affiche un formulaire d'ajout
 * de commentaire
 *
 * Signature : `#FORMULAIRE_FORUM{[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
 * @link https://www.spip.net/3969 Balise `#FORMULAIRE_FORUM`
 * @link https://www.spip.net/1827 Les formulaires
 * @example
 *     ```
 *     #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
 *     ```
 *
 * @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($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 ($i_boucle) { // La balise peut aussi être utilisée hors boucle.
		$_id_objet = $p->boucles[$i_boucle]->primary;
		$_type = $p->boucles[$i_boucle]->id_table;
	} else {
		$_id_objet = $_type = null;
	}
 
	/**
	 * 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',
		'forcer_previsu'
	);
 
	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;
}

Le commentaire au format « docblock » peut être complété des éléments suivants sécifiques
à SPIP.

Sur un entête de fichier :

  • @package SPIP\Core\x (pour un fichier du core, x dépendant du fichier)
  • @package SPIP\Nom\x (pour un fichier de plugin, Nom étant le nom du plugin)

Sur un entête de fonction :

  • @pipeline x : indique que la fonction est une utilisation d’un pipeline
  • @pipeline_appel x : indique que la fonction appelle le pipeline indiqué
  • @balise : indique que la fonction est une compilation de balise
  • @filtre : indique un |filtre
  • @critere : indique que la fonction est une compilaiton de critère
  • @boucle : indique que la fonction est une compilaiton de boucle
Vous inscrire sur ce site

L’espace privé de ce site est ouvert aux visiteurs, après inscription. Une fois enregistré, vous pourrez consulter les articles en cours de rédaction, proposer des articles et participer à tous les forums.

Identifiants personnels

Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.