<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Carnet de notes</title>
	<link>https://notes.cousumain.info/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://notes.cousumain.info/spip.php?id_mot=13&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>Carnet de notes</title>
		<url>https://notes.cousumain.info/sites/notes.cousumain.info/local/cache-vignettes/L144xH69/siteon0-5f183.png?1688285038</url>
		<link>https://notes.cousumain.info/</link>
		<height>69</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Cr&#233;er des champs extras depuis un plugin perso avec l'aide de Saisies</title>
		<link>https://notes.cousumain.info/Creer-des-champs-extras-depuis-un-plugin-perso-avec-l-aide-de-Saisies</link>
		<guid isPermaLink="true">https://notes.cousumain.info/Creer-des-champs-extras-depuis-un-plugin-perso-avec-l-aide-de-Saisies</guid>
		<dc:date>2020-04-30T13:24:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>jeanmarie</dc:creator>


		<dc:subject>SPIP</dc:subject>
		<dc:subject>Tutoriels</dc:subject>

		<description>
&lt;p&gt;Note : n'oubliez pas de remplacer prefixe par le pr&#233;fixe de votre plugin. &lt;br class='autobr' /&gt;
Cr&#233;er la fonction qui va d&#233;clarer les nouveaux champs &lt;br class='autobr' /&gt;
Dans cette premi&#232;re partie, on ajoute simplement un champ date aux articles du secteur 1 et un champ textarea aux rubriques de la branche 5. Pour voir d'autres types de champs, rendez-vous dans la partie D&#233;clarer d'autres types de champs extras. &lt;br class='autobr' /&gt;
Cr&#233;er un fichier /base/prefixe.php contenant le code suivant : &lt;br class='autobr' /&gt; &lt; ?php &lt;br class='autobr' /&gt;
// S&#233;curit&#233; if (&#8230;)&lt;/p&gt;


-
&lt;a href="https://notes.cousumain.info/-Notes-" rel="directory"&gt;Notes&lt;/a&gt;

/ 
&lt;a href="https://notes.cousumain.info/+-SPIP-+" rel="tag"&gt;SPIP&lt;/a&gt;, 
&lt;a href="https://notes.cousumain.info/+-Tutoriels-+" rel="tag"&gt;Tutoriels&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; n'oubliez pas de remplacer &lt;code&gt;prefixe&lt;/code&gt; par le pr&#233;fixe de votre plugin.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;er la fonction qui va d&#233;clarer les nouveaux champs&lt;/h2&gt;
&lt;p&gt;Dans cette premi&#232;re partie, on ajoute simplement un champ &lt;code&gt;date&lt;/code&gt; aux articles du secteur 1 et un champ &lt;code&gt;textarea&lt;/code&gt; aux rubriques de la branche 5. Pour voir d'autres types de champs, rendez-vous dans la partie &lt;i&gt;D&#233;clarer d'autres types de champs extras&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Cr&#233;er un fichier &lt;code&gt;/base/prefixe.php&lt;/code&gt; contenant le code suivant :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;php&#034;&gt;&lt;code&gt;&lt;?php // S&#233;curit&#233; if (!defined(&#034;_ECRIRE_INC_VERSION&#034;)) return; function prefixe_declarer_champs_extras($champs = array()) { // SAISIE DATE SUR L'OBJET ARTICLE DU SECTEUR 1 $champs['spip_articles']['date_diffusion'] = array( // Le type de saisie 'saisie' =&gt; 'date', 'options' =&gt; array( // Le nom du champ dans la base de donn&#233;es 'nom' =&gt; 'date_diffusion', // Le label affich&#233; dans l'espace priv&#233; du site 'label' =&gt; _T('prefixe:chaine_de_langue_date_diffusion'), // L'explication affich&#233;e dans l'espace priv&#233; du site 'explication' =&gt; _T('prefixe:chaine_de_langue_date_diffusion_explication'), // Le type d'info attendue 'sql' =&gt; &#034;datetime DEFAULT '0000-00-00 00:00:00' NOT NULL&#034;, // La valeur par d&#233;faut 'defaut' =&gt; '', // Le champ est obligatoire 'obligatoire' =&gt; 'oui', // Afficher ce champ uniquement pour les articles du secteur n&#176;1 'restrictions'=&gt;array( 'secteur' =&gt; '1' ), ), // V&#233;rifier et normaliser les infos saisies avant de les ins&#233;rer dans la base 'verifier' =&gt; array( 'type' =&gt; 'date', 'options' =&gt; array( 'normaliser' =&gt; 'datetime', ) ) ); // SAISIE TEXTEAREA SUR L'OBJET RUBRIQUE DE LA BRANCHE N&#176;5 $champs['spip_rubriques']['infos_complementaires'] = array( 'saisie' =&gt; 'textarea', 'options' =&gt; array( 'nom' =&gt; 'infos_complementaires', 'label' =&gt; _T('prefixe:chaine_de_langue_infos_complementaires'), 'defaut' =&gt; '', // Nombre de ligne du champ dans l'espace priv&#233; 'rows' =&gt; 10, // Ins&#233;rer la barre d'outils type forum 'inserer_barre' =&gt; 'forum', // Appliquer les traitements typographiques et raccourcis SPIP &#224; l'affichage du champ 'traitements' =&gt; '_TRAITEMENT_RACCOURCIS', 'sql' =&gt; &#034;text DEFAULT '' NOT NULL&#034;, // Afficher ce champ uniquement pour les articles de la branche n&#176;5 'restrictions'=&gt;array( 'branche' =&gt; '5' ), ) ); return $champs; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Indiquer au plugin de mettre &#224; jour la base&lt;/h2&gt;
&lt;p&gt;Cr&#233;er un fichier &lt;code&gt;/prefixe_administrations.php&lt;/code&gt; contenant le code suivant :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;php&#034;&gt;&lt;code&gt;&lt;?php if (!defined(&#034;_ECRIRE_INC_VERSION&#034;)) return; // Inclure l'API Champs Extras include_spip('inc/cextras'); // Inclure les champs d&#233;clar&#233;s &#224; l'&#233;tape pr&#233;c&#233;dente include_spip('base/prefixe'); function prefixe_upgrade($nom_meta_base_version,$version_cible) { $maj = array(); // Premi&#232;re d&#233;claration &#224; l'installation du plugin cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['create']); include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); } // D&#233;sinstaller proprement le plugin en supprimant les champs de la base de donn&#233;es function prefixe_vider_tables($nom_meta_base_version) { cextras_api_vider_tables(prefixe_declarer_champs_extras()); effacer_meta($nom_meta_base_version); }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous ajoutez des champs extras une fois votre plugin install&#233; et en fonctionnement, vous devez d&#233;clarer ces mises &#224; jour en ajoutant au code ci-dessus (apr&#232;s la premi&#232;re d&#233;claration &lt;code&gt;$maj['create']&lt;/code&gt;) :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;php&#034;&gt;&lt;code&gt; // Ajout d'un nouveau ou plusieurs champs cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['0.1.1']); // Encore un ajout de nouveaux champs cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['0.1.2']);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous supprimez des champs, par exemple la date, indiquer &#224; votre plugin de les supprimer de la base :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='php'&gt;&lt;code&gt;// Supprimer des champs cextras_api_upgrade(prefixe_declarer_champs_extras(), $maj['1.2.0']); $maj['1.2.0'][] = array('sql_alter',&#034;TABLE spip_articles DROP date_nom&#034;);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; la valeur &lt;code&gt;$maj['0.1.1']&lt;/code&gt; doit correspondre avec le schema d&#233;clar&#233; plus loin dans &lt;code&gt;paquet.xml&lt;/code&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Dans votre paquet.xml&lt;/h2&gt;
&lt;p&gt;Derni&#232;re &#233;tape : pour que tout &#231;a soit pris en compte, vous devez modifier votre fichier &lt;code&gt;paquet.xml&lt;/code&gt;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt; Indiquer que le plugin doit mettre &#224; jour la base&lt;/h3&gt;
&lt;p&gt;Ajouter &lt;code&gt;schema=&#034;0.1.0&#034;&lt;/code&gt; dans la balise &lt;code&gt;&lt;paquet&gt;&lt;/code&gt; afin que votre plugin mette &#224; jour la base de donn&#233;es.&lt;br class='autobr' /&gt;
Puis, &#224; chaque ajout ou surpression d'un champ, monter d'une version que le changement soit pris en compte.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt; D&#233;clarer le pipeline champs extras&lt;/h3&gt;
&lt;p&gt;Enfin, d&#233;clarer le pipeline &lt;code&gt;declarer_champs_extras&lt;/code&gt; :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class=&#034;xml&#034;&gt;&lt;code&gt; &lt;pipeline nom=&#034;declarer_champs_extras&#034; inclure=&#034;base/prefixe.php&#034; /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt; D&#233;clarer les d&#233;pendances&lt;/h3&gt;
&lt;p&gt;Pour que &#231;a fonctionne, votre plugin n&#233;cessite d&#233;sormais 3 autres plugins :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://notes.cousumain.info/spip.php?page=article&amp;id_article=4028'&gt;Champs Extras 3&lt;/a&gt; pour g&#233;rer les champs en base&lt;/li&gt;&lt;li&gt; &lt;a href='https://notes.cousumain.info/spip.php?page=article&amp;id_article=3364'&gt;Saisies&lt;/a&gt; pour g&#233;rer les saisies (interface avec la base)&lt;/li&gt;&lt;li&gt; &lt;a href='https://notes.cousumain.info/spip.php?page=article&amp;id_article=3852'&gt;V&#233;rifier&lt;/a&gt; pour v&#233;rifier les infos saisies avant de les rentrer en base&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ajouter ces n&#233;cessites :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='xml'&gt;&lt;code&gt;&lt;necessite nom=&#034;cextras&#034; compatibilite=&#034;[3.0.5;]&#034; /&gt; &lt;necessite nom=&#034;saisies&#034; compatibilite=&#034;[3.2.0;]&#034; /&gt; &lt;necessite nom=&#034;verifier&#034; compatibilite=&#034;[1.8.0;]&#034; /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; l'article ayant &#233;t&#233; &#233;crit en mai/juin 2020, il sera peut-&#234;tre n&#233;cessaire de mettre &#224; jour les &lt;code&gt;compatibilite&lt;/code&gt;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt; R&#233;capitulatif paquet.xml&lt;/h3&gt;
&lt;p&gt;Votre fichier &lt;code&gt;paquet.xml&lt;/code&gt; doit d&#233;sormais ressembler &#224; &#231;a :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='xml'&gt;&lt;code&gt;&lt;paquet prefix=&#034;prefixe&#034; categorie=&#034;squelette&#034; version=&#034;1.0.0&#034; etat=&#034;stable&#034; compatibilite=&#034;[3.2.0;3.3.*]&#034; logo=&#034;prive/themes/spip/images/prefixe-32.png&#034; documentation=&#034;https://www.domaine.net&#034; schema=&#034;0.1.0&#034; &gt; &lt;nom&gt;Nom de votre Plugin&lt;/nom&gt; &lt;pipeline nom=&#034;declarer_champs_extras&#034; inclure=&#034;base/prefixe.php&#034; /&gt; &lt;necessite nom=&#034;cextras&#034; compatibilite=&#034;[3.0.5;]&#034; /&gt; &lt;necessite nom=&#034;saisies&#034; compatibilite=&#034;[3.2.0;]&#034; /&gt; &lt;necessite nom=&#034;verifier&#034; compatibilite=&#034;[1.8.0;]&#034; /&gt; &lt;/paquet&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;D&#233;clarer d'autres types de champs extras&lt;/h2&gt;
&lt;p&gt;Voici un exemple plus complet :&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='php'&gt;&lt;code&gt;&lt;?php if (!defined(&#034;_ECRIRE_INC_VERSION&#034;)) return; function prefixe_declarer_champs_extras($champs = array()) { // SAISIE RADIO SUR L'OBJET ARTICLE $champs['spip_articles']['type_structure'] = array( 'saisie' =&gt; 'radio', 'options' =&gt; array( 'nom' =&gt; 'structure', 'label' =&gt; _T('prefixe:type_structure_label'), 'explication' =&gt; _T('prefixe:type_structure_explication'), 'sql' =&gt; &#034;varchar(30) NOT NULL DEFAULT ''&#034;, 'defaut' =&gt; '', // Les cases radio 'datas' =&gt; array( '' =&gt; _T('prefixe:champ_vide'), 'structure_adherente' =&gt; _T('prefixe:type_structure_adherente'), 'structure_non_adherente' =&gt; _T('prefixe:type_structure_non_adherente'), ), ) ); // SAISIE CHECKBOX SUR L'OBJET RUBRIQUE DE LA BRANCHE N&#176;1 $champs['spip_rubriques']['jour_de_diffusion'] = array( 'saisie' =&gt; 'checkbox', 'options' =&gt; array( 'nom' =&gt; 'jour_diffusion_emission', 'label' =&gt; _T('prefixe:jour_de_diffusion'), 'sql' =&gt; &#034;text DEFAULT '' NOT NULL&#034;, 'defaut' =&gt; '', 'restrictions'=&gt;array( 'branche' =&gt; '1', // Autorisation : Tous les auteurs peuvent voir ce champ 'voir' =&gt; array('auteur' =&gt; ''), // Autorisation : Seuls les admins complets peuvent le modifier 'modifier' =&gt; array('auteur' =&gt; 'admin_complet') ), // Les cases checkbox 'datas'=&gt;array( 'lundi' =&gt; 'Lundi', 'mardi' =&gt; 'Mardi', 'mercredi' =&gt; 'Mercredi', 'jeudi' =&gt; 'Jeudi', 'vendredi' =&gt; 'Vendredi', 'samedi' =&gt; 'Samedi', 'dimanche' =&gt; 'Dimanche' ), ) ); // 2 SAISIES DANS UN FIELDSET POUR L'OBJET AUTEUR $champs['spip_auteurs']['fieldset_numeros'] = array( 'saisie' =&gt; 'fieldset', 'options' =&gt; array( 'nom' =&gt; &#034;fieldset_numeros&#034;, 'label' =&gt; _T('prefixe:chaine_de_langue_fieldset_numeros') ), 'saisies' =&gt; array( // SAISIE INPUT SUR L'OBJET AUTEUR 'telephone' =&gt; array( 'saisie' =&gt; 'input', 'options' =&gt; array( 'nom' =&gt; 'telephone', 'label' =&gt; _T('prefixe:chaine_de_langue_telephone'), // Texte indicatif 'placeholder' =&gt; _T('prefixe:chaine_de_langue_placeholder'), // Limiter ce champ &#224; 30 caract&#232;res 'sql' =&gt; &#034;varchar(30) NOT NULL DEFAULT ''&#034;, 'defaut' =&gt; '', ), // V&#233;rifier que les donn&#233;es saisies correspondent &#224; un num&#233;ro de t&#233;l&#233;phone 'verifier' =&gt; array( 'type' =&gt; 'telephone' ) ), 'fax' =&gt; array( 'saisie' =&gt; 'input', 'options' =&gt; array( 'nom' =&gt; 'fax', 'label' =&gt; _T('prefixe:chaine_de_langue_fax'), // Limiter ce champ &#224; 30 caract&#232;res 'sql' =&gt; &#034;varchar(30) NOT NULL DEFAULT ''&#034;, 'defaut' =&gt; '', ), // V&#233;rifier que les donn&#233;es saisies correspondent &#224; un num&#233;ro de t&#233;l&#233;phone 'verifier' =&gt; array( 'type' =&gt; 'telephone' ) ) ) ); // SAISIE S&#201;LECTEUR D'ARTICLE $champs['spip_articles']['voir_aussi'] = array( 'saisie' =&gt; 'selecteur_article', 'options' =&gt; array( 'nom' =&gt; 'voir_aussi', 'label' =&gt; _T('prefixe:voir_aussi_label'), 'explication' =&gt; _T('prefixe:voir_aussi_explication'), 'sql' =&gt; &#034;varchar(30) NOT NULL DEFAULT ''&#034;, // Possibilit&#233; de choisir plusieurs articles 'multiple' =&gt; true, ) ); return $champs; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Pour aller plus loin&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://contrib.spip.net/Tutoriel-creer-des-champs-extras-depuis-un-plugin&#034; class=&#034;external&#034; rel=&#034;external&#034;&gt;Le tutoriel sur SPIP Contrib&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://contrib.spip.net/Champs-Extras-3&#034; class=&#034;external external auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/Champs-Extras-3&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://contrib.spip.net/Champs-Extras-3-API-et-creations&#034; class=&#034;external external auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/Champs-Extras-3-API-et-creations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://contrib.spip.net/Page-de-documentation-des-Saisies&#034; class=&#034;external external auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/Page-de-documentation-des-Saisies&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://contrib.spip.net/Reference-des-saisies&#034; class=&#034;external external auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/Reference-des-saisies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Afficher des champs extras dans le formulaire d'inscription &#224; une newsletter</title>
		<link>https://notes.cousumain.info/Afficher-des-champs-extras-dans-le-formulaire-d-inscription-a-une-newsletter</link>
		<guid isPermaLink="true">https://notes.cousumain.info/Afficher-des-champs-extras-dans-le-formulaire-d-inscription-a-une-newsletter</guid>
		<dc:date>2019-09-06T10:19:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>jeanmarie</dc:creator>


		<dc:subject>SPIP</dc:subject>
		<dc:subject>Tutoriels</dc:subject>

		<description>
&lt;p&gt;Vous avez cr&#233;&#233; des champs extras pour avoir des informations compl&#233;mentaires sur les inscrits &#224; votre newsletter (ville, code postal...) mais ils n'apparaissent pas par magie dans le formulaire public d'inscription ? &lt;br class='autobr' /&gt;
Voici comment les afficher avec les fonctions formulaire_charger et pre_insertion. &lt;br class='autobr' /&gt;
Cr&#233;ez un petit plugin nomm&#233; CForm (pr&#233;fixe cform) avec 2 fichiers : &lt;br class='autobr' /&gt;
paquet.xml &lt;br class='autobr' /&gt; Champs Extras dans le formulaire d'inscription &#224; la newsletter &lt;br class='autobr' /&gt;
cform_pipelines.php &lt;br class='autobr' /&gt; &lt; ?php &lt;br class='autobr' /&gt;
if (&#8230;)&lt;/p&gt;


-
&lt;a href="https://notes.cousumain.info/-Notes-" rel="directory"&gt;Notes&lt;/a&gt;

/ 
&lt;a href="https://notes.cousumain.info/+-SPIP-+" rel="tag"&gt;SPIP&lt;/a&gt;, 
&lt;a href="https://notes.cousumain.info/+-Tutoriels-+" rel="tag"&gt;Tutoriels&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Vous avez cr&#233;&#233; des champs extras pour avoir des informations compl&#233;mentaires sur les inscrits &#224; votre newsletter (ville, code postal...) mais ils n'apparaissent pas par magie dans le formulaire public d'inscription ?&lt;/p&gt;
&lt;p&gt;Voici comment les afficher avec les fonctions &lt;var&gt;formulaire_charger&lt;/var&gt; et &lt;var&gt;pre_insertion&lt;/var&gt;.&lt;/p&gt;
&lt;p&gt;Cr&#233;ez un petit plugin nomm&#233; CForm (pr&#233;fixe cform) avec 2 fichiers :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;paquet.xml&lt;/strong&gt;&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='xml'&gt;&lt;code&gt;&lt;paquet prefix=&#034;cform&#034; categorie=&#034;communication&#034; version=&#034;1.0.0&#034; etat=&#034;test&#034; compatibilite=&#034;[3.2.0;3.2.*]&#034; &gt; &lt;nom&gt;Champs Extras dans le formulaire d'inscription &#224; la newsletter&lt;/nom&gt; &lt;pipeline nom=&#034;formulaire_charger&#034; inclure=&#034;cform_pipelines.php&#034; /&gt; &lt;pipeline nom=&#034;pre_insertion&#034; inclure=&#034;cform_pipelines.php&#034; /&gt; &lt;necessite nom=&#034;cextras&#034; compatibilite=&#034;[3.11.0;]&#034; /&gt; &lt;/paquet&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;cform_pipelines.php&lt;/strong&gt;&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='php'&gt;&lt;code&gt;&lt;?php if (!defined('_ECRIRE_INC_VERSION')) return; function cform_formulaire_charger($flux) { if ($flux['args']['form'] == 'newsletter_subscribe') { include_spip('inc/cextras'); if ($saisies = cextras_obtenir_saisies_champs_extras('mailsubscribers')) { $flux['data']['_champs_extras_saisies'] = $saisies; } } return $flux; } function cform_pre_insertion($flux) { if ($flux['args']['table'] == 'mailtosubscribers') { include_spip('cextras_pipelines'); $_flux = $flux; $_flux['args']['id_objet'] = null; $_flux = cextras_pre_edition($_flux); $flux['data'] = $_flux['data']; } return $flux; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et... ben c'est tout !&lt;/p&gt;
&lt;p&gt;Activez ce plugin et les champs extras cr&#233;&#233;s via le plugin Champs Extras Interface ou directement via l'API Champs Extras (&lt;a href='https://notes.cousumain.info/spip.php?page=article&amp;id_article=4028'&gt;voir la doc&lt;/a&gt;) apparaitront dans le formulaire public.&lt;/p&gt;
&lt;p&gt;Sur contrib : &lt;a href=&#034;https://contrib.spip.net/5184&#034; class=&#034;external external auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/5184&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
