Pour rendre éditable le champs (que j’appel ici #CHAMP
) via les crayons, rien de plus simple.
<div class='#EDIT{champ}'>
#CHAMP
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
[(#REM)
Controleur pour le crayon 'champ' , uniquement html
]
#CACHE{0}
<BOUCLE_a(ARTICLES){id_article}{statut==.}>
<textarea class="crayon-active" name="#ENV{name_champ}"
style="width:#ENV{largeur}px; height:#ENV{hauteur}px;#ENV{style}">
[(#CHAMP**)]</textarea>
</BOUCLE_a>
La vue
Idem, dans mon dossier de squelettes, j’ai créé un dossier vues
.
Et dans ce dossier un fichier champ.html
, qui contient
[(#REM)
Vue pour le crayon 'champ'
]
#CACHE{0}
<BOUCLE_a(ARTICLES){id_article}{statut==.}>
[(#CHAMP|propre)]
</BOUCLE_a>
Et voilà, j’ai désormais mes crayons qui me permettent d’éditer un champ texte long avec une base SQLite.