Modul tata letak halaman Zend Framework - Zend_Layout - dapat digunakan bersama dengan MVC atau sendiri. Artikel ini hanya membahas penggunaan dengan MVC.
1. Skrip tata letak
membuat folder tata letak di bawah aplikasi/tampilan. Kode layout script utama layout.phtml adalah sebagai berikut:
<?php echo $ini->doctype('XHTML1_STRICT') ?>
<html>
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=utf-8" />
<?php echo $ini->headTitle() ?>
<?php
$ini->headLink()->appendStylesheet("/styles/main.css");
// tambahkan lebih banyak tautan...
?>
<?php echo $ini->headLink() ?>
</kepala>
<tubuh>
<div id="tajuk">
<?php echo $ini->partial('header.phtml') ?>
</div>
<tabel>
<tr>
<td valign=atas>
<div id="kolom kiri">
<?php echo $ini->partial('kolom kiri.phtml') ?>
</div>
</td>
<td valign=atas>
<div id="konten">
<?php echo $ini->tata letak()->konten ?>
</div>
</td>
</tr>
</tabel>
<div id="footer">
<?php echo $ini->partial('footer.phtml') ?>
</div>
</tubuh>
</html>
Selain layout.phtml, Anda juga perlu menulis file seperti header.phtml, leftcolumn.phtml, footer.phtml, dan main.css.
Dokumentasi Zend Framework menggunakan tampilan untuk mewakili penerapan tata letak halaman.
2. Mengatur tata letak halaman.
Mengatur tata letak halaman di bawah MVC sangat sederhana. Edit html/index.php dan tambahkan dua baris kode berikut:
/** Setuplayout*/
require_once 'Zend/Layout.php';
Zend_Layout::startMvc($rootPath .'/application/views/layouts');
Catatan: Setelah memulai tata letak halaman, Anda perlu menyesuaikan halaman yang ada dan menghapus elemen html yang tidak perlu, seperti <header> <title> <body > Tunggu untuk menghapus. Selain itu, Anda dapat mengatur judul halaman melalui $this->headTitle().
Mengubah tata letak halaman juga sangat sederhana, cukup gunakan kode berikut di pengontrol:
$this->_helper->layout->setLayout('new_layout');
Jika semua tindakan pengontrol menggunakan tata letak halaman yang sama, yang mana dapat diatur melalui fungsi inisialisasi pengontrol:
public function init() {
induk::init();
$ini->_helper->tata letak->setLayout('tata letak_baru');
}