gestion des trucs & astuces

danielsandanielsan Member
mai 2012 modifié dans Discussions générales
Bonjour à vous,


je viens vous faire part d'une réflexion pour laquelle j'aimerai avoir votre avis.


L'esprit de PluXml, si je l'ai bien cernée, est d'avoir un noyau allégé permettant la personnalisation.


Les trucs&astuces se différencient des plugins dans le fait qu'on peut les insérer directement dans le template.


A ces astuces, on peut aussi y associer des CSS.


Peut-on penser à une fonction de gestion de ces trucs&astuces ?


A la manière de la gestion des plugins, on aurait un dossier "tricks" dans lequel on y glisserai un dossier par astuce.
Dans chacun de ces dossiers, 2 fichiers: celui à insérer dans le template et une css.


En prime, le module de gestion des astuces permettrait de compiler une seule css reprenant chacune des css des astuces.


En allant plus loin mais pas trop, peut-on penser à une série de variables CSS standards à PluXml ?
plx_lightcolor, plx_darkcolor, plx_border, etc ...


On aurait ainsi un système de partage des développements parfaitement intégré esthétiquement parlant.


En parlant de la compilation des CSS et de variables standards, un système global à PluXml ( templates, plugins, tricks ) ça ne serait pas dans la mouvance ???


Un rapprochement entre web-développeur et web-designer, ça serait cool non ?


Cordialement,

_____
D.San


ps: dans mon plugin d'e-commerce, j'utilise une feuille de style globale avec variables. Le résultat est fort sympathique puisqu'il y a homogénéité des couleurs du bouton "ajout au panier" jusqu'au PDF du bon de commande envoyé ...

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut Daniel
    j'ai pas bien compris ta définition de "trucs&astuces", mais ça sent l'usine à gaz...

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • par exemple sur samare.net, il y a les sections plugins et astuces.
    Les plugins s'installent alors que les astuces se collent directement dans les templates.
    Les plugins créent de nouvelles fonctions alors que les astuces utilisent celles du core.


    Si je pense à ça c'est que je conçois des sites en compilant des "briques" que j'ai créé.
    La brique menu, la brique article suivant/précédent, etc ...


    Quand je crée un site, je définie les besoins, et selon vais piocher dans ma bibliothèque de briques pour assembler le tout.


    Ma bibliothèque actuelle est en partie le site du lapin bleu et je fais du copier/coller.
    C'est pourquoi je pensais à une gestion de ces briques qui s’inséreraient automatiquement là où l'on veut ... à la manière des plugins.


    Sinon l'histoire du compilateur CSS avec variables, t'en pense quoi ?
  • Comment tu définis l'endroit où tu colles tes briques (de façon automatique j'entends) ???
  • amowebamoweb Member
    Tu voudrais créer un template à la vollée ?
  • 2 possibilités:


    1/ comme les plugins, on va dans le template et rajoute la ligne d'insertion


    2/ comme je ne sais plus quel CMS: en 2 temps:
    1/ des zones sont définies dans le template
    2/ dans le paramètre de la brique on lui dit "va te mettre dans telle zone"


    bon, en attendant on peut imaginer un plugin "tricks" pour faire ça.
    exemple avec l'astuce "Afficher un bloc avec les derniers articles d'une seule catégorie"
    j'ai un fichier blocLastNews.php qui comporte l'astuce que je place dans le dossier "tricks".
    Puis à l'endroit voulu j'appelle le plugin tricks avec comme paramètre blocLastNews.


    Et ça m'insère ce qui est dans le fichier blocLastNews.php
    Reste à voir l'histoire des CSS qui soient liées avec les critères du site (d'où les variables )
  • StéphaneStéphane Member, Former PluXml Project Manager
    ok je vois mieux maintenant grace à ton exemple ici

    pour le moment je ne vois pas trop comment faire pour rendre ce que tu veux suffisament souple et répondre à différents besoins sans qu'on vienne alourdir PluXml

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • @amoweb: :D
    j'ai réalisé un cahier des charges pour la conception de site internet sous la forme d'un formulaire PDF ...
    il m'est possible de récupérer les réponses sous la forme d'une base XML ... et oui pourquoi pas selon les réponses données ça irait piocher dans ma bibliothèque ... mais cette partie n'a rien à voir avec PluXml ;)
  • @stéphane, je suis d'accord avec le terme widget.

    mais j'avoue que tout cela pour remplacer un simple copier/coller dans le template ( qui j'avoue ne mange pas de pain ! ) ... c'est un peu tiré par les cheveux !


    Faudrait éventuellement voir un petit framework PluXml indépendant pour générer des template à la volée :D
  • amowebamoweb Member
    Ça risque d'être lourd. En plus, ça veut dire que pour chaque site tu va mettre TOUS tes widgets dans un dossier et choisir seulement les bons ?

    Avec un peu d'organisation, tu pourrait aussi simplement créer un dossier widgets avec des fichiers php que tu inclus (include). Comme ça, si tu fais un màj d'un widget, tu peux redispatcher le fichier sur tout tes sites.
  • Rajouter un dossier widgets au template et faire un include,
    ça lie le widget au template et non à PluXml.



    Dans un sens c'est bien car si un template a été conçu en prenant en compte ces widgets on peut partager l'intégralité.


    Dans l'autre sens, si on change de template, on perd les widgets.
    Tu vois ce que je veux dire ?


    Il y a un CMS qui définit des zones dans le template afin d'y associer le contenu.
    Mais je ne sais plus lequel.


    Le résultat est qu'on a la mise en page d'un template fixe avec des plugins/widgets fluides.


    Dans l'admin d'un plugin/widgets, on lui indique d'aller se mettre dans la zone définie.
    L'intégration est ainsi optimisée.


    Je trouvais cette fonction sympatoche.
    A voir si c'est vraiment utile car cela rajoute un paramètre à renseigner ...


    Pour mon prochain développement, je vais créer un dossier widget et voir ce que ça donne.
    Reste à creuser la gestion des CSS et des variables globales ...
  • amowebamoweb Member
    Sinon tu crée différentes zones représentées par des fichier php contenants les includes de chaque widget. Ensuite tu n'as plus qu'à inclure tes fichiers zones.

    Et si tu es motivé, tu peux créer un plugin qui, pour chaque zone, permet d'ajouter un widget (sélection dans une liste déroulante) + remplissage de différents paramètres et ça ajouter les includes et les paramètres à tes fichiers de zone fichiers..

    Pour gérer les paramètres, c'est simple, il suffit de remplir des variables juste avant l'inclusion.
  • danielsandanielsan Member
    mai 2012 modifié
    c'est justement ce à quoi je pensais:


    un gabarit/template dans lequel on place les appels du plugin widgets avec comme paramètre le nom de la zone.
    Puis dans la config du plugin soit on renseigne les noms des différentes zones soit j'en définis par défaut ( header, menu, sidebar, footer, etc ... ).


    Ensuite dans le dossier du plugin il y aurait les fichiers des widgets
    ( ex: lastNews.php / lastNews.css )


    Ainsi le plugin:
    1/ lit le contenu du dossier,
    2/ liste les widgets et place en face de chacun d'eux le menu déroulant comportant les différentes positions
    3/ compile les CSS en un seul fichier et effectue un preg_replace des variables css


    C'est le genre de fonction que j'aimerai voir en natif s'il prenait aussi en compte les plugins et les CSS des templates ...
    On aurait une gestion des plugins, une gestion des widgets et une gestion des positions dans les options d'affichage ...
  • amoweb a écrit:
    Sinon tu crée différentes zones représentées par des fichier php contenants les includes de chaque widget. Ensuite tu n'as plus qu'à inclure tes fichiers zones.

    Et si tu es motivé, tu peux créer un plugin qui, pour chaque zone, permet d'ajouter un widget (sélection dans une liste déroulante) + remplissage de différents paramètres et ça ajouter les includes et les paramètres à tes fichiers de zone fichiers..

    Pour gérer les paramètres, c'est simple, il suffit de remplir des variables juste avant l'inclusion.

    C'est moi ou c'est déjà le principe du plugin ???
  • amowebamoweb Member
    Jerry Wham, oui, la frontière est proche avec le plugin, puisqu'on utiliserait les hooks.

    danielsan, je ne pense pas que ce soit intégrable dans PluXml (restons plume), mais rien ne t'empêche de faire un plugin. Ensuite, c'est le genre de plugin qui mériterait d'avoir un site comme ressources.pluxml.org, pour partager les widgets. Mais je pense que ça sort du cadre de PluXml, on est presque sur un projet à part qui développerait ces widgets et ce plugin pour PluXml.
  • okay, va pour un plugin alors !
    ça laissera la possibilité à celles et ceux qui proposeront des widgets de le mettre en forme copier/coller ou adaptables au plugin widgets.
  • petit retour d'utilisation:


    en ajoutant un dossier "widgets" dans le dossier du template avec les fichiers PHP à inclure où l'on veut dans les templates > c'est bien pratique :D
    Si je souhaite par exemple Afficher la liste des articles de la catégorie active dans mes différents templates d'articles, je n'ai qu'à modifier un seul fichier, logique :cool:


    Reste maintenant à voir si je découpe un peu plus les templates ... l'idée est de se retrouver avec un gabarit dépourvu de contenu pour qu'il n'ait pour seule fonction la définition des zones.


    Et ça sera dans ces fichiers zone que je dirais d'inclure tel ou tel contenu.
  • Je comprends mieux après un bon repas !!!
    danielsan a écrit:
    en ajoutant un dossier "widgets" dans le dossier du template avec les fichiers PHP à inclure où l'on veut dans les templates > c'est bien pratique big_smile
    Si je souhaite par exemple Afficher la liste des articles de la catégorie active dans mes différents templates d'articles, je n'ai qu'à modifier un seul fichier, logique cool

    Reste maintenant à voir si je découpe un peu plus les templates ... l'idée est de se retrouver avec un gabarit dépourvu de contenu pour qu'il n'ait pour seule fonction la définition des zones.

    Et ça sera dans ces fichiers zone que je dirais d'inclure tel ou tel contenu.
    Pourquoi alors ne pas externaliser tout le dossier et le mettre dans le dossier thèmes ? Ce qui permettra de l'avoir quel que soit le thème utilisé...
  • c'est effectivement une autre approche qui répondrait à la volonté de partager les widgets entre les thèmes.
    Comment va réagir PluXml puisqu'il liste les thèmes en fonction des dossiers ?
    A tester.
  • danielsandanielsan Member
    mai 2012 modifié
    gabarit_etape01.tb.jpg
    aperçu du découpage d'un gabarit 100% fluide basé sur la proportion d'or :D ( ratio 62% / 38% )
    ( plus d'infos sur le ratio d'or dans les templates ici )


    Le php fait 40 lignes et le css 10.
    50 lignes à gérer pour gérer un gabarit, c'est top !


    Me reste maintenant à le découper en fonction de la structure PluXml et d'appeler dans chaque case les fichiers zone qui appelleront les contenus/plugin/widget ).

    Si je veux modifier le gabarit, je n'aurai qu'à toucher à ces blocs ... enfin j'espère !
  • Jerry Wham a écrit:
    Pourquoi alors ne pas externaliser tout le dossier et le mettre dans le dossier thèmes ? Ce qui permettra de l'avoir quel que soit le thème utilisé...


    Je l'ai finalement placé au même niveau que les dossiers plugins/thèmes/etc ...
    Et j'ai crée un dossier "areas" dans mon thème.


    De cette manière, lors de la création d'un nouveau thème, je colle ce dossier "areas", et je ne fais qu'un découpage global du gabarit en associant les zones.


    ça commence à être pratique ... même si ça a l'air monstrueux de prime abord. :D
  • Jerry WhamJerry Wham Member
    mai 2012 modifié
    Pourrais-tu partager tes avancées s'il te plait (une archive) ??

    EDIT : je viens de voir ton post.
    A creuser...
  • danielsandanielsan Member
    mai 2012 modifié
    ce post ne concerne que le concept des widgets.


    En ce qui concerne du découpage en zones plus fines,
    je ferai un retour quand ça sera présentable car là c'est un peu le bazar !
    L'idée me plaît mais faudra voir à l'usage et à la longue ...


    Il n'y a pas d'avancée sans expérimentation comme on dit !
  • BloodyBloody Member
    danielsan a écrit:
    Il y a un CMS qui définit des zones dans le template afin d'y associer le contenu.
    Mais je ne sais plus lequel.
    En fait plusieurs CMS le font : Drupal, Wordpress, Joomla. :)
    Celui qui se rapproche de ce que tu veux (un bout de code qui peut être placé dans n'importe quelles zones prédéfinies dans le thème) est Wordpress avec ses zones de Widget.

    Et tout ce gère en backo dans la section Widgets par simple glisser/déposer +/- quelques paramétrages comme le titre du bloc par exemple. :)
  • StéphaneStéphane Member, Former PluXml Project Manager
    Si c'est pour disposer de widget dans la sidebar, je ferais un plugin avec du drag & drop pour positionner les elements souhaités (dans la config du plugin). Dans le fichier sidebar.php du theme tu mets juste l'appel d'un hook de ton plugin, qui lui en fonction de tes choix va appeler (ou pas) $plxShow->catList, $plxShow->archList, etc... En gros dans ton sidebar.php tu as que l'appel d'un hook de ton plugin et c'est ton plugin qui va appeler les fonctions natives de PluXml.
    Je commencerais par ça
    Après à voir comment rajouter des modules à ton plugin (des briques) qui viendrait complèter la liste des fonctions ajoutables dans la sidebar.

    Bon ici il n'est question que de la sidebar. C'est un point de départ

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • danielsandanielsan Member
    mai 2012 modifié
    c'est ce vers quoi je me dirige, un plugin avec comme paramètre le nom de la position.
    Dans l'admin, la liste des widgets avec un menu déroulant pour leur associer une position et un titre tant qu'on y est :D


    J'ai 4 nouveaux sites à faire, on va vite savoir ce que ça donne !
  • BloodyBloody Member
    Stéphane a écrit:
    Bon ici il n'est question que de la sidebar. C'est un point de départ
    Pour wordpress, il y a encore quelques années les widgets étaient utilisés uniquement que pour la sidebar.
    L'attribution de zones multiples de Widget n'existe que depuis un plus de 3 ans. La fonction de déclaration de zone dans le "plugin" de thème en a d'ailleurs conservé le nom, car elle s'appelle "register_sidebar".

    L'idée de plugin est bonne. Mais je m'orienterai plutôt vers un plugin de thème. :)

    Et puis une sidebar peut-être positionnée à n'importe quel endroit dans une page. :d
Connectez-vous ou Inscrivez-vous pour répondre.