[SPIP Zone] editer les champs vides avec les crayons

Salut,

en essayant les crayons, j'ai essayé de voir comment éditer les champs qui ont été publiés vides.

Sur l'excellente suggestion de toggg (maaâîitre), j'ai testouillé deux/trois choses et j'arrive à la conclusion suivante:

Pour editer un champ vide (et le remplir) dans l'espace public, il faut mettre dans le squelette à la place de

[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]

il faut ecrire

<p class="#EDIT{surtitre} surtitre">&nbsp;#SURTITRE</p>

enlever les crochets affiche le paragraphe obligatoirement, et donc les classes. le &nbsp; fait que le <p> n'est pas vide. Même un simple espace ne suffit pas.

Voilà.
--
James

Le 21 déc. 06, à 19:07, James a écrit :
Salut,

en essayant les crayons, j'ai essayé de voir comment éditer les champs
qui ont été publiés vides.

Sur l'excellente suggestion de toggg (maaâîitre), j'ai testouillé
deux/trois choses et j'arrive à la conclusion suivante:

Pour editer un champ vide (et le remplir) dans l'espace public, il faut
mettre dans le squelette à la place de

[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]

il faut ecrire

<p class="#EDIT{surtitre} surtitre">&nbsp;#SURTITRE</p>

enlever les crochets affiche le paragraphe obligatoirement, et donc les
classes. le &nbsp; fait que le <p> n'est pas vide. Même un simple espace
ne suffit pas.

Pour compléter la réflexion de James, je met copie ici d'un échange sur irc le 14 déc

- il faudrait avancer sur spip+crayons = spikini
- tu rajoute les "mots wiki" pour la création de page et c'est bon non ?
- les motswiki c'est pas le top
- [->nouvellepage] c'est mieux
- euh .. et ça se rangerais dans une rubrique par défaut ou on pourrait choisir
- moi je dirais une rubrique ad hoc
- avec un squelette article-NN.html
- ben dans la rubrique en cours non ?
- c'est quoi "la rubrique en cours"...
- on va pas créer l'article quand on passe propre sur [->truc]
- mais quand on clique sur /truc et que la page existe pas, et qu'on valide un formulaire
- mais en fait c'est plutôt un 404.html qu'il faut faire
- qui propose de créer l'article
- si on a les droits etc
- ben oui
- encore que
- pourquoi on aurait pas betement un bouton 'Creer une page'
- aussi ?
- sur la 404
- c'est ce que je dis
- non pas seulement
- a
- sur le spikini
- les deux sont complementaires
- oué
- des fois tu vas pas aller creer un lien qqpart pour creer ta page
- bin non
- tu peux aller directement à l'url qui t'inréesse
- oui mais bon c'est pas intuitif pour le beotion non plus ca
- non
- c'est comme ça ue marchent les wikis
- les 3 modes doivent marcher
- mais "créer une page" ça marche aussi
- url/404/bouton
- url et 404 c'est la même chose

@+ NicolasR

James wrote:

Pour editer un champ vide (et le remplir) dans l'espace public, il faut mettre dans le squelette à la place de

[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]

il faut ecrire

<p class="#EDIT{surtitre} surtitre">&nbsp;#SURTITRE</p>

enlever les crochets affiche le paragraphe obligatoirement, et donc les classes. le &nbsp; fait que le <p> n'est pas vide. Même un simple espace ne suffit pas.
  

Tu n'as pas besoin d'ajouter un blanc , même un paragraphe ou une div vide , ça fonctionne.

Le problème du surtitre , si tu pars du article.html standard , c'est que la ligne vide fait que son crayon se positionne au même endroit que celui du titre , donc innaccessible.
Tu peux le voir en rajoutant simplement un <br /> pour le séparer du titre.

Bon, là dessus, vu que les crayons ne sont visibles qu'au survol , c'est pas intuitif de les trouver si la zone est vide...
Aussi le titre de ce crayon est toujours le même et ne précise pas quel élément est concerné (surtitre ou titre par exemple). Ca c'est quelque chose que fil et moi avions évoqué, le titre devrait être complété , peut être très "roots" sans traduction dans un premier temps.
--
toggg

James wrote:

Salut,

en essayant les crayons, j'ai essayé de voir comment éditer les champs qui ont été publiés vides.

Sur l'excellente suggestion de toggg (maaâîitre), j'ai testouillé deux/trois choses et j'arrive à la conclusion suivante:

Pour editer un champ vide (et le remplir) dans l'espace public, il faut mettre dans le squelette à la place de

[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]

il faut ecrire

<p class="#EDIT{surtitre} surtitre">&nbsp;#SURTITRE</p>

enlever les crochets affiche le paragraphe obligatoirement, et donc les classes. le &nbsp; fait que le <p> n'est pas vide. Même un simple espace ne suffit pas.

Voilà.

Oulà oui, mais non, parce que ça te met un paragraphe vide, ce qui te créé une ligne vide, ça qui peut rendre moins joli ton site. Et qui n'a en plus aucun sens.

Est-ce qu'on ne pourrait pas envisager d'utiliser les classes sur des div (qui peuvent avoir une hauteur de 0px) et d'avoir un 'mode' 'afficher les crayons', qui ferrait apparaître les 'boutons' permettant l'édition du champ ?

--

Olivier G.
http://www.lespacedunmatin.info/blog/

[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]

il faut ecrire

<p class="#EDIT{surtitre} surtitre">&nbsp;#SURTITRE</p>

enlever les crochets affiche le paragraphe obligatoirement, et donc les
classes. le &nbsp; fait que le <p> n'est pas vide. Même un simple espace
ne suffit pas.

tout dépend de ce que tu veux faire ; dans un premier temps les cryaons
c'est "les corrections rapides d'un texte existant".

Maintenant, c'est clair qu'on a envie de les utiliser pour des interfaces
plus "complètes". Mais attention, alors, à ne pas proposer d'éditer le
surtitre dans un site qui les aurait désactivés (par exemple)...

Ce que j'imaginais comme étape suivante, c'est de faire fonctionner les
crayons dans l'espace privé. Mais effectivement on peut décider d'essayer de
singer exec=articles+articles_edit par un squelette + crayons.

Cela dit refaire un truc qui existe c'est moyennement motivant. Si on se
lançait plutôt dans l'assassinat du spikini à grand coups de squelettes, de
crayons et d'autoriser() ?

-- Fil

Fil a écrit :

Cela dit refaire un truc qui existe c'est moyennement motivant. Si on se
lançait plutôt dans l'assassinat du spikini à grand coups de squelettes, de
crayons et d'autoriser() ?

Un bon préalable, pour créer une nouvelle page, c'est de pouvoir afficher un champ éditable et vide, d'où ma démarche :slight_smile:

maitenant, faudrait voir pour faire un bouton 'nouveau' et une API dans crayons pour que, par exemple :

spip.php?page=article&nouveau=TitrePage affiche le squelette en mode insertion

ou spip.php?page=nouveau&id_rubrique=X&nouveau=TitrePage, enfin, je sais pas ce qui serait le plus sécurisant et le plus pratique...

--
James

maitenant, faudrait voir pour faire un bouton 'nouveau' et une API dans
crayons

"créer une nouvelle page", c'est pas du domaine d'un crayon... ce sera un
script séparé je pense.

spip.php?page=article&nouveau=TitrePage affiche le squelette en mode
insertion

Ah, bin non, je vois pas ça comme ça... je vois plutôt

http://site.tld/page-qui-existe-pas => 404 + bouton "crééer cette page"

"clic sur le bouton" => crée l'article et renvoie immédiatement sur
http://site.tld/page-qui-existe-pas (qui désormais existe)

Pour le titre par défaut, mettre "Sans titre" (ça c'est déjà dans l'API
inc/modifier) ou mettre un truc tiré de l'url ;
et pour le texte par défaut faire le coup du &nbsp; ou mettre un texte
d'aide "double-cliquez pour créer cette page".

(Avec éventuellement un garbage collector pour les articles créés mais
jamais édités.)

-- Fil

Fil a écrit :

maitenant, faudrait voir pour faire un bouton 'nouveau' et une API dans crayons

"créer une nouvelle page", c'est pas du domaine d'un crayon... ce sera un
script séparé je pense.

qui existe presque déjà :

spip.php?action=editer_article&arg=oui&id_parent=1&redirect=http%3A%2F%2F127.0.0.1%2Fspip%2Fecrire%2F%3Fexec%3Darticles&editer_article=oui&hash=d68ecXXXXXXXXXXXX462159d

En GET dans le navigateur, ça créé bien un article, vide, sans titre, pour peu qu'on ait récupérer le hash d'un formulaire de création d'article de l'espace privé.

donc, ce que j'en ai compris

spip.php, on a.

action = editer_article, ça se surcharge.

arg = oui, ça dit que c'est une insertion d'article.

id_parent = la rubrique parente

Cette rubrique: On définit une constante _SPIP_RUBRIQUE_WIKI, qui contient une chaine de type "1:2:3" (cf, spip_loader_update) définissant les rubriques wiki du site. Si on fournit un id_rubrique dans l'url, on le compare au contenu de la constante. Si on ne fournit pas d'id_rubrique, on prend le premier élément numérique de la chaine.

On pourrait imaginer un champ supplémentaire dans la table spip_rubriques, mais bof...

redirect = l'url où on sera rediriger après le succès de l'insertion en base qui sera la page publique de l'article

editer_article = oui (semble facultatif, n'est utiliser nulle part, code mort sans doute)

et hash, qu'il faut calculer. (fonction securiser_action_auteur() dans <code>ecrire/inc/securiser_action.php</code>)

Une fois fait :

-* le statut est 'prepa': c'est dans la fonction insert_article() qu'il est défini, ligne 100 du fichier <code>ecrire/action/editer_article.php</code> Qu'on peut surcharger, on l'a dit.

-* l'article se retrouve sans titre: Idem ci-dessus, le champ est à ajouter à la requête avec un titre par défaut, ou issu de l'url.

-* On peut mettre un texte par défaut : double-cliquez pour editer cette page, mais il faudrait alors le vider propremement --> <code>[(#TEXTE|sinon{<:double_clic_pour_editer:>})]</code> sans le squelette.

Evidement, ça marche si l'auteur est identifié. ça marcherait pour un auteur '6forum', je crois. Si on veut élargir à tous les visiteurs, on peut ne stocker aucun auteur... comme pour les brèves ? :smiley: Par contre, il faut sans doute penser au stockage de l'adresse IP (ou du hostname, s'il est résolu?), mais où ?

Le bouton 'créez cette page' de la page 404 devient assez trivial à faire.

(Avec éventuellement un garbage collector pour les articles créés mais
jamais édités.)

Pas la moindre idée de comment on fait ça.

--
James