Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1742 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Mapping d'image sous Zend

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Mapping d'image sous Zend

n°2208493
cvb
Posté le 29-10-2013 à 08:10:05  profilanswer
 

Bonjour,
 
Toujours dans le cadre de mon projet, je cherche à appeler une image par le biais de mon controlleur.
 
 

Code :
  1. class PictController extends Zend_Controller_Action
  2. {
  3.     public function indexAction()
  4.     { 
  5.      $objpict = new Application_Model_Page();   
  6.      $objpict->CheminPictures(Application_Model_String::ExtractNamePict($this->getParam('niveau0')));   
  7.      $this->_helper->viewRenderer->setNoRender(true);
  8.      $this->_helper->getHelper('layout')->disableLayout();
  9.      header('Content-Type: image/jpeg');
  10.      header('Content-Length: ' . filesize($file));
  11.      echo file_get_contents($file);
  12.      exit;   
  13.    
  14.     } 
  15.    
  16. }


 
Seulement je ne sais plus comment procéder afin d'appeler ce controlleur depuis ma vue afin qu'il me renvoie l'information.
Ceci me renvoie le nom de la page dans laquelle je suis et pas le controlleur !
 

Code :
  1. <img alt="montitre" src="<?php echo $this->url(array('controller' => 'pict', 'action' => 'index')); ?>" >


 
 
 
Une route à été crée également, mais elle n'est pas prise en compte non plus !
 
 

Code :
  1. $routeRegex = new Zend_Controller_Router_Route_Regex(
  2.    'img/([a-z-0-9-/-]+).jpg',
  3.    array('controller' =>'pict','action' => 'index'),
  4.    array(1 => 'niveau0',2 => 'niveau1',3 => 'niveau2'),'img/%s.jpg');
  5.  $this->_routeur->addRoute('routeimage', $routeRegex);


 
 
 
Une idée comment faire ? :)
 
D'avance merci
++


Message édité par cvb le 30-10-2013 à 19:29:54
mood
Publicité
Posté le 29-10-2013 à 08:10:05  profilanswer
 

n°2208710
cvb
Posté le 30-10-2013 à 13:59:44  profilanswer
 

Personne ne sait sous Zend comment on fait pour appeler un contrôleur depuis une vue ?

n°2208777
cvb
Posté le 30-10-2013 à 16:43:10  profilanswer
 

Problème résolu :
 
Le but :
 
Mettre les images dans un autre endroit que dans le dossier public de Zend et ne pas avoir à mettre un nom SEO pour chacun des images.  
L'idée étant de mappé le noms des images réel au nom virtuel...
 
Afficher l'image
 
Mettre un chemin virtuel dans la balise img.  
Aucun dossier n'existe, on peut mettre n'importe quel arborescence.
 

Code :
  1. <img src="<?php
  2.  echo $this->url(
  3.   array( 'niveau0'=>'img/maison/jardin.jpg')
  4.  ,false,false,false) ?>" />


 
 
Comment trouve t-il la bonne image ?
 
Une route à été crée pour rediriger la requête vers le bon controller et la bonne action.
 
 

Code :
  1. $routeRegex = new Zend_Controller_Router_Route_Regex(
  2.    'img/([a-z-0-9-/-]+).jpg',
  3.    array('controller' =>'pict','action' => 'index'),
  4.    array(1 => 'niveau0',2 => 'niveau1',3 => 'niveau2'),'img/%s.jpg');
  5.  $this->_routeur->addRoute('routeimage', $routeRegex);


 
 
 
Coté Controller
 
Le controller reçoit le paramètre passé - GetParam("niveau0" ) - et me renvoie le file_get_contents de l'image.  
Le vrai chemin de l'image fut trouvé en le recherchant en base...
 
 

Code :
  1. class PictController extends Zend_Controller_Action
  2. {
  3.     public function indexAction()
  4.     {     
  5.    
  6.      $objpict = new Application_Model_Page();   
  7.      //var_dump($this->_getAllParams());       
  8.      $file = 'images/bx3.jpg';
  9.      //$objpict->CheminPictures(Application_Model_String::ExtractNamePict($this->getParam('niveau0')));
  10.    
  11.      $this->_helper->viewRenderer->setNoRender(true);
  12.      //$this->_helper->getHelper('layout')->disableLayout();
  13.      /*$file = 'pict/M2DR4003.jpg';*/
  14.      header('Content-Type: image/jpeg');
  15.      header('Content-Length: ' . filesize($file));
  16.      echo file_get_contents($file);
  17.      exit;
  18.    
  19.     }
  20.    
  21.    
  22. }


 
 
Conclusion
 
Avec cette méthode, vous pouvez crée des dossier virtuel, crée des noms virtuel d'image et renvoyé au visiteur la vrai image.  
Il vous faut juste une base de données pour faire la relation entre le nom virtuel que vous donnez et le nom réel de l'image...
 
Requête inutile en base de données ? Oui surement.  
Qu'est-ce qui empêche la mise en cache du chemin réel de l'image ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Mapping d'image sous Zend

 

Sujets relatifs
récupérer une image sur un socket et l'afficher en plein écranafficher une image dans un cadre à partir d'une liste deroulante
Comment afficher une image d'un dossier protégé[Résolu] Afficher image d'une BDD avec PHP PDO
Afficher une image avec header(..jpeg) et readfile en php[VIEW] > avoir la main d'afficher ou non une image html helper
Afficher une image :-(Afficher texte sur une image au passage de la souris
Afficher une image sous VB[SWT] Afficher image en plein ecran
Plus de sujets relatifs à : [résolu] Mapping d'image sous Zend


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR