[spip-dev] Surcharge espace privé - retour, pb rencontrés

Bonjour,

J’ai avancé le développement d’un espace privé sur mesure pour un site.

J’ai relevé quelques difficultés énoncées plus bas.
Je peux ouvrir des tickets pour ces éléments s’il le faut.
Peut être s’agit il aussi simplement d’un mauvais usage de ma part.

Contexte :

  • SPIP 3.1
  • Espace privé simplifié sur mesure (avec possibilité de retour via un ?var_skel=dist)
  • Développement dans un sous dossier “prive” de “mon-squelette” (pour permettre le retour via ?var_skel justement).

Remarque 1 :
En surchargeant accueil.html et en mettant juste un “hello world” dedans, je me retrouve avec plus de chose car les plugins de spip injectent du code, par exemple la liste des dernières révisions.
Je m’en tire en nommant tous mes squelettes différemment et en utilisant un mapping calqué sur http://contrib.spip.net/Personnaliser-la-page-d-accueil-de-l-espace-prive

Quand des #PIPELINE sont présents dans le squelette que je surcharge, j’ai la possibilité de choisir de le conserver ou pas, ce qui est parfait.
Mais parfois, il doit être déclaré plus en amont (fichiers php) et n’ai donc d’autres choix que de renommer et mapper. Y a t-il une contrainte technique à ce que tous les pipelines qui concernent de l’affichage ne soient pas dans les squelettes ?

Remarque 2 :
Je ne peux pas mettre mes formulaires CVT dans “spip/mon-squelette/prive/formulaires” (comme c’est le cas pour “spip/prive/formulaires”)
Je dois les mélanger avec ceux public de “spip/mon-squelette/formulaires” (ou les mettre dans un plugin).

Remarque 3 :
De même si je fais un include_spip(‘inc/truc’) dans mon formulaire, il va chercher truc dans “spip/mon-squelette/inc”.
Idem avec le dossier action.

Cette 3ème remarque est sans doute lié à la 2ème.
Mais je vois que dans “spip/ecrire/prive/formulaires”, les actions|inc sont recherchés dans spip/ecrire.
L’analogie serait donc bien de les mettre dans mon-squelette/actions|inc !!

Conclusion :

Pour respecter le contexte initial, et avoir une bonne séparation de la partie privée, l’idée serait donc :

1 - un dossier mon-squelette/prive (permettant le ?var_skel)

2 - un plugin pour héberger les actions|include …

3 - et que “mon-squelette/prive/formulaires” fonctionne ?

Merci pour votre analyse,

Julien

J'ai pas tout compris, mais pour que le chemin 'prive' soit pris en compte il faut le déclarer. Ce qui est moins facile à faire si tu utilises le répertoire 'squelettes', mais est très facile avec un plugin.

C'est la balise '<chemin>' qui est faite pour cela dans paquet.xml

MM.

Coucou,

profitons en pour lier http://plugins.spip.net/redaction-du-paquet-xml.html

mais du coup je vois "Note : cette balise ne sera peut-être pas maintenue. " @tonton Eric ?

Ben.

Merci du retour,

J'ai pas tout compris, mais pour que le chemin 'prive' soit pris en compte
il faut le déclarer. Ce qui est moins facile à faire si tu utilises le
répertoire 'squelettes', mais est très facile avec un plugin.

J'ai en effet besoin de faire cette personnalisation dans un dossier
'squelette'.
Pour archive, les motivations sont ici : Personnalisation de l'espace privé (#3411) · Tickets · spip / spip · GitLab

Je viens de découvrir qu'on pouvait déclarer plusieurs squelettes dans le
'mes_options' !
(Les variables de personnalisation - SPIP)

J'ai donc fait la séparation entre les formulaires de mon site, et ceux de
mon espace privé en créant un squelette "mon-espace-prive".

J'ai aussi du créer un plugin car je ne peux pas avoir un
'mes_fonctions.php' dans mes 2 squelettes, l'un prenant la main sur l'autre.
Ça me résout les remarques 2 et 3 du sujet initial.

Il y a quand même qqch qui n'est pas homogène entre l'espace privé natif de
spip :

spip
  >- prive
       >- formulaires
       >- squelettes

...et quand on personnalise les éléments dans un dossier squelette :

mon-squelette
  >- formulaires
  >- prive
       >- squelettes

Plugins et squelettes ont la même structure en revanche.

Ma 1ere remarque dans le sujet initial complique un peu les choses : les
pipelines n'étant pas forcément déclarés dans les squelettes surchargées
(ex : affiche_milieu), j'en viens à nommer tous mes squelettes différemment
et à capter le exec pour le resetter avec le bon nom (mes_options.php) -
Afin de maitriser ce que j'affiche.

Au final, pour développer un espace privé sur mesure ; L'espace privé natif
devenant une interface "experte" (accessible en switchant de squelettes),
j'en viens donc à faire cela :
- un dossier squelette dédié.
- un plugin pour le mes_fonctions (ne pouvant pas en mettre dans le dossier
squelette dédié), et les api.
- un mapping de nom d'exec dans le mes_options.php (dû au renommage des
pages).

Et ça fait le job, youhou !

Avec cette façon de faire, c'est moins évident de surcharger l'espace
privé, comparé à la partie publique.
Il me semble qu'on y gagnerait :
- En réglant le pb des "pipelines invisibles" qui nous empêche de choisir
si on les veut ou pas.
- En ayant un système comme pour le public et une sorte de
'$dossier_squelettes_prive'

C'est la première fois que je me lance dans l'idée de m'affranchir de
l'espace privé natif comme interface "pour tous".
J'ai pas mal lu depuis SPIP 3 cette volonté de pouvoir personnaliser
l'espace privé.
On trouve des exemples pour adapter l'existant ou pour le remplacer, mais
je n'ai encore rien vu pour le "côtoyer".
Je vous expose un peu mon cheminement. :slight_smile:

Julien

Personnaliser l'espace privé me semble en effet bien compliqué.
Mais quel est au juste ton intérêt à garder un "privé"
avec les complications que tu rencontres
quand a priori on peut faire la même chose en public
de manière plus ciblée sur les besoins particuliers
avec les restrictions et usages de #AUTORISER qui vont bien ?
JLuc

Personnaliser l’espace privé me semble en effet bien compliqué.