Zend_Layout

Ciao Gianni, mi scuso per l'OT.

Sto cercando di usare questo componente.

Ho iniziato con l'esempio presente alla fine di questa pagina

Come posso dare un valore al metodo HeadTitle() ecc?

In pratica la pagina mi esce vuota!

Immagino che abbia dimenticato di creare qualche altro file...qualcuno ha idee?

Grazie in anticipo

inviato 8 anni fa
Kaesar83
X 0 X

Non so perché la pagina ti esca bianca. Per assegnare un valore a headTitle, nell'Action del Controller ti basta fare così:

$this->view->headTitle = "Titolo Pagina";

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Hum...vediamo dove sbaglio!

In /views/scripts/index/index.phtml ho questo codice

<?php echo $this->docType('XHTML1_STRICT'); ?>
<html>
   <head>
   <?php echo $this->headTitle(); ?>
   <?php echo $this->headScript(); ?>
   <?php echo $this->headStylesheet(); ?>
   </head>
   <body>
   <?php echo $this->partial('header.phtml'); ?>
   <?php echo $this->partial('footer.phtml'); ?>

In /index.php (il file di bootstrap) ho questo

<?php

// includo la cartella del framework e quella dei models   
set_include_path(get_include_path().PATH_SEPARATOR.'C:\Programmi\Zend\Apache2\htdocs\progetto'.PATH_SEPARATOR.'.\models');  
 
require_once('Zend\Loader.php');    
Zend_Loader::registerAutoload(); 

require_once('Zend\Layout.php');
Zend_Layout::startMvc(); 
  
date_default_timezone_set('Europe/Rome');   
  
try {   
    $db = Zend_Db::factory('Pdo_Mysql', array(   
    'host'     => 'localhost',   
    'username' => 'root',   
    'password' => 'pippo',   
    'dbname'   => 'test'  
    ));   
  
    $db->getConnection();   
} catch (Zend_Db_Adapter_Exception $e) {   
    die("Zend_Db_Adapter_Exception: ".$e->getMessage());   
} catch (Zend_Exception $e) {   
    die("Zend_Exception".$e->getMessage());   
}   
  
Zend_Registry::set('db', $db);   
  
define('BASE_URL', str_replace('index.php','',$_SERVER['PHP_SELF']));   
Zend_Controller_Front::run('controllers');   

?>

In /controllers/IndexController.php ho questo

<?php
class IndexController extends Zend_Controller_Action   
{   
    public function indexAction()   
    {   
        $this->view->headTitle = "Titolo Pagina";  
    }   
}  
?>

Infine oltre ad avere i file header.phtml e footer.phtml ho anche il file layout.phtml per evitare che mi restituisca un errore.

Vorrei capire cosa inserire in quel file layout.phtml, ma soprattutto vedere il perchè andando nella index non mi accade nulla, non mi esce il titolo della pagina nè (andando su "Visualizza ---> Codice HTML") mi viene restituito il codice sorgente.

risposto 8 anni fa
Kaesar83
modificato 8 anni fa
X 0 X

nel file di bootstrap prova ad abilitare le eccezioni nel front controller:

$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);

Così se ci sono problemi nel processo di rooting dovresti ricevere un errore a video

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Hum niente...non mi stampa alcun errore a video!

risposto 8 anni fa
Kaesar83
X 0 X

Hai messo le riche che ti ho suggerito prima di Zend_Controller_Front::run('controllers');   ?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ok, l'ho inserito ecco l'errore

Fatal error: Uncaught exception 'Zend_View_Exception' with message 'helper 'HeadStylesheet' not found in path' in C:\Programmi\Zend\Core\ZendFramework\library\Zend\View\Abstract.php:1004 Stack trace: #0 C:\Programmi\Zend\Core\ZendFramework\library\Zend\View\Abstract.php(497): Zend_View_Abstract->_loadClass('helper', 'HeadStylesheet') #1 C:\Programmi\Zend\Core\ZendFramework\library\Zend\View\Abstract.php(294): Zend_View_Abstract->getHelper('headStylesheet') #2 [internal function]: Zend_View_Abstract->__call('headStylesheet', Array) #3 C:\Programmi\Zend\Apache2\htdocs\progetto\views\scripts\index\index.phtml(6): Zend_View->headStylesheet() #4 C:\Programmi\Zend\Core\ZendFramework\library\Zend\View.php(46): include('C:\Programmi\Ze...') #5 C:\Programmi\Zend\Core\ZendFramework\library\Zend\View\Abstract.php(769): Zend_View->_run('.\views\scripts...') #6 C:\Programmi\Zend\Core\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(872): Zend_View_Abstract->render('index/index.pht...') #7 C:\Programmi\Zend\Core\Zen in C:\Programmi\Zend\Core\ZendFramework\library\Zend\View\Abstract.php on line 1004

Volevo aggiungere che se comunque provo a commentare quella riga che genera l'errore, questo va via ma ritorno al problema di prima, niente codice sorgente HTML.

trash: ho unito i due messaggi :bye:

risposto 8 anni fa
Kaesar83
modificato 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

So che potrei essere irritante, ma da dove mi consigliate di partire?

Prima di arrivare alla documentazione ufficiale che spiega il funzionamento di ciascun modulo da dove devo andare per avere una buona panoramica e magari essere d'aiuto a questo forum invece che una costante spina nel fianco!? ;)

risposto 8 anni fa
Kaesar83
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda