IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Smarty] problème compréhension sur les tableaux


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut [Smarty] problème compréhension sur les tableaux
    Bonjour,

    J'ai repris de l'excellent tutorial php pour créer efficacement un framework.

    liste des classes utiiséees :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class promotion_data{
     
    	function getAllPromo(){
    		$this->execute("SELECT id,txtPromo FROM pr_promo");
    		$promo=array();
    		if(count($this->aErreurs)!=0){
    			return array();
    		}
     
    		while($ligne = mysql_fetch_array ($this->oResultat,MYSQL_ASSOC)){
     
    			$promo[] = new NewsModel($ligne);
     
    		}//while
     
     
    		mysql_free_result($this->oResultat);
     
    		return $promo;		
    	}//getAllPromo
     
     
     
      }//classe
    +

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class newlistaction{
    	var $_newsmodeldao;
     
    	//constructeur
    	function newlistaction(){
    		$this->_newsmodeldao = new promotion_data();
    	}//constructeur
     
    	//
    	function processRequest(){
    		$result_array = array();
    		$result_array = $this->_newsmodeldao->getAllPromo();		
    		$mv = new ModelAndView();
    		$mv->setModel($result_array);
    		$mv->setView('index.tpl');
    		return $mv;
    	}	
    }//classe

    +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class NewsModel{
     
    	function NewsModel($data_array){
     
    		foreach ($data_array as $k=>$v){
    			$this->$k=$v;			
    		}		
    	}
    }//classe
    dans l'index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $mv=$actioncontroller->processRequest();
    					if($mv!=null){
     
    						define('SMARTY_DIR', 'c:/program file....php/smarty/');
    	 					require_once(SMARTY_DIR . 'Smarty.class.php');   
    						//require_once(SMARTY_DIR_LIB.'/Smarty.class.php');
    						$smarty = new Smarty();
    						$smarty->template_dir = 'c:/program files/easyphp1-7/www/classe/lib/thdparty/smarty/newlist/templates/';
    						$smarty->compile_dir = 'c:/program files/easyphp1-7/www/classe/lib/thdparty/smarty/newlist/templates_c/';
    						$smarty->config_dir = 'c:/program files/easyphp1-7/www/classe/lib/thdparty/smarty/newlist/configs/';
    						$smarty->cache_dir = 'c:/program files/easyphp1-7/www/classe/lib/thdparty/smarty/newlist/cache/';
     
    						$smarty->assign($mv->getModel());
    						$smarty->display($mv->getView());
     
     
    					}//if
    +

    je n'arrive pas à créer le .tpl pour smarty, car je n'arrive pas à comprendre : $smarty->assign($mv->getModel());

    il passe au .tpl un tableau mais quel est la structure de ce tableau?
    si quelqu'un a une idée je suis prenneur...

    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    cool c'est bien de proceder comme ceci
    mais t'a un probleme : :

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    pourquoi?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    hmm j'avais pas vu ton probleme

    sinon on passe un tableau associatif de la forme que tu veut

    dans ta class metier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mv->_model=array('hello'=>'bonjour');
    et dans ton template
    et la magie doit opperer

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    classe model ans view
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class ModelAndView{
    	var $_model;
    	var $_view;
     
    	function getModel(){
    		return $this->_model;
    	}//getModel
     
    	function setModel($model_arr){
    		$this->_model = $model_arr;
    	}//setModel
     
    	function addToModel($arr_key,$model_value){
    		$this->_model[$arr_key] = $model_value;
    	}//addToModel
     
    	function setView($view){
    		$this->_view = $view;
    	}//setView
     
    	function getView(){
    		return $this->_view;
    	}//getView
    }//classe
    ma question était surtout sur la valeur de $mv->getModel()

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    print_r pour afficher la structure d'un tableau. Je ne comprend pas très bien ta question :s

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    dans setModel tu met un tableau associatif que tu recupere avec getModel
    c'est tout il y a rien de plus.
    apres $smarty->assign($mv->getModel());

    assigne a smarty la valeur des clé trouver dans getModel

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    ok mais pour recuperer les variable dans smarty....

    // passe un tableau associatif
    $smarty->assign(array('city' => 'Lincoln','state' => 'Nebraska'));

    .tpl
    {$city}
    {$state}

    affiche : lincoln et nebraska

    pour ça Ok, mais dans mon cas comment recuperer mes valeurs? (id et txtPromo) -> j'ai plusieurs lignes de resultat avec : SELECT id,txtPromo FROM pr_promo

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    premier truc fair c'est un print($mv->getModel());
    pour voir la structure de ton tableau et apres tu n'a plus ca le parcourir avec le foreach de smarty

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    en fait print($mv->getModel()); me donne :
    Array

    et je n'arrive pas a y accéder dans ce tableau...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    et
    print_r($mv->getModel()); me donnne
    Array ( [0] => newsmodel Object ( [id] => 1 [txtPromo] => hhhhhhhhhhhhhh ) [1] => newsmodel Object ( [id] => 2 [txtPromo] => ffffffffffffffffff ) )

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    peux-t-on faire un foreach de smarty avec ce genre de tableau?

Discussions similaires

  1. Problème de compréhension sur les entrée du resolv.conf
    Par grinder59 dans le forum Réseaux
    Réponses: 7
    Dernier message: 07/02/2019, 20h29
  2. Compréhension sur les tableaux
    Par iammyself dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2014, 13h19
  3. Réponses: 2
    Dernier message: 18/04/2007, 15h40
  4. Problèmes divers sur les tableaux
    Par AC88mm dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/03/2007, 20h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo