Utiliser un fichier dans un plugin, problème de chemin relatif

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Utiliser un fichier dans un plugin, problème de chemin relatif

    Bonjour à tous,

    J'ai crée un petit plugin afin de permettre la mise en place facilement d'une image en arrière plan extensible, et pour ces besoins, je modifie un fichier css, qui se trouve dans le dossier de mon plugin.

    Le problème, c'est que pour modifier ce fichier, je suis obligé d'utiliser un lien relatif (car l'ouverture/écriture de fichier est interdite en chemin absolu avec "http://"), et le chemin n'est pas le même, suivant que l'on se trouve dans l'administrator, ou sur le site même.

    Pour remédier à ce problème, j'ai fais une bidouille pour savoir si l'on était dans l'administrator ou non, mais voilà ma question, existe-t-il une mise en place particulière ? une méthode ou autres que j'ai zappé ?

    Merci de votre aide

  • #2
    Re : Utiliser un fichier dans un plugin, problème de chemin relatif

    Bonsoir

    Je n'ai pas compris où se situe le problème : est-ce au moment de charger votre fichier dans php ou est-ce dans le fichier css lui-même ?

    Si c'est pour référencer le fichier css depuis php, il faut utiliser JURI::root() qui permet, quelque soit l'application (site / admin), d'obtenir l'url de base http:://votresite. Voir http://docs.joomla.org/JURI/root

    Ensuite, si c'est au sein du fichier CSS, ce fichier est dans un seul dossier : le chemin relatif doit partir du dossier qui contient le fichier CSS et il n'y a donc plus qu'une seule possibilité.

    Mais pas sûr d'avoir bien cerner le problème...
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Re : Utiliser un fichier dans un plugin, problème de chemin relatif

      Bonjour,

      Merci pour votre réponse rapide, pour être plus clair, en utilisant un chemin absolu, je ne peux pas lire/écrire dans le fichier, j'ai un message d'erreur de ce type :
      Code:
      [function.file-put-contents]: failed to open stream: HTTP wrapper does not support writeable connections
      Je suis donc obligé d'utiliser un chemin relatif, et détecter si l'utilisateur est dans l'administrator ou non, avec cette bidouille :
      Code:
      if(preg_match('#administrator#', $_SERVER['REQUEST_URI'])){
      $nomfichier = '../plugins/system/Background/background.css';
      }
      else {
      $nomfichier= 'plugins/system/Background/background.css';
      }
      D'ailleurs, existe-t-il une différence entre JURI::Base() et JURI::root() ?

      Commentaire


      • #4
        Re : Utiliser un fichier dans un plugin, problème de chemin relatif

        Sous Joomla, il ne faut jamais utiliser $_SERVER mais plutôt JRequest. En outre, il y a bien plus simple pour savoir si on est dans l'admin : http://api.joomla.fr/joomla15/db/dfa...bbe9427741090d

        Pour votre seconde question, je vous renvoie sur le net. Hier, j'ai vu passer un post où il était écrit que non, il n'y avait pas de différence à l'exception d'un cas précis que j'ai oublié.
        Christophe (cavo789)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        Commentaire


        • #5
          Re : Utiliser un fichier dans un plugin, problème de chemin relatif

          J'ai fais les changement avec JRequest, donc a priori, la bidouille convient bien.

          Merci pour vos précisions :-)

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X