Newsgroup: it.comp.www.php
Titolo: Zend problema Bootstrap

Salve,
ecco il mio problema
Sto utilizzando zen framewok 1.8 per realizzare un sito e ho questo
problema
nel file in oggetto ho la funzione
  function _initViewHelpers()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/
html;charset=utf-8');
        $view->headTitle()->setSeparator(' - ');
        $view->headTitle('sito');
    }
ora nel file layout.php c'è il codice che mi visualizza il contenuto
che ho in una dir nel caso index
adesso io vorrei cambiare completamente layout e quindi passare dalla
dir index a una dir di nome admin
con un layout completamente diverso.
Il problema è che non riesco a capire come dirgli di farlo
spero di essere stato chiaro
Grazie della collaborazione
Andrea

 con un layout completamente diverso.
Credo che tu stia sbagliando filosofia.
Il file layout non deve contenere alcun codice, ma solo lo scheletro della 
pagina (header, footer, eventuale menu, ecc.).
In pratica una cosa cosi`:
<doctype...>
<html>
 <head><title><?php echo $this->headTitle(); ?></title></head>
 <body>
   <?php echo $this->layout()->content; ?>
 </body>
</html>
Il codice PHP va messo in un controller, e il contenuto della pagina in 
una view abbinata al controller.
Quindi avrai un controller del tipo
class indexController()
{
 public function indexAction()
 {
   // codice PHP che legge la directory e la mette in $this->view->files
 }
}
a cui abbinerai una views/scripts/index/index.php piu` o meno cosi`:
<ul>
 <?php foreach ($this->files as $file): ?>
  <li><?php echo $file->name; ?></li>
 <?php endforeach; ?>
</ul>
Poi stara` a te passare a questo index/index i parametri per la directory, 
e avrai un url tipo 
http://www.example.com/index/index/dir/admin
 per la 
directory admin. Dentro indexAction la recuperi cosi`:
$dir = $this->getRequest()->getParam("dir");
Bye.

 </html>
esatto ma ora voglio cambiare il contenuto del file layout.phtml
magari costruendo un altro file layout_admin.phtml che mi carica
un'altra struttura e che non pesca dalla directory
view/script/index/index.phtml
ma da
view/script/admin/index.phtml
altri fogli di stile ecc quindi se nel Bootstrap avrò per il primo
percorso
function _initViewHelpers()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/
html;charset=utf-8');
        $view->headTitle()->setSeparator(' - ');
        $view->headTitle('sito');
    }
come faccio qui a dirgli di caricare layout_admin?
Grazie

 view/script/admin/index.phtml
Stai sbagliando il punto di vista.
Non e` il layout che carica la struttura delle view, ma il controller che 
abbina il layout alla SUA view.
Per cambiare layout ti basta usare, nel controller:
$this->_helper->layout->setLayout('admin');
Ti avviso, pero`, che non uso Zend_Tool. Io, nel bootstrap, ho:
$view = new Zend_View();
$view->setScriptPath(self::$appdir . "/views/scripts");
...
$layout = new Zend_Layout(array(
    'layoutPath' => self::$appdir . '/views/layouts',
    'view' => $view
), true);
$layout->getInflector()->setStaticRule('suffix', 'php');
Bye.