Carnet Wiki

[TrogloSpip] Comment personnaliser l’espace privé avec le crayon

Un débat extrêmement intéressant et constructif, qui a suscité un véritable intérêt autant des auditeurs que des collaborateurs qui ont participé à cette prise de note qui du coup, est plutôt complète et pas mal structurée.

Prise de note collaborative réalisée à plusieurs mains dont celles de :

  • Davux
  • Suske
  • JLuc
  • Gornety
  • Loiseau2nuit

grâce à Gobby, notre nouveau pote pour la rédaction collaborative !

Livré « en l’état » ! Les notes un peu hasardeuses et les fautes de frappe sont authentiques et d’origine !

(Prise de note non verrouillée à cette heure, le présent doc pourra donc subir quelques modifs...)

Chasse au troll Deuxième volet => l’espace privé !

Conférence Pratique de Cerdic « comment personnaliser l’espace privé »

Objectifs :

  • Dégraisser le troll
  • Revenir sur les interface simplifiées type « open publishing »

Il y a déjà des squelettes dans l’espace privé.

var_mode=inclure et var_mode=debug fonctionnent d’ailleurs également dans l’espace privé !!

La plupart des squelettes utilisé dans /ecrire proviennent d’un dossier /prive où l’on retrouve tout ce qui est squelettisé pour l’espace privé : c’est l’equivalent de /squelettes-dist pour l’interface privée !

/prive/contenu contient les squelettes de présentation des objets spip dans l’interface privée. Ils sont personnalisables.
/prive/editer contient les squelettes des pages d’édition des objets

L’espace privé comporte AUSSI un dossier /formulaires, dont les inclure sont aussi utilisables côté public !
(pour le surcharger, créer les copies de surcharge directement dans /squelettes/formulaires)

/prive/formulaires contient les formulaires utilisés dans les squelettes de /editer
Les formulaires sont appelés par des balises, ex : #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE,#ID_RUBRIQUE,#SELF|parametre_url{edit,''}}
Avec #FORMULAIRE_EDITER_ARTICLE{new,#ID_RUBRIQUE,#SELF|parametre_url{edit,''}}, on peut ouvrir l’interface de création d’un nouvel article.
La bidouille historici-spip /formulaires/editer_article-99.html permet de créer des formulaires spécifiques à la rubrique 99.

Ces formulaires sont appelables depuis le site public !!

ex de code en partie publique, dans article.html :

<a href="[(#SELF|parametre_url{edit=oui})]">Modifier cet article</a>
[(#ENV{edit}|oui) #FORMULAIRE_EDITER_ARTICLE{new,#ID_RUBRIQUE,#SELF|parametre_url{edit,''}}]
  • La première ligne présente un lien vers la même page mais avec le parametre edit=oui en plus
  • La 2e ligne détecte le paramètre edit de l’url, et quand il est présent, affiche le formulaire d’édition de l’article, auquel est passé l’adresse à afficher
    après l’édition : c’est la page d’origine (le parametre edit=oui est supprimé).

En très gros, l’idée c’est que l’essentiel des pages du privé pourraient à terme être réintroduites dans l’espace public afin de s’insérer dans la mise en forme du reste du site...

Bien évidement, ces notions sont abordées dans http://programmer.spip.org/ et le livre qui va avec :-)

Les documents

Le code qui gère cette partie reste ancien. Le chantier de refonte est encours via le plugin mediatheque (gestion des documents).
Avec le plugin mediatheque, #FORMULAIRE_JOINDRE_DOCUMENT{new,#ID_ARTICLE,article} permet également de passer le formulaire en question dans le site public.

Comment gérer les autorisations ?

On peut ensuite vouloir restreindre l’accés à certaines personnes. Il faut pour cela utiliser #SESSION ou plutôt, plus finement, #AUTORISER.
En l’occurence, #AUTORISER{modifier,article,#ID_ARTICLE}|oui)

Truc : mettre un #ENV{edit}|oui/non permet de placer le formulaire dans une zone éditable ou non. Utile par exemple pour permettre de joindre des documents dans un contexte donné sans permette l’édition du texte, et vice-versa...

[(#ENV{edit,non}) <a href="[(#SELF|parametre_url{edit,'oui'})]>Modifier cet article</a> ]
[(#ENV{edit,oui}) #FORMULAIRE_EDITER_ARTICLE ]

[(#AUTORISER{modifier,article,#ID_ARTICLE}) blabla #FORMULAIRE_blabla ] permet de gérer finement les droits d’édition en fonction du statut et des droits du visiteur logué. Cette balise renvoie par défaut « espace » si elle est vérifiée, donc le |oui n’est pas nécessaire (mais facilite la lecture du code).

Pour des exemples, voir le fonctionnement du plugin Autorité

  • télécharger
  • via svn : svn checkout svn://zone.spip.org/spip-zone/_plugins_/autorite
    (=> ce serait cool de pouvoir faire un défrichage des fichiers réellement intéressants car c’est un bon gros chantier quand même ’autorite’ ...)(Suske : en tant qu’écureuil, on perd forcément près de 50% des noisettes planquées pendant l’automne :-) )

JLuc : #AUTORISER est bien documenté mais pas tellement les paramètres correspondant aux différents évènements qui déclenchent la consultation de AUTORISER. Par exemple « est il possible de mettre un AUTORISER sur la création de motclé mais pas sur leur consultation ou leur utilisation ? ». Il faut loguer pour voir ce qui se passe. Parmi les actions de base il y a « creer » et « modifier », mais toutes les configurations ne sont pas prises en compte avec tous les objets (motcles par ex).

Gestion au niveau du Cache ?

  • Risque de démultiplication des caches => Engorgement ?
  • Apparement beaucoup de cas particuliers qu’il va falloir gérer au cas par cas. Ce qui est à retenir, c’est que c’est impactant et qu’on doit le garder en tête !

Et avec le multilinguisme ?

  • selon Paolo : le côté multilangue provoquerait plusieurs problèmes au niveau de la gestion des droits utilisateurs (mais j’ai pas forcément réussi à suivre lesquels...)

Les plugins

  • Si un plug vient surcharger un formulaire interne, les modifs sont elles reportées également côté public ? => Oui !

Si on veut un formulaire d’édition différent dans la partie privée et dans la partie publique, il est possible de le dupliquer en changeant le nom (#FORMULAIRE_EDITER_ARTICLE) pour modifier cette version.

La page d’accueil de l’espace privé

Pour l’heure, rien n’est encore fait niveau skeletisation.

Un besoin assez récurent concerne la personnalisation des listes d’articles présentés sur cette page

Un plugin « afficher_objet » permet d’intervenir apparement sur le tri et d’introduire la pagination en ajax comme sur le public :

  • Télécharger : (En Test ! donc pas encore dispo sur files.spip.org)
  • SVN : svn checkout svn://zone.spip.org/spip-zone/_plugins_/afficher_objets

Il implémente pour l’instant les listes du privé d’articles, de breves, de sites syndiqués et d’articles syndiqués.
Il est ainsi possible de modifier ces squelettes pour changer les critères d’affichages :
-  faire une pagination par 50 au lieu de 10
-  afficger un minilogo de l’objet dans la liste
-  afficher aussi les articles refusés
...

Il est possible d’y ajouter (dans afficher_objets/prive/liste) d’autres squelettes pour afficher les listes de forums, tickets, lettres, ...

Créer de nouvelles pages dans l’espace privé avec un squelettes !

Un dossier /prive/exec et c’est parti !

Pour soigner les facheux de l’apparence !

donner un coup de fresh à votre interface privé avec le plugin themes_interface_prive !

  • Télécharger (via « Step » par exemple :-) )
  • SVN : svn checkout svn://zone.spip.org/spip-zone/_plugins_/themes_interface_privee
  • nécéssite css_imbriquees : svn checkout svn://zone.spip.org/spip-zone/_plugins_/css_imbriquees

Dès le plugin installé, rendez vous dans la page de vos préférences utilisateurs, au même endroit où l’on pouvait déjà changer ses couleurs.

Le plugin « bandeau » pour avoir un menu plus sympa :-)

  • Télécharger (via « Step » par exemple :-) )
  • SVN : svn checkout svn://zone.spip.org/spip-zone/_plugins_/bandeau
  • nécéssite Spip Bonux : svn checkout svn://zone.spip.org/spip-zone/_plugins_/spip-bonux-2

Pour conclure

  • [Davux] il semble que le plus judicieux pour avoir finalement une bonne interface privée, à terme, c’est d’attendre que les users se soient bidouillé eux même des interfaces avec tout ce que l’on vient d’énoncer, et de voir par la suite à « fusionner » un peu cette intelligence collective pour aboutir à une interface revue. (ca ne convainc pas tout le monde comme méthode)
  • [Azerttyu] Il y a encore trop d’éléments sensibles umbriqués les uns les autres pour aboutir à une vraie personalisation de l’espace privé par le premier w<ebmaster venu ! En gros, la plus grosse facilité actuellement, c’est de « sortir » les éléments qui nous intéresse et de les réinjecter dans nos squelettes publics ! On a donc encore besoin que le « Core » donne la direction. Pour l’heure on n’a pas la finesse necessaire pour opérer sans risque.
  • [Cerdic] Il reste des briques élémentaires à écrire (*gros* chantier, démarré il y a déjà 2 ou 3 ans...)
Loiseau2nuit , Suske - Mise à jour :4 août 2015 à 16h37min