Back to top

Autore Topic: [risolto]problema caricamento vista e chiamata model differenti  (Letto 1308 volte)

Offline tavvolley

  • Nuovo arrivato
  • *
  • Post: 12
    • Mostra profilo
salve a tutti!! ho una vista che non ne vuole sapere di partire cosa devo fare?? ho fatto debug, echo... ma nulla
la richiamo nel controller con
...
JRequest::setVar('view',$caricaVista);
parent::display();

entra nella view selezionata, esegue le due righe:
Codice: [Seleziona]
<?php
defined
('_JEXEC') or die('Accesso negato');
jimport('joomla.application.component.view');
?>


dopo mi entra nel costruttore del model associato alla view; quando finisce il costruttore  si blocca mi visualizza solo gli echo inseriti sino a quel momento e non va avanti!!non ne vuole sapere di entrare nella funzione display della view? come posso fare ? ho fatto il debug passo passo dopo la fine del costruttore del model ma non sono riuscito a venire a capo del problema!! esiste un metodo per capire il perchè non carica la pagina? grazie!!
« Ultima modifica: 21 Mag 2010, 13:15:26 da tavvolley »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:problema caricamento vista
« Risposta #1 il: 20 Mag 2010, 21:30:07 »
non è che sia facile capire detto così  :(

in coda al metodo display della view ti sei ricordato di inserire parent::display()?

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline tavvolley

  • Nuovo arrivato
  • *
  • Post: 12
    • Mostra profilo
Re:problema caricamento vista
« Risposta #2 il: 21 Mag 2010, 13:12:08 »
scusa ma ieri sera non ho avuto il tempo di dire che ho risolto (avevo dimenticato di mettere parent::__construct() nel costruttore del model).
come al solito ringrazio sempre per l'interessamento al mio problema!!
ho capito che chiamare una qualsiasi view in questo modo:
Codice: [Seleziona]
<?php
JRequest
::setVar('view',$nomeView);
parent::display();
?>

è corretto.

tutto ieri mi sono fatto la cultura su come richiamare un model e non capivo dove sbagliavo :-)(anche perchè non mi entrava proprio nella funzione display() per poter capire che non trovava il model e quindi io pensavo fosse problema di richiamo della view!! )
La scelta del model da dove prendere i metodi è standard se la view rispetta i canoni di joomla riguardo i nomi. Per fare in modo che la view si riferisca al suo model dovremmo rispettare qualche nome, esattamente la view si dovrà chiamare XViewY e il suo model associato è XModelY dove X è il nome del componente mentre Y è il nome proprio della view!!
se vogliamo che la view utilizzi le funzioni di altri model (ad esempio anche quello della view Z (quindi nome view: XViewZ e il suo model relativo è XModelZ)), dobbiamo personalizzare il codice e NON utilizzare parent::display(), ma richiamare i vari model che si vuole utilizzare e poi settarli all'interno della view:

Codice: [Seleziona]
<?php

$primoModel   
$this->getModel('Y','XModel'); 
$secondoModel $this->getModel('Z','XModel'); 
$view->setModel($primoModel,true);//se vuoi impostare il model come default
$view->setModel($secondoModel);
$view->display();
?>

« Ultima modifica: 21 Mag 2010, 13:29:28 da tavvolley »

 



Web Design Bolzano Kreatif