<?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>Geekographie Ma&#239;eulesque</title>
	<link>https://geekographie.maieul.net/</link>
	<description>Ce site est consacr&#233; &#224; quelques unes des mes geekeries. J'y donne des conseils, des r&#233;flexions, sur les logiciels et les langages que je connais ou que j'apprends.
J'y parle notamment de l'usage de LaTeX en sciences humaines et sociales, en particulier pour la gestion de la bibliographie.
Le contenu peut &#234;tre sous la forme d'articles d&#233;taill&#233;s ou de simples notes.
L'ensemble du contenu est, sauf pr&#233;cision contraire, sous licence Cr&#233;ative Commons Paternit&#233;-Partage des Conditions Initiales &#224; l'identique France.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://geekographie.maieul.net/spip.php?id_rubrique=38&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Champ extra, crayons, sqlite</title>
		<link>https://geekographie.maieul.net/9</link>
		<guid isPermaLink="true">https://geekographie.maieul.net/9</guid>
		<dc:date>2010-12-07T16:59:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Pour un projet associatif, j'utilise une base de donn&#233;e SQLite que je g&#232;re via &lt;span class=&#034;caps&#034;&gt;SPIP&lt;/span&gt;. J'ai ajout&#233; &#224; la table spip_articles de &lt;span class=&#034;caps&#034;&gt;SPIP&lt;/span&gt; un champ extra, et je souhaitais pouvoir l'&#233;diter via les Crayons. Voil&#224; comment j'ai proc&#233;d&#233;, une fois le champ extra ajout&#233;. Pour rendre &#233;ditable le champs (que j'appel ici #&lt;span class=&#034;caps&#034;&gt;CHAMP&lt;/span&gt;) via les crayons, rien de plus simple. #&lt;span class=&#034;caps&#034;&gt;CHAMP&lt;/span&gt; Seulement voil&#224;&#160;: j'obtenais lors de l'&#233;dition, non un textarea mais un simple input, ce qui pour rend l'&#233;dition compliqu&#233;,&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://geekographie.maieul.net/Champs-extras" rel="directory"&gt;Champs extras&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Pour un projet associatif, j'utilise une base de donn&#233;e &lt;a href=&#034;https://fr.wikipedia.org/wiki/SQLite&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;SQLite&lt;/a&gt; que je g&#232;re via &lt;span class=&#034;caps&#034;&gt;SPIP&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;J'ai ajout&#233; &#224; la table spip_articles de &lt;span class=&#034;caps&#034;&gt;SPIP&lt;/span&gt; un &lt;a href=&#034;http://plugins.spip.net/Champs-extra&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;champ extra&lt;/a&gt;, et je souhaitais pouvoir l'&#233;diter via les &lt;a href=&#034;http://www.spip-contrib.net/Les-crayons&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Crayons&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voil&#224; comment j'ai proc&#233;d&#233;, une fois le champ extra ajout&#233;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Pour rendre &#233;ditable le champs (que j'appel ici &lt;code&gt;#CHAMP&lt;/code&gt;) via les crayons, rien de plus simple.&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='spip'&gt;&lt;code&gt;&lt;div class='#EDIT{champ}'&gt;
#CHAMP&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Seulement voil&#224;&#160;: j'obtenais lors de l'&#233;dition, non un &lt;code&gt; textarea&lt;/code&gt; mais un simple &lt;code&gt;input&lt;/code&gt;, ce qui pour rend l'&#233;dition compliqu&#233;, puisque le contenu du champ peut faire plusieur ligne.&lt;/p&gt;
&lt;p&gt;Le plugin crayon d&#233;finit le type de champ de formulaire, &lt;a href=&#034;http://www.spip-contrib.net/Crayons-Controleurs-et-Vues&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;appel&#233; &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Contr&#244;leurs&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/a&gt; affich&#233; selon le type du champ &lt;span class=&#034;caps&#034;&gt;SQL&lt;/span&gt;. Pour les champs de type &lt;code&gt;TEXT&lt;/code&gt;, cela d&#233;pend de la longueur.&lt;/p&gt;
&lt;p&gt;Seulement voil&#224;, en SQLite, les champs de type &lt;code&gt;TEXT&lt;/code&gt; ne peuvent avoir qu'une seule longueur. Il n'y a pas de &lt;code&gt;TINYTEXT&lt;/code&gt; ou de &lt;code&gt;MEDIUMTEXT&lt;/code&gt; ou autre &lt;code&gt;BIGTEXT&lt;/code&gt;. C'est pourquoi j'avais syst&#233;matiquement un &lt;code&gt;input&lt;/code&gt;, et non pas un &lt;code&gt;textarea&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les crayons ont un contr&#244;leur et une vue&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;i. e. ce qui est affich&#233; apr&#232;s la modification d'un champ via les crayons.&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; par d&#233;faut pour les champs extra, mais on peut en d&#233;finir des nouveaux pour chaques types de champ.&lt;/p&gt;
&lt;h2 class=&#034;h2&#034;&gt;Le contr&#244;leur&lt;/h2&gt;
&lt;p&gt;Dans mon dossier de squelettes&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Qui est sous forme de plugin, .cf mon article &#171;&#160;Jeux de squelettes sous (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;, j'ai cr&#233;&#233; un dossier &lt;code&gt;controleurs&lt;/code&gt;, dedans un squelette &lt;code&gt;champ.html&lt;/code&gt;, qui contient ceci&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='spip'&gt;&lt;code&gt;[(#REM) Controleur pour le crayon 'champ' , uniquement html ]
#CACHE{0} &lt;BOUCLE_a(ARTICLES){id_article}{statut==.}&gt;
&lt;textarea class=&#034;crayon-active&#034; name=&#034;#ENV{name_champ}&#034; style=&#034;width:#ENV{largeur}px; height:#ENV{hauteur}px;#ENV{style}&#034;&gt; [(#CHAMP**)]&lt;/textarea&gt;
&lt;/BOUCLE_a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;h2&#034;&gt;La vue&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Idem&lt;/i&gt;, dans mon dossier de squelettes, j'ai cr&#233;&#233; un dossier &lt;code&gt;vues&lt;/code&gt;.
Et dans ce dossier un fichier &lt;code&gt;champ.html&lt;/code&gt;, qui contient&lt;/p&gt;
&lt;div class='precode'&gt;&lt;pre dir='ltr' style='text-align: left;' class='spip'&gt;&lt;code&gt;[(#REM) Vue pour le crayon 'champ' ]
#CACHE{0}
&lt;BOUCLE_a(ARTICLES){id_article}{statut==.}&gt;
[(#CHAMP|propre)]
&lt;/BOUCLE_a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et voil&#224;, j'ai d&#233;sormais mes crayons qui me permettent d'&#233;diter un champ texte long avec une base SQLite.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div &lt;div class='rss_ps'&gt;&lt;p&gt;J'ai choisi d'utiliser SQLite&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;Pour &#233;conomiser une base &lt;a href=&#034;https://fr.wikipedia.org/wiki/MySQL&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;MySQL&lt;/a&gt; chez &lt;a href=&#034;http://lautre.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;L'Autre.net&lt;/a&gt;, qui limite le nombre &#224; six par adh&#233;rents&lt;/li&gt;&lt;li&gt; Parce que je n'avais pas besoin d'une base MySQL, &#233;tant donn&#233; que seulement cinq personnes peuvent la consulter, et que donc les performances ne sont pas vraiment en jeux.&lt;/li&gt;&lt;li&gt; Parce qu'il est plus simple de r&#233;cup&#233;rer par &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; le fichier SQLite que de passer par PhpMyAdmin pour faire un export&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;SQLite ne fonctionne pas selon un sch&#233;ma client/serveur, mais avec un (&#8230;)&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&lt;i&gt;i. e.&lt;/i&gt; ce qui est affich&#233; apr&#232;s la modification d'un champ via les crayons.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Qui est sous forme de plugin, &lt;i&gt;.cf&lt;/i&gt; mon article &lt;a href='https://geekographie.maieul.net/3' class=&#034;spip_in&#034;&gt;&#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Jeux de squelettes sous forme de plugin&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;SQLite ne fonctionne pas selon un sch&#233;ma client/serveur, mais avec un fichier local. Cause, en partie, de ses faibles performances.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>
