Message populaire. dmart Posté 26 Novembre 2011 Message populaire. Posté 26 Novembre 2011 (modifié) Bonjour, Je reviens vers vous pour un problème que je rencontre souvent sans avoir trouvé de solutions à mon niveau. Je ne sais pas si la solution passe par htacess, php, ou Jquery.... Je génère ou met à jour souvent des petites galeries d'images en local (Lightroom) puis les charge sur le serveur dans les dossiers et sous-dossiers destinés à les ranger proprement. Ces galeries sont ensuite appelées en PHP par une page du site qui se fabrique au premier niveau. Problème : évidemment les chemins vers leurs sources sont perdus ( css, js mais surtout le chemin des sources des images) bon, jusqu'à présent je refait tous les chemins des images à la mimine mais c'est un peu pénible. D'une galerie à l'autre les noms ou les chemins peuvent changer, je souhaite donc trouver une solution au cas par cas. Alors comment remplacer (pour chaque galerie pour son fichier index.html): (concernant l ensemble des liens du fichier index.html de la galerie):/images//thumbails/... par: galeries/un-sousdossier/images/galeries/un-sousdossier/thumbails/... ou alors réécrire pour chaque image du fichier html de la galerie: <img src:"images/toto_xxx.jpg"> par: <img src:"galeries/un-sousdossier/images/toto_xxx.jpg"> Est-ce qu'un htacess dans le dossier de la galerie ou un script .js ou .php rangé au même endroit peut résoudre le problème? j'espère avoir été assez précis, merci par avance, Dominique Modifié 26 Novembre 2011 par dmart 1
yuston Posté 26 Novembre 2011 Posté 26 Novembre 2011 Salut, Tu utilises quel programme pour modifier ton fichier index.html? Selon l'éditeur, tu as une option "Rechercher & remplacer" et surtout "Remplacer tout". C'est toujours à la main que tu feras les modifications mais en 2-3 clics seulement C'est pour moi la solution la plus simple si l'arborescence ne varie pas évidemment.
Ernestine Posté 26 Novembre 2011 Posté 26 Novembre 2011 Bonjour, Je n'ai pas compris quelle était l'arborescence actuelle de tes fichiers, ni quelle était l'arborescence que tu voulais mettre en place. Là, j'ai l'impression que tu as une galerie par dossier, avec dans chaque dossier deux dossiers (images et miniatures), et un fichier index.html ? Donc ça te fait plein d'index.html ? Et tu voudrais un seul fichier à la racine ?
dmart Posté 26 Novembre 2011 Auteur Posté 26 Novembre 2011 (modifié) Toujours une belle réactivité sur Webmaster Hub, Oui je comprend qu'il faut que j'explique mieux. Oui Yuston, je suis même champions du rechercher/remplacer, mais c'est justement pour éviter ça et les pertes de temps et parfois erreurs quand on va trop vite. Je génère en quelques secondes les galeries sur Lightroom, personnalisées suivant l'usage, et hop sur le serveur, c'est là que je voudrais éviter le bidouillage de code. Ernestine, pour être plus clair, rien ne vaut un petit dessin, c'est ça les peintres, ça s'exprime mieux avec des images donc voici pour comprendre :/>http://martigne.fr/zonezone/dominiqueftp.jpg (j'enlèverais cette référence plus tard afin d'éviter éventuellement un lien mort) on voit donc la galerie au 4ème niveau, c'est ce fichier index, qui, arrivé à la racine perd évidement ses liens. Au résultat (avec rechercher/remplacer) ça donne ceci par exemple : http://martigne.fr/vdisplay.php?page=ceramiques-galerie Une solution simple à mettre en place me ferait gagner beaucoup de temps. Dominique Modifié 26 Novembre 2011 par dmart
captain_torche Posté 26 Novembre 2011 Posté 26 Novembre 2011 Le plus simple serait peut-être d'ajouter (dynamiquement ou pas) un base href dans ta page, pour que les fichiers appelés soient relatifs à cette url.
dmart Posté 26 Novembre 2011 Auteur Posté 26 Novembre 2011 Le plus simple serait peut-être d'ajouter (dynamiquement ou pas) un base href dans ta page, pour que les fichiers appelés soient relatifs à cette url. Hé oui je crois que ce doit être quelque chose comme ça, mais mes compétences sont très limitées, c'est pour cette raison que j'ai besoin d'aide et un code fonctionnel, dans ce domaine je ne guère que faire des copier/coller...
Ernestine Posté 26 Novembre 2011 Posté 26 Novembre 2011 Quelque part dans display.php, tu dois avoir une ligne qui inclut chats.php , avec un 'include', un 'require' ou un 'require_once' : include('include/chats.php'); Tu peux la remplacer par : ob_start();include('include/chats.php');$contenu = ob_get_clean();$contenu = str_replace('<a href="photos/', '<a href="include/CHAT/chatramique-01/photos/', $contenu);$contenu = str_replace('<img src="thumbnails/', '<img src="include/CHAT/chatramique-01/thumbnails/', $contenu);echo $contenu; En gros : tu n'affiches pas directement l'index, tu le mets en tampon (trois premières lignes) et l'enregistres dans $contenu, puis tu modifies les chemins dans $contenu (lignes 4 et 5), puis tu affiches le tout (ligne 6). Mais si ça se trouve, ton inclusion de vinclude/CHAT/etc... est automatique (genre récupération d'un paramètre pour savoir sur quelle galerie on est), auquel cas ça complique légèrement la chose. Par ailleurs, dans la page d'exemple que tu as donnée, le répertoire racine est "vinclude" et non pas "include".
dmart Posté 26 Novembre 2011 Auteur Posté 26 Novembre 2011 Ho ! super merci Ernestine, je vais essayer tout à l'heure... (content) Ma page vdisplay est ainsi faite: <? $pages=array( 'defaut'=>'defaut', 'ceramiques-chats'=>'chats', etc... ); ?>Puis dans : <body><?php if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages)) include 'vinclude/' . $pages[$_GET['page']].'.php'; else include 'vinclude/defaut.inc'; ?> Est-ce que cela marche dans cette configuration?
Ernestine Posté 26 Novembre 2011 Posté 26 Novembre 2011 Non du coup ça va pas marcher, car le fichier inclus dépend effectivement du paramètre 'page' de l'url. Dans ce cas, le code que j'ai mis ci-dessus, il faudrait plutôt le mettre dans le fichier 'chats.php'. Dans le fichier "include/chats.php", remplacer : include('CHAT/chatramique-01/index.html'); par : ob_start();include('CHAT/chatramique-01/index.html');$contenu = ob_get_clean();$contenu = str_replace('<a href="photos/', '<a href="include/CHAT/chatramique-01/photos/', $contenu);$contenu = str_replace('<img src="thumbnails/', '<img src="include/CHAT/chatramique-01/thumbnails/', $contenu);echo $contenu; Mais je ne sais pas si ça va marcher, il faut sûrement adapter, c'est dur de pondre du code comme ça à l'aveuglette.
dmart Posté 26 Novembre 2011 Auteur Posté 26 Novembre 2011 A regarder comme ça, c'est si joli que c'est sûr, ça va marcher.... C'est vraiment sympa de "pondre comme ça du code à l'aveuglette", Je regrette de n'avoir pas encore assez d'expérience pour aider les autres. Là j'ai les mains pleines de pinceaux, et le clavier comme lui aussi à prendre des couleurs, Je test tout ça ce soir tard ou demain et reviens vers toi pour te donner le résultat. Merci, bonne soirée Dominique
dmart Posté 27 Novembre 2011 Auteur Posté 27 Novembre 2011 Formidable Ernestine, Tout marche parfaitement.... j'ai juste les chemins à mettre à jour. Ce principe me permet de continuer à faire mes sites en gardant une ligne de conduite le plus simple possible et compatible avec mon niveau de compétence. De cette façon ces petites galeries unitaires vont être très facile à mettre à jour, quelque soit leur place dans le site, sans avoir à passer par un système type piwigo lourd et inutile pour quelques photos. Dominique
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant