Chemin principal : Accueil > SPIP > Champs extras > Champ extra, crayons, sqlite

Autres chemins : (Aller directement au contenu de l'article)

Champ extra, crayons, sqlite

mardi 7 décembre 2010, mise à jour mercredi 8 août 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Pour un projet associatif, j’utilise une base de donnée SQLite que je gère via SPIP.

J’ai ajouté à la table spip_articles de SPIP un champ extra, et je souhaitais pouvoir l’éditer via les Crayons.

Voilà comment j’ai procédé, une fois le champ extra ajouté.

Pour rendre éditable le champs (que j’appel ici #CHAMP) via les crayons, rien de plus simple.

  1. <div class='#EDIT{champ}'>
  2. #CHAMP

Télécharger

Seulement voilà : j’obtenais lors de l’édition, non un textarea mais un simple input, ce qui pour rend l’édition compliqué, puisque le contenu du champ peut faire plusieur ligne.

Le plugin crayon définit le type de champ de formulaire, appelé « Contrôleurs » affiché selon le type du champ SQL. Pour les champs de type TEXT, cela dépend de la longueur.

Seulement voilà, en SQLite, les champs de type TEXT ne peuvent avoir qu’une seule longueur. Il n’y a pas de TINYTEXT ou de MEDIUMTEXT ou autre BIGTEXT. C’est pourquoi j’avais systématiquement un input, et non pas un textarea.

Les crayons ont un contrôleur et une vue [1] par défaut pour les champs extra, mais on peut en définir des nouveaux pour chaques types de champ.

Le contrôleur

Dans mon dossier de squelettes [2], j’ai créé un dossier controleurs, dedans un squelette champ.html, qui contient ceci

  1. [(#REM)
  2.  
  3. Controleur pour le crayon 'champ' , uniquement html
  4.  
  5. ]
  6. #CACHE{0}
  7.  
  8. <BOUCLE_a(ARTICLES){id_article}{statut==.}>
  9. <textarea class="crayon-active" name="#ENV{name_champ}"
  10. style="width:#ENV{largeur}px; height:#ENV{hauteur}px;#ENV{style}">
  11.  
  12. [(#CHAMP**)]</textarea>
  13. </BOUCLE_a>

Télécharger

La vue

Idem, dans mon dossier de squelettes, j’ai créé un dossier vues. Et dans ce dossier un fichier champ.html, qui contient

  1. [(#REM)
  2.  
  3. Vue pour le crayon 'champ'
  4.  
  5. ]
  6. #CACHE{0}
  7. <BOUCLE_a(ARTICLES){id_article}{statut==.}>
  8. [(#CHAMP|propre)]
  9. </BOUCLE_a>

Télécharger

Et voilà, j’ai désormais mes crayons qui me permettent d’éditer un champ texte long avec une base SQLite.

P.-S.

J’ai choisi d’utiliser SQLite

  1. Pour économiser une base MySQL chez L’Autre.net, qui limite le nombre à six par adhérents
  2. Parce que je n’avais pas besoin d’une base MySQL, étant donné que seulement cinq personnes peuvent la consulter, et que donc les performances ne sont pas vraiment en jeux.
  3. Parce qu’il est plus simple de récupérer par FTP le fichier SQLite que de passer par PhpMyAdmin pour faire un export [3].

Notes

[1i. e. ce qui est affiché après la modification d’un champ via les crayons.

[2Qui est sous forme de plugin, .cf mon article « Jeux de squelettes sous forme de plugin ».

[3SQLite ne fonctionne pas selon un schéma client/serveur, mais avec un fichier local. Cause, en partie, de ses faibles performances.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un master en sciences religieuses de l’Université de Strasbourg, je suis depuis août 2012 assistant-diplômé en histoire du christianisme antique et littérature apocryphe chrétienne à l’Université de Lausanne, où je prépare une thèse sous la direction de Frédéric Amsler.

Dans le cadre de la rédaction de mon mémoire de master, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul