Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-06-2007 00:06:49

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

[MVC] Afficher une image

Bonsoir !

J'aimerais savoir comment connaitre le chemin d'accès au dossier images, pour pouvoir en afficher une smile

En fait je suppose qu'il suffit de savoir quel dossier est considéré comme le dossier courant, et il n'y a plus qu'à dérouler le chemin jusqu'à l'image... mais pourtant je n'ai pas trouvé sad


Merci d'avance !

Hors ligne

 

#2 13-06-2007 08:20:40

haltabush
Membre
Lieu: Saumur
Date d'inscription: 20-04-2007
Messages: 64

Re: [MVC] Afficher une image

Dans mon cas, j'ai fait comme ça :

/module
   /ctrl
   /mdl
   /views
      accueil.phtml -> appel des images via $this->baseUrl/styles/img/...
/styles
   /img

J'ai mis, dans l'init de chaque controlleur, cette ligne. Peut-être qu'on peut le mettre en statique directement dans le bootstrap.

Code:

$this->view->baseUrl = $this->_request->getBaseUrl();

Hors ligne

 

#3 13-06-2007 08:33:21

Isilgawen
Membre
Lieu: Limoges
Date d'inscription: 23-03-2007
Messages: 106

Re: [MVC] Afficher une image

Moi je fonctionna avec une constante STATIC_PATH définie dans le bootstrap que j'utilise pour tous ce qui est statique (css, js, images, files). Cela me laisse la possibilité future de passer tout le static sur un autre serveur si besoin (genre lighthttpd).

Hors ligne

 

#4 13-06-2007 10:21:53

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [MVC] Afficher une image

Et comment tu crée ton static_path dans le bootstap? Un define ?
Je peux voir ton code ? :p

Hors ligne

 

#5 13-06-2007 11:09:05

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [MVC] Afficher une image

Un define est surement ce qu'il y a de plus simple

Code:

define('STATIC_ROOT_URL', 'http://www.tonsite.dom');

Pour ma part, je n'utilise pas cette technique, je met donc simplement le chemin relatif de mes images puis j'utilise la balise HTML <base>

La balise BASE est utilisée pour déclarer un chemin absolu  qui sera utilisé comme référence pour toutes les autres url présentes dans le document. Elle est généralement déclarée dans la partie <head> du document, mais peut être utilisée dans le <body>.

Hors ligne

 

#6 13-06-2007 11:45:18

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [MVC] Afficher une image

Merci à vous!
je teste ca ce soir ^^

Hors ligne

 

#7 13-06-2007 17:19:13

Isilgawen
Membre
Lieu: Limoges
Date d'inscription: 23-03-2007
Messages: 106

Re: [MVC] Afficher une image

Même approche que Mr.MoOx, cela permet si besoin de switcher vers un serveur lighthttpd pour les statics (images, css, js..).

Hors ligne

 

#8 13-06-2007 22:33:46

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [MVC] Afficher une image

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..."/>

Hors ligne

 

#9 22-10-2012 22:17:55

whisper
Nouveau membre
Date d'inscription: 22-10-2012
Messages: 1

Re: [MVC] Afficher une image

Bonsoir à tout ! j'aimerais relancer le topic car également du mal à afficher une image avec Zend Framework.
Je pense comprendre pourquoi mais je cherche une alternative à mon problème.

Mes images sont dans un dossier que j'ai nommé "resources" situé au meme niveau que public et application.
J'ai configuré un VirtualHost qui pointe vers le dossier public de l'application. De ce fait (logiquement) on ne peut acceder à tout autre fichier ou dossier parent ou frère (application, library etc..) par HTTP. Comme tout image fait l'objet d'une requete après chargement de la page il est normal que je ne parvienne pas à l'obtenir si mon DocumentRoot est configuré ainsi ..
J'ai donc voulu afficher le contenu de ma variable baseUrl dans ma vue, et à ma grande surprise, je n'ai obtenu qu'une chaine vide ! Quelqu'un sait pourquoi ?

La solution qui consiste à mettre le dossier "resources" dans le dossier public fonctionne correctement, cependant je trouve ça conceptuellement mal propre et je ne veux pas que les internautes puissent voir librement son contenu.

Peut-etre y a-t-il une solution au niveau de application.ini .. des liens vers des ressources  ajouter ..?

Merci de votre aide !

Hors ligne

 

#10 23-10-2012 12:54:56

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [MVC] Afficher une image

Ton dossier d'image doit être dans public c'est au contraire exactement la bonne conception des choses, après tu peux en empêcher l'affichage du contenu.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages