0 follower

Tampilan

Tampilan (view) adalah naskah PHP yang berisi terutama elemen antar muka pengguna. Ia bisa berisi pernyataan PHP, tapi direkomendasikan bahwa pernyataan ini tidak mengubah model data dan harus tetap relatif sederhana. Untuk semangat pemisahan logika dan penyajian, bagian besar logika harus ditempatkan dalam kontroler atau model daripada tampilan.

Tampilan memiliki nama yang dipakai untuk mengidentifikasi file naskah tampilan saat penyiapan. Nama tampilan sama seperti nama file naskah tampilan. Sebagai contoh, tampilan edit merujuk pada file naskah bernama seperti edit.php. Untuk menyiapkan tampilan, pangil CController::render() dengan nama tampilan. Metode akan mencari file tampilan terkait di bawah direktori protected/views/ControllerID.

Di dalam naskah tampilan, kita dapat mengakses turunan kontroler menggunakan $this. Selanjutnya kita bisa menarik setiap properti kontroler dengan mengevaluasi $this->propertyName dalam tampilan.

Kita juga bisa menggunakan pendekatan dorong berikut guna mengoper data ke tampilan:

$this->render('edit', array(
    'var1'=>$value1,
    'var2'=>$value2,
));

Dalam contoh di atas, metode render() akan mengurai parameter array kedua ke dalam variabel. Hasilnya, dalam naskah tampilan kita dapat mengakses variabel lokal $var1 dan $var2.

1. Tata Letak

Tata letak adalah tampilan khusus yang dipakai untuk mendekorasi tampilan. Biasanya berisi bagian antar muka pengguna yang umum diantara beberapa tampilan. Sebagai contoh, tata letak mungkin berisi bagian header dan footer serta menyertakan tampilan konten diantarana,

......header di sini......
<?php echo $content; ?>
......footer di sini......

di mana $content menyimpan hasil pembuatan tampilan konten.

Tata letak secara implisit diterapkan saat memanggil render(). Secara standar, naskah tampilan protected/views/layouts/main.php dipakai sebagai tata letak. Ini bisa dikustomisasi dengan mengubah baik CWebApplication::layout ataupun CController::layout. Sebaliknya, untuk menyiapkan tampilan tanpa menerapkan tata letak apapun, panggil renderPartial().

2. Widget

Widget adalah turunan dari CWidget atau anak kelasnya. Komponen yang terutama ditujukan guna keperluan penyajian. Widget biasanya disertakan dalam naskah tampilan untuk menghasilkan beberapa antar muka pengguna yang kompleks dan berdiri sendiri. Sebagai contoh, widget kalender bisa dipakai untuk menyiapkan antar muka kalender pengguna yang kompleks. Widget menghidupkan pemakaian kembali yang lebih baik dalam antar muka pengguna.

Untuk menggunakan widget, lakukan seperti berikut dalam naskah tampilan:

<?php $this->beginWidget('path.to.WidgetClass'); ?>
...konten body yang dapat ditangkap oleh widget...
<?php $this->endWidget(); ?>

atau

<?php $this->widget('path.to.WidgetClass'); ?>

Contoh kedua dipakai saat widget tidak memerlukan konten body apapun.

Widget dapat dikonfigurasi untuk mengkustomisasi perilakunya. Ini dilakukan dengan menyetel nilai properti awalnya ketika memanggil CBaseController::beginWidget atau CBaseController::widget. Sebagai contoh, ketika menggunakan widget CMaskedTextField, kita ingin menetapkan pelapisan agar dipakai. Kita dapat melakukannya dengan mengoper array nilai awal properti itu sebagai berikut, di mana kunci array adalah nama properti dan nilai array adalah nilai awal pada properti widget terkait:

<?php
$this->widget('CMaskedTextField',array(
    'mask'=>'99/99/9999'
));
?>

Untuk mendefinisikan widget baru, perluas CWidget dan timpa metode init() dan run():

class MyWidget extends CWidget
{
    public function init()
    {
        // metode ini dipanggil oleh CController::beginWidget()
    }
 
    public function run()
    {
        // metode ini dipanggil oleh CController::endWidget()
    }
}

Seperti halnya kontroler, widget juga bisa memiliki tampilan sendiri. Standarnya, file tampilan widget ditempatkan di bawah subdirektori views pada direktori yang berisi file kelas widget. Tampilan ini disiapkan dengan memanggil CWidget::render(), mirip dengan pemanggilan kontroler. Perbedaannya tidak ada tata letak yang akan diterapkan pada tampilan widget.

3. Tampilan Sistem

Tampilan sistem merujuk pada tampilan yang dipakai oleh Yii untuk menampilkan kesalahan dan pencatatan informasi. Sebagai contoh, ketika permintaan pengguna untuk kontroler atau aksi yang tidak ada, Yii akan memunculkan eksepsi yang menjelaskan kesalahan. Yii menampilkan eksepsi menggunakan tampilan sistem tertentu.

Penamaan tampilan sistem mengikuti beberapa aturan. Nama seperti errorXXX merujuk pada tampilan untuk menampilkan CHttpException dengan kode kesalahan XXX. Sebagai contoh, jika CHttpException dimunculkan dengan kode kesalahan 404, tampilan error404 akan diperlihatkan.

Yii menyediakan satu set tampilan sistem standar yang ditempatkan di bawah framework/views. Ini bisa dikustomisasi dengan membuat file tampilan yang sama dengan nama yang sama di bawah protected/views/system.