[Réglé] phpbb_root_path bug ou mauvaise utilisation ?

Aide aux auteurs d'extensions pour phpBB 3.1.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Réglé] phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 02 Oct 2016 à 22:56

Hello !

Je viens de constater que lorsque je fais appel à $phpbb_root_path ou core.root_path ca ne me retourne pas le bon chemin lorsque je suis dans un contexte extension.

Mise en situation:
Mon forum est accessible via http://domain.tld/phpbb/
Mon extension utilise une page dédiée qui est accessible via http://domain.tld/phpbb/app.php/mon_ext

Au niveau de mon code, je souhaite faire appel au répertoire images qui se trouve à la racine du forum, donc dans http://domain.tld/phpbb/images

Tout bêtement je vais utiliser le code suivant :
Code: Tout sélectionner

global $phpbb_root_path
$image_path 
= $phpbb_root_path . 'images/mon_image.png'


Si je passe en mode debug, $phpbb_root_path prend la valeur ./
Ce qui amène à rechercher l'image dans ./images/mon_image.png ou http://domain.tld/phpbb/app.php/images/mon_image.png

Au lieu de ../../images/mon_image.png ou http://domain.tld/phpbb/images/mon_image.png

Donc question....
Est-ce que c'est moi qui m'y prend mal ? ou il y a un bug au niveau de phpbb_root_path ?
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar galixte » 03 Oct 2016 à 02:12

Salut,

il manque pas un $phpEx quelque part ? Tu peux consulter ceci, peut-être cela va t’aider : http://area51.phpbb.com/phpBB/viewtopic ... 45#p232245.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10093
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 03 Oct 2016 à 12:39

Salut,

Le $phpEx c'est pour l'extension du fichier. Donc rien à voir.

Concernant le lien, il semble mettre en évidence que $phpbb_root_path ne semble pas être correctement initialisé vu qu'il semble prendre la valeur par défaut ./.
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar pierredu » 04 Oct 2016 à 08:22

Selon le principe disant que les extensions doivent être complètes et ne pas aller ailleurs que dans leur arborescence, ne crois-tu pas que tu devrais mettre tes images dans vendor/ext/images ?
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1028
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 04 Oct 2016 à 21:50

Soit, je pourrais faire cela. Mais cela n'élucide pas le fait que phpbb_root_path ne semble pas retourner la bonne information.

Donc changeons d'exemple et remplaçons images/mon_image.png par index.php, ou viewtopic.php ou autre... mon lien va se retrouver avec app.php

Serait-ce un problème avec les routes ?
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar pierredu » 05 Oct 2016 à 09:04

C'est possible, app.php est une boîte noire assez opaque.
Dans mon extension Glossaire, j'ai recopié ces deux lignes :
Code: Tout sélectionner
$this->ext_path = $this->ext_manager->get_extension_path('lmdi/gloss', true);
$this->ext_path_web = $this->path_helper->update_web_root_path($this->ext_path);


Ça a marché, je n'ai pas cherché à mieux comprendre.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1028
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar galixte » 07 Oct 2016 à 02:56

Salut,

je tente à nouveau, mais est-ce que cette information pourrait t’aiguiller ? https://www.phpbb.com/community/viewtop ... #p14198726, soit : depuis phpBB
3.1.6 the directories for the template engine got restricted and it seems not possible anymore to reach
quelconque répertoire extérieur à celui de l’extension.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10093
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 07 Oct 2016 à 13:48

Salut,
Merci pour tes investigations.

La problématique semble plutôt ce situer autour de la boîte noire évoquée par pierredu.
Après j'ai pas eu le temps de vraiment regarder le code qu'il a fourni.

A+
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 18 Oct 2016 à 02:35

pierredu a écrit:C'est possible, app.php est une boîte noire assez opaque.
Dans mon extension Glossaire, j'ai recopié ces deux lignes :
Code: Tout sélectionner
$this->ext_path = $this->ext_manager->get_extension_path('lmdi/gloss', true);
$this->ext_path_web = $this->path_helper->update_web_root_path($this->ext_path);


Ça a marché, je n'ai pas cherché à mieux comprendre.


Merci pour la piste.
Au final j'ai utilisé la méthode get_web_root_path() et mon problème d'affichage d'image est corrigé. 8)
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Nicofuma » 09 Jan 2017 à 12:50

Juste pour les archives : la génération des URLs dans phpBB est un peu compliqué et l'utilisation de phpbb_root_path depuis... très lontemps... n'aide pas.

Je m'explique :
phpbb_root_path permet, au niveau du système de fichier, de retrouver la racine du forum (ça permet de remonter au dossier phpBB/) mais au niveau des URLs ce n'est pas forcément le cas, surtout lorsque app.php est utilisé. Il y avait déjà ce problème là auparavant avec certaines installation et c'est entre autre pour ça que PHPBB_USE_BOARD_URL_PATH avait été introduit (il me semble). Aujourd'hui, en raison de de app.php et des URLs utilisées (elles ne pointent pas sur un fichier existant : app.php/my-ext/my-page par exemple) le problème est beaucoup plus fréquent et ne dépends plus de l'installation serveur mais de l'utilisation que l'on fait du forum.

Pour cette raison il est très important, lorsque l'on génère des URLs, de se préoccuper du web_root_path plutôt que du phpbb_root_path et ce travail là est effectué automatiquement lorsque l'on utilise append_sid() ou le routing helper. Par contre, si vous voulez générer des URLs vous même, il faut effectivement utiliser $path_helper->update_web_root_path() si votre URL contient le phpbb_root_path (ex: $path_helper->update_web_root_path($phpbb_root_path . 'images/mon_image.png')), ou alors vous pouvez générer l'URL vous même en la préfixant par $path_helper->get_web_root_path() (ex: $path_helper->get_web_root_path($phpbb_root_path) . 'images/mon_image.png')

Dans ce cas précis, il y avait 2 possibilités (si je ne me trompe pas...)
Code: Tout sélectionner
$this->ext_path = $this->ext_manager->get_extension_path('lmdi/gloss', true);
$this->ext_path_web = $this->path_helper->update_web_root_path($this->ext_path);

et
Code: Tout sélectionner
$this->ext_path = $this->ext_manager->get_extension_path('lmdi/gloss');
$this->ext_path_web = $this->path_helper->get_web_root_path(). $this->ext_path;
Membre de la phpBB Development-Team sur phpbb.com - Release manager de la version 3.2
Pas de support par PM
Nicofuma
Apprenti-posteur
Apprenti-posteur
 
Messages: 173
Enregistré le: 19 Avr 2014 à 20:38

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 09 Jan 2017 à 13:44

Salut Nicofuma,

Merci pour ces explications.

En résumé, on peut dire, qu'en tant que developpeur d'extension, il nous faut limiter l'utilisation de $phpbb_root_path ?

A+
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Nicofuma » 09 Jan 2017 à 15:56

exactement
Membre de la phpBB Development-Team sur phpbb.com - Release manager de la version 3.2
Pas de support par PM
Nicofuma
Apprenti-posteur
Apprenti-posteur
 
Messages: 173
Enregistré le: 19 Avr 2014 à 20:38

Re: phpbb_root_path bug ou mauvaise utilisation ?

Messagepar Skouat » 09 Jan 2017 à 19:29

C'est noté !
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13609
Enregistré le: 02 Avr 2008 à 20:47


Retourner vers Aide au développement

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité