Communauté Elgg francophone

Créer un compteAide  
Connexion
Plugins et développement
Partage de plugins et ressources utiles pour le développement

affichage d'éléments dans elgg

Démarré par jmperuchot le 12 juin 2018 Réponses (3)

bonjour,

je cherche à résoudre mon problème d'affichage sur mon site , le mur vient s'incruster dans l'image de mon thème, inter réaction entre hypewall , tidypics, easytheme2

quelle est la fonction qui affiche les éléments d'un plugin dans un thème

y a t il une clef dans un css qui donne la position des éléments d'un plugin

 

cordialement

Réponses

  • Florian DANIEL ~ Facyla le 14 juin 2018

    Bonjour,

    Peut-être une copie d'écran, pour voir de quoi il s'agit exactement ?

    De manière générale, un plugin interagit avec le site / les autres plugins de 2 manières :

    1. en surchargeant (= remplace) des vues, via les fichiers dans mod/[plugin]/views/default/[nom_de_la_vue]
    2. et via le fichier start.php, qui va définir beaucoup plus de choses, via les hooks, extensions de vues, etc.

     

    Pour savoir si une vue est remplacée par une autre, et quel plugin gère telle ou telle vue, il faut activer elgg_developper_tools, et regarder dans l'Inspecteur, partie Vues : ça liste toutes les vues utilisées sur le site, si elles sont remplacées ou étendues par une autre vue, et de quel plugin provient la vue actuellement utilisée.

    Du coup, l'ordre des plugin a une importance : c'est toujours la vue du dernier plugin qui sera utilisée, si plusieurs plugins redéfinissent la même vue. D'où le principe d'ajouter son propre thème / ses propres personnalisations dans un plugin chargé en tout dernier.

     

    Pour le fichier start.php, il y a trop de manières de faire possibles pour les lister, mais je dirais que la principale manière de faire lorsque c'est le rendu de la page qui est concerné est probablement un hook : les hooks existants et actifs sont également listés par Elgg Developper Tools, partie Inspecteur > Hooks des plugins. Lorsque ça concerne le comportement suite à une action, ça peut être un hook aussi, ou un "event handler", ou encore une action.

     

    Autre option très pratique pour connaître la vue qui génère tel ou tel "morceau" de HTML : activer l'option "Envelopper les vues", dans les paramètres de Elgg developper tools : ça ajoute des commentaires HTML qui encadrent le HTML généré par une vue donnée.

    Une limite toutefois : ça marche assez bien, dans le sens où si une vue est indiquée c'est bien celle-la qui est responsable de ce qu'on voit : dans ce cas on regarde Inspecteur > Vues et on sait quel est le plugin responsable. Mais ces commentaires n'apparaissent pas pour certaines vues, et n'indiquent en tous cas pas le fichier responsable directement : par ex. si une page est générée via un page_handler, sans utiliser de vue, on n'apprendra rien de cette manière (ce qui est en soi un indice :) )

  • jmperuchot le 15 juin 2018

     image

    voici la copie d'écran lorsque j'ai easytheme2 et hype wall seul sur mon site local

     

    sur mon site distant cela se produit lorsque j'ajoute le plugin tidypics

     

  • Florian DANIEL ~ Facyla le 16 juin 2018

    Bonjour,

    Si cela se produit avec des plugins différents il doit y avoir plusieurs choses qui posent problème. Je n'utilise pas ces plugins, mais si cela se produit en les activant, et que ce n'est pas le même plugin en local et en ligne, il doit y avoir d'autres choses qui diffèrent : sans doute l'ordre des plugins, et peut-être des paramètres (notamment les caches, à laisser désactivés quand on fait des modifs ou des tests sur le site).

    C'est peut-être une vue du thème qui est surchargée par les 2 autres plugins : dans ce cas placer le thème en dernier peut aider. Mais si cette vue doit être surchargée (par ex. pour qu'hypewall fonctionne), il faudra créer une nouvelle version qui fasse la synthèse des deux (thème + hypewall), à placer dans un thème en toute fin de liste des plugins.

    Un autre truc possible avec les CSS : s'il manque des styles sur des éléments qui en ont normalement, ça peut être dû à à une erreur de syntaxe dans l'un des fichiers CSS (du thème par ex.) => tous les fichiers CSS chargés par la suite ne seront plus pris en compte : ça peut expliquer parfois certains styles qui disparaissent, et notamment ceux des plugins chargés vers la fin.

    Ici il est possible qu'une <div> ne soit pas fermée, ce qui ferait "remonter" le contenu de la page dans le header : c'est à mon avis l'option la plus probable, à creuser en vérifiant la structure HTML des pages qui posent problème, puis les vues et surcharges.