Modifier les chemins d'accès

Archive

Messagepar Gil1256 » Mer 10 Fév 2010, 02:44

Bonsoir à tous,
Bon je vais essayer de m'expliquer correctement !
Je souhaiterais créer des dossiers à la racine du site, afin de disposer au final dans la barre d'adresse du navigateur de la chose suivante par exemple : www.monsite.com/partie1/index.php ou www.monsite.com/partie2/index.php
Je créé donc à la racine un dossier que je nomme "partie 1", y inscris mon fichier "index.php" dont le contenu est le suivant :
Code: Tout sélectionner
require('includes/application_top.php');
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_INDEX1);
$breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_INDEX1));
$page_content = 'partie1/index.php'; 
require(DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE);
require(DIR_WS_INCLUDES . 'application_bottom.php');

Je crée un sous-dossier partie1 dans le dossier "includes/content/" dont le contenu est le suivant :
Code: Tout sélectionner
<div>
<h2><?php echo HEADING_TITLE; ?></h2>
<?php echo TEXT_INFORMATION; ?>
</div>

Le souci est que j'ai un message d'erreur : FATAL ERROR: the template directory do not exist !
Qu'ai-je oublié de modifier selon vous ?
Merci. +
Dernière édition par Gil1256 le Jeu 18 Fév 2010, 17:05, édité 1 fois.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Mer 10 Fév 2010, 13:15

Bonjour,

L'utilisation des constantes de type "WS" sont les elements de chemin relatif, donc à partir de la racine du site catalog

L'utilisation des chemin absolu ce fait avec l'appel au constante de type "FS"

Dans ton cas, si tu est dans un sous dossier de catalog, et que tu lui dis que le rep des template et un sous element de ce dossier, alors tu doit avoir
www.monsite.com/partie1/templates/ ....

Je pense que dans ton cas, tu devrais utiliser

Code: Tout sélectionner
require(DIR_FS_CATALOG. DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE);
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Gil1256 » Mer 10 Fév 2010, 14:37

Merci pour ta réactivité Oscim. J'essaie ce soir et te redis.
Et plus globalement, dans le même ordre d'idée, est-ce possible d'avoir ceci pour une fiche produit : www.monsite.com/partie1/info_produit.php?products_id=21 où "partie1" serait par exemple une catégorie de produits. Il ne saurait y avoir par exemple de www.monsite.com/partie1/info_produit.php?products_id=24 sachant que l'id "24" appartient à un produit de la "partie2" (dans ce cas, ce serait plutôt www.monsite.com/partie2/info_produit.php?products_id=24).
Suffit-il donc de dupliquer info_produit.php et de l'inscrire dans les dossiers "partie1" ou "partie2", et de déterminer quelle est la catégorie à parcourir ?
Ne suis pas à mon bureau, mais au bureau. Nuance ! Je n'ai donc pas en tête les fichiers cités.
A l'occasion... Merci à toi (à vous).
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Mer 10 Fév 2010, 21:29

Je pense que si tu essaye de dupliquer les product_info, je crains que tu ai des soucis de chargement divers...

Perso je crois que j'utiliserai du rewriting
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Gil1256 » Jeu 11 Fév 2010, 22:50

oscim a écrit:Je pense que dans ton cas, tu devrais utiliser
Code: Tout sélectionner
require(DIR_FS_CATALOG. DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE);


Bon, j'ai tenté, mais j'ai toujours le message d'erreur comme quoi le répertoire n'existe pas.

Enfin de compte, je n'ai pas créé de sous-dossier templates dans le dossier partie1. Voici l'arborescence simplifié où se situe l'index de la partie1 et le template :

nomdusite
|__admin
|__includes
|__partie1
|__index.php
|__templates
|__nomdusite
|__template.php

C'est donc dans index.php situé dans le dossier partie1 qu'il y a l'appel vers le template avec

Code: Tout sélectionner
require(DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE );

Je ne vois par où attaquer pour ne plus avoir ce message... je crois que je vais abandonner :(
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar johnhummer » Ven 12 Fév 2010, 05:27

Bonjour,

j'ai l'impression que vous essayez de dupliquer partiellement l'installation d'osCSS, d'où les difficultés. Comme le dit oscim, il faut:
- soit que chaque partie ait son répertoire templates. Dans ce cas il faut, dans tous les fichiers qui font appel aux templates de chaque partie, modifier le chemin d'accès aux templates
- soit garder un répertoire templates commun, mais là aussi il faut tenir compte de la différence d'arborescence puisque le répertoire qui contient index.php est séparé du répertoire templates par un niveau supplémentaire.

Une façon de déboguer votre code est de faire afficher dans votre index.php le chemin d'accès utilisé et de le comparer au chemin courant:

Code: Tout sélectionner
echo DIR_WS_TEMPLATES . $template .'/'. TEMPLATE_FILE . '<br>';
echo getcwd();
exit;

Sur mon serveur, en local, j'obtiens:

Code: Tout sélectionner
templates/monsite/template.php
C:wampwwwmonsite

Cela veut dire que le répertoire courant est "C:wampwwwmonsite" et que les templates, qui sont recherchés à partir du répertoire courant, sont censés se trouver dans "C:wampwwwmonsitetemplatesmonsitetemplate.php". Ce qui est le cas.

Dans votre arborescence alambiquée, si vous avez

nomdusite
|__partie1
| |__index.php
| |__templates
| |__nomdusite
| |__template.php

alors vous devriez obtenir à partir de partie1/index.php:

Code: Tout sélectionner
templates/nomdusite/template.php
C:wampwwwnomdusitepartie1

Cela vaut dire que, quoi que vous fassiez, puisque vous avez déplacé d'un niveau index.php (pour le mettre dans partie1 ou/et partie2), vous avez un problème de catalogue. Votre DIR_FS_CATALOG vaut sans doute:

Code: Tout sélectionner
define('DIR_FS_CATALOG', 'C:/wamp/www/nomdusite');

au lieu de

Code: Tout sélectionner
define('DIR_FS_CATALOG', 'C:/wamp/www/nomdusite/partie1');

Il faut dupliquer DIR_FS_CATALOG, à moins que votre répertoire nomdusite n'inclue déjà un index.php (comme vous ne donnez aucune information pertinente en ce sens, nous en sommes réduits à poser des hypothèses) ?

Bref, vous voyez le problème ? D'une manière ou d'une autre, il faudra modifier tous les fichiers qui font appels aux chemins, avec l'alternative suivante:
- adapter les configure.php (dupliquer/adapter certains chemins) et les fichiers qui font appels aux variables FS_ et WS_ en changeant le nom des variables
- laisser les configure.php tels quels et modifier les fichiers en adaptant les chemins

Comme je ne connais pas les valeurs de vos DIR_FS_CATALOG, DIR_WS_TEMPLATES etc, je ne vais pas (et ne peux pas) en dire plus...

Essayez déjà de code en dur les chemins, cela vous permettra peut-être d'y voir un peu plus clair:

Code: Tout sélectionner
require('C:wampwwwmonsitetemplatesmonsitetemplate.php');

En procédant par essais-erreurs, vous devriez y arriver.
Dernière édition par johnhummer le Ven 12 Fév 2010, 06:13, édité 1 fois.
johnhummer
Membre actif
 
Messages: 34
Inscription: Mer 30 Déc 2009, 11:56

Messagepar Gil1256 » Mer 17 Fév 2010, 11:18

johnhummer a écrit:En procédant par essais-erreurs, vous devriez y arriver.

Bah voilà, ai procédé comme cela, à savoir par essais-erreurs... et ai réussi !

En définitive, voilà ce que donne mon arborescence :

nomdusite
|__partie1
| |__includes
| |__boxes
| |__...
| |__content
| |__index.php
| |__languages
| |__english
| |__index.php
| |__french
| |__index.php
| |__templates
| |__nomdusite
| |__template.php
| |__application_bottom.php
| |__application_top.php
| |__header_tags.php

Ai fait la même chose avec mes 2 autres parties, et le tour est joué... tout en pensant à modifier les chemins d'accès vers les différents fichiers ('../' . DIR_CLASSES), ...

Si commentaires, n'hésitez pas. Je mets cependant en [Résolu].
Merci à vous. +
Dernière édition par Gil1256 le Mer 17 Fév 2010, 14:41, édité 1 fois.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Jeu 18 Fév 2010, 17:04

Rebonjour,
Je me permets juste de revenir sur mon post. Un petit souci sur l'affichage des images, dans la box "whats_new.php" par exemple.
Sur ce dernier fichier, j'ai
Code: Tout sélectionner
tep_image(DIR_WS_IMAGES

et dans le "includes/configure.php"
Code: Tout sélectionner
define('DIR_WS_IMAGES', 'images/');

J'ai essayé en rajoutant '../images' mais rien y fait !
J'ai fait un test en copiant l'intégralité du dossier "images" dans mon dossier "partie1", et là cela fonctionne... Dois-je en passer par là ? Et comment dans l'admin puis-je faire en sorte d'enregistrer telle ou telle photo suivant la catégorie à laquelle elle appartient ? Une contribution permettant de préciser le dossier d'enregistrement d'une photo à partir de l'admin existe-t-elle ?
Si non, quel serait selon vous le chemin d'accès vers le dossier "nomdusite/images" à partir du fichier "nomdusite/partie1/includes/boxes/whats_new.php" ? Je m'y perds un peu, désolé...
Ai retiré le [Résolu]... dans l'attente de le remettre ;)
Merci à vous.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar oscim » Jeu 18 Fév 2010, 18:38

Salut,

Peut être peut tu passer par l'utilisation dans la function image de l'url, cad d'utiliser le HTTP_SERVER. DIR_WS_IMAGES, tu obtiendra ainsi les chemin avec le http devant.

Sinon, essayer aussi avec le DIR_FS_IMAGES, qui passe par le chemin absolu
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Gil1256 » Jeu 18 Fév 2010, 23:40

Je viens à l'instant même d'essayer. Ne veut rien savoir ! Dans les deux cas, cela m'indique la chose suivante : "Le fichier n'a pas pu être trouvé sur le serveur !"
J'ai un peu de mal à comprendre là ! Le configure.php est correctement renseigné, l'application_top.php y fait bien référence...
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar cynic- » Ven 19 Fév 2010, 16:04

Petite question, dans ton fichier .htaccess à la racine, quel est le paramètre de RewriteBase ??
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar Gil1256 » Ven 19 Fév 2010, 17:26

Bonjour Cynic,

J'y pensais justement à ce .htaccess !

En voici le paramètre :
#RewriteBase /
RewriteBase /osCSS_2008/catalog/
Qu'y aurait-il à changer ?

J'étais par contre dans le includes/functions/html_output.php, mais je ne vois guère de chose à modifier pour la fonction tep_image...
Pensais également que ça pouvait venir du plugin "productImage", mais je ne vois pas non plus...

+++
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar cynic- » Ven 19 Fév 2010, 19:46

Tu peux tester l'inversion du commentaire :
RewriteBase /
# RewriteBase /osCSS_2008/catalog/

Puis relancer ton serveur éventuellement ; à mon avis il n'y a pas lieu de toucher au plugin ;)
Dernière édition par cynic- le Ven 19 Fév 2010, 19:46, édité 1 fois.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar Gil1256 » Ven 19 Fév 2010, 19:47

Dois-je peut-être dupliquer le .htaccess à la racine de ma partie1 ? Comme suit :

nomdusite
|__partie1
|__.htaccess

ou bien le laisser à la racine de "nomdusite" et modifier quelque chose ?
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Ven 19 Fév 2010, 19:50

Oups ! Nos posts se sont croisés.
Je vois ça ce soir... merci Cynic. Si ça marche, je t'ériges une statue à ton nom ;)
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Sam 20 Fév 2010, 03:30

Bon écoute Cynic, faudra attendre un peu avant d'avoir une statue érigée à ton effigie !

J'ai commenté comme suit :
RewriteBase /
# RewriteBase /osCSS_2008/catalog/
mais rien...

Ça me désole !

Le plus étonnant est que la fonction tep_href_link fonctionne mais pas tep_image

En lieu et place de :

Code: Tout sélectionner
<p><a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></p>

j'obtiens ceci dans le code html de ma page

Code: Tout sélectionner
<p><a href="http://localhost/nomdusite/images/mondelimage.jpg"></a></p>

mais aucun lien menant vers l'image proprement dite ! Elle est pourtant bien présente dans le dossier
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Sam 20 Fév 2010, 13:38

En mettant sur true la fonction "Image inexistante" dans Admin > Configuration > Images, les images s'affichent et cela indique dans le code html de ma page :

Code: Tout sélectionner
<dd class="image"><a href="http://localhost/nomdusite/partie1/product_info.php?products_id=32"><img src="images/nomdelimage.jpg" alt="nomdelimage" title="nomdelimage" /></a></dd>

Pas super satisfaisant tout de même ! Vous en pensez quoi ? Si je dois en passer par là pour voir affichées les images, c'est que fondamentalement il y a souci...

+
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Ayatus » Sam 20 Fév 2010, 13:45

bonjour,

Il me semble que ton .htaccess devrait contenir :
Code: Tout sélectionner
RewriteBase /nomdusite/
Avatar de l’utilisateur
Ayatus
Site Admin
 
Messages: 280
Inscription: Sam 19 Avr 2008, 17:23

Messagepar Gil1256 » Sam 20 Fév 2010, 13:57

Ai également essayé ça, mais pas mieux...
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16


Retourner vers osCSS 1.2.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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

cron