Tema adalah cara sistematis mengkustomisasi tampilan halaman dalam aplikasi Web. Dengan menerapkan tema baru, penampilan aplikasi Web secara keseluruhan bisa diubah secara instan dan secara dramatis.
Dalam Yii, setiap tema disajikan sebagai direktori yang terdiri dari file view,
file layout, dan file sumber daya relevan seperti file gambar, file CSS,
file JavaScript, dll. Nama tema adalah nama direktorinya. Semua tema
berada di bawah dierktori yang sama WebRoot/themes
. Hanya ada satu tema saja
yang bisa aktif.
Tip: Direktori root standar tema
WebRoot/themes
bisa dikonfigurasi ke direktori yang berbeda. Cukup konfigurasi properti basePath dan baseUrl pada komponen aplikasi themeManager ke direktori yang diinginkan.
Untuk mengaktifkan tema, setel properti theme aplikasi Web menjadi nama tema yang diinginkan. Ini bisa dikerjakan baik dalam konfigurasi aplikasi maupun selama berjalan dalam aksi kontoler.
Catatan: Nama tema sensitif jenis huruf. Jika Anda mencoba mengaktifkan tema yang tidak ada,
Yii::app()->theme
akan mengembalikannull
.
Konten di bawah direktori theme harus diatur dengan cara yang sama seperti yang
ada di bawah basis path
aplikasi. Sebagai contoh, semua file tampilan
harus ditempatkan di bawah views
, file tampilan layout di bawah views/layouts
, dan
file tampilan system di bawah views/system
. Contoh lain, jika kita ingin mengganti
tampilan create
pada PostController
dengan tampilan pada tema classic
,
kita harus menyimpan file tampilan baru sebagai WebRoot/themes/classic/views/post/create.php
.
Untuk tampilan yang dimiliki kontroler dalam modul,
File tampilan tema terkait juga harus ditempatkan di bawah dierktori views
.
Sebagai contoh, jika PostController
ada dalam sebuah modul bernama
forum
, kita harus menyimpan file tampilan create
sebagai WebRoot/themes/classic/views/forum/post/create.php
. Jika modul forum
diulang dalam modul lain bernama support
, maka file tampilan seharusnya
WebRoot/themes/classic/views/support/forum/post/create.php
.
Catatan: Karena direktori
views
mungkin berisi data sensitif-keamanan, ia harus dikonfigurasi guna menjaga dari pengakses Web oleh pengguna.
Ketika kita memanggil render atau renderPartial untuk menampilkan tampilan, file tampilan terkait juga file tata letak akan dicari di tema yang saat ini sedang aktif. Dan jika ditemukan, file-file tersebut akan dirender. Sebaliknya, jika gagal akan kembali ke lokasi seperti yang ditetapkan oleh viewPath dan layoutPath.
Tip: Di dalam tampilan tema, kita sering harus menghubungkan file sumber daya tema. Sebagai contoh, kita mungkin ingin memperlihatkan file gambar di bawah direktori
images
tema. Menggunakan properti baseUrl property pada tema yang aktif saat ini, kita membuat URL untuk gambar seperti berikut,Yii::app()->theme->baseUrl . '/images/FileName.gif'
Signup or Login in order to comment.