Multiple assignRef dans mon controller [API JOOMLA]

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Multiple assignRef dans mon controller [API JOOMLA]

    Bonjour a tous,

    J'aimerai pouvoir faire de multiple assignRef dans mon controlleur, je m'explique :

    Voici mon controlleur :

    Code:
    	$view = $this->getView ('payment', 'html');
    	$model =& $this->getModel();
    	$view->data = $model->getOffer($_POST['idOffer']);
    	$view->amount = $_POST['amount'];
    	$view->display();
    Et voici le point d'entrée de la vue :
    Code:
    class OrderViewPayment extends JView
    {
    	function display($tpl = null)
    	{
    		$this->assignRef('data', $this->data);
    		$this->assignRef('amount', $this->amount);
    		parent::display($tpl);
    	}
    }
    Mon problème est que la variable $this->amount->amount est null.

    Je m'y suis peut être mal pris, il se trouve que je suis débutant sous joomla.

    Merci pour vos futur réponses

    let0x

  • #2
    Re : Multiple assignRef dans mon controller [API JOOMLA]

    Essaye ça :

    Code PHP:
    class OrderViewPayment extends JView
    {
        function 
    display($tpl null)
        {
            
    $this->assignRef('data'$this->data);
            
    $amount JRequest::getVar('amount''default value goes here''post',  'variable type');
            
    $this->assignRef('amount'$amount);
            
    parent::display($tpl);
        }

    pas sûr que ça réponde complètement à ta question, mais çà devrait marcher, Non ?

    Pi

    Commentaire


    • #3
      Re : Multiple assignRef dans mon controller [API JOOMLA]

      Envoyé par let0x Voir le message
      Bonjour a tous,

      J'aimerai pouvoir faire de multiple assignRef dans mon controlleur, je m'explique :

      Voici mon controlleur :

      Code:
      	$amount = jRequest::getVar('amount')
      	$model =& $this->getModel();
      	$view->data = $model->getOffer($_POST['idOffer']);
      	$view->amount = $_POST['amount'];
      	$view->display();
      Et voici le point d'entrée de la vue :
      Code:
      class OrderViewPayment extends JView
      {
      	function display($tpl = null)
      	{
      		$this->assignRef('data', $this->data);
      		$this->assignRef('amount', $this->amount);
      		parent::display($tpl);
      	}
      }
      Pour que les personnes lisant ce post y voit plus clair

      Code PHP:
          $view $this->getView ('payment''html');
          
      $model =& $this->getModel();
          
      $view->data $model->getOffer($_POST['idOffer']);
          
      $view->amount $_POST['amount'];
          
      $view->display(); 

      plutot

      Code PHP:
          $view $this->getView ('payment''html');
          
      $model =& $this->getModel();
          
      $view->data $model->getOffer($_POST['idOffer']);
      // tu as déja ici ta valeur amount car tu appel directement ta class avec $view donc amount est assigné
          
      $view->amount $_POST['amount'];
          
      $view->display(); 
      de plus $_POST . VERY BAD !!!!
      Code PHP:
       $view->amount jRequest::getVar('amount'); 
      Bon on oublie tous et on reprend juste dans jView

      Code PHP:
      class OrderViewPayment extends JView
      {
          function 
      display($tpl null)
          {
              
      $data $this->get('offer');// la function getOffer doit exister dans le model Payment
              
      $amount jRequest::getVar('amount'); // mauvaise logique car amount n'est pas controller mais pour le principe...
              // on référence les valeurs style joomla(p.s : this->amount = &amount fait la même chose.)
              
      $this->assignRef('amount'$amount);
              
      $this->assignRef('data'$data);
              
      parent::display($tpl);
          }

      normalement tu control dans ton controller la valeur de idOffer et amount, c'est tous !
      le reste ce fait dans la vue, enfin dans la logique de joomla. donc simplifier au max.
      Admetons que la 'task' est : offer
      Code PHP:
      function offer() {
          if (!empty(
      jRequest::getVar('amount') AND !empty(jRequest::getInt('idOffer') ) $this->display();
          else 
      // code pour l'erreur

      http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
      http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X