Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je viens de me mettre à Zend, et j'ai quelques soucis pour afficher les images sur mes pages...
En effet il semble que l'application n'arrive pas à trouver le chemin au répertoire.
J'ai défini un helper:
class Zend_View_Helper_BaseUrl { function baseUrl() { $fc = Zend_Controller_Front::getInstance(); return $fc->getBaseUrl(); } }
et j'ajoute mon image de la manière suivante:
<img src="<?php echo $this->baseUrl();?>/public/images/loader.gif" alt="loader"/>
Y a t il quelque chose à faire au moment de l'initialisation des paramètres, dans le bootstrap??
Merci de votre aide.
Hors ligne
Je suis désolé, j'ai beau faire des recherches, et je ne trouve pas de solutions à mon problème. En effet certains topics aborde mon problème, mais aucun me permet de le régler. Aurais tu une piste de réflexion ou un lien à me donner?
Hors ligne
Bon je viens de trouver une solution, mais je ne comprend pas pourquoi elle marche et pas la mienne, car elle retourne la mm chose...
L'affichage de l'image fonctionne avec:
Bast a écrit:
J'ai retenu la technique de haltabush, car elle est identique à la maniere de récupérer le css (et ui je suis boulet, j'ai même pas réfléchi à ca...), et je l'avais déjà implémentée... il me manquait juste le <?php echo $this->baseUrl; ?> devant mon url relative...
Code:
class IndexController extends Zend_Controller_Action { function init(){ $this->view->baseUrl = $this->_request->getBaseUrl(); } function indexAction(){ $this->view->title = "Accueil Doc-Annonces"; $this->render(); } }et puis index.phtml :
Code:
<img src="<?php echo $this->baseUrl; ?>/public/images/shampoo.gif" alt="en plein shampoing..."/>
On voit bien que les deux méthodes fonctionnent sur le même principe, et lorsque je fais:
echo $this->baseUrl(); echo $this->baseUrl;
Les deux me retournent la mm chose. Quelqu'un peut il me donner un explication? Comment puis-je faire pour pour mettre une image dans une page sans avoir à mettre la fonction init() dans chaque controller.
Dernière modification par Agent69 (22-07-2009 17:07:15)
Hors ligne
Tu sera obligé dans tous les cas de spécifié la baseUrl quelque part. Après c'est sur que mettre dans le init de chaque controller n'est pas la méthode la plus simple...
Coupler un helper de vue baseUrl et la balise html <base /> est une des méthodes les plus simples à mettre en oeuvre...
Voici quelqu'uns des topics traitants de cela...
http://www.z-f.fr/forum/viewtopic.php?id=3629
http://www.z-f.fr/forum/viewtopic.php?id=3379
http://www.z-f.fr/forum/viewtopic.php?id=2397
Hors ligne
OK merci je vais lire tout ça, je te remercie pour ta réponse.
Hors ligne