Tags

, ,

Kredit judul untuk Om Hafid Mukhlasin (y).
Saya tahu kalau saya sama sekali tidak punya sense of art. Walau begitu saya tahu kalau tampilan default dari Yii2 itu jelek sekali. No offense, tapi itu kenyataannya. Pertanyaannya. Bisakah kita merubah sendiri perwajahan dari website kita? Hanya karena developernya Yii abai terhadap desain, tidak lantas mereka abai juga terhadap fitur tersebut. Bahkan, fitur yang mereka tawarkan bisa dikatakan lebih baik dari yang kita harapkan.


Fitur yang dimaksud adalah Theming. Theming adalah mekanisme untuk merubah seperangkat view tanpa harus menyentuh kode asli view tersebut. Kita bisa menggunakan theming untuk merubah look and feel dari aplikasi kita.

Sebelum kita sentuh perkara theme ini, Kita jelaskan dulu apa itu view. View adalah salah satu bagian dari arsitektur MVC yang bertanggung jawab untuk mempresentasikan data ke end user. Dalam aplikasi web, view biasanya berupa kode HTML dan kode PHP untuk presentasi data. Dalam view juga dikenal istilah layout dan content. Layout adalah bagian yang cenderung tetap dari halaman web, sedangkan content adalah bagian yang berubah tergantung controller yang diakses. Layout biasanya adalah bagian header, sidebar dan footer sedangkan konten adalah isi utama halaman web.
Balik ke theme. Dengan theme kita bisa arahkan Yii untuk menggunakan view lain selain yang view standar Yii. Kita bisa berkreasi sebaik dan seindah imajinasi kita untuk ditampilkan di halaman web yang kita buat. Tulisan singkat ini tidak sedang mengajarkan teori webasite yang cantik. Kita hanya akan belajar bagaimana mengganti tampilan standar dengan tampilan kreasi kita.
Pertama kita buat layout desain kita, kita simpan di folder @app/themes/namatema. File layout harus berada pada folder layouts. Jadi full name layout kita nantinya adalah @app/themes/namatema/layouts/main.php. Kemudian kita ubah konfigurasi aplikasi di file config.php

return [
    ...
    'components' => [
        'view' => [
            'theme' => [
                'pathMap' => [
                    '@app/views' => '@app/themes/namatema',
                ],
            ],
        ],
    ],
];

Kita juga bisa memiliki beberapa tema sekaligus Yang akan diterapkan secara berurutan.

return [
    ...
    'components' => [
        'view' => [
            'theme' => [
                'pathMap' => [
                    '@app/views' => [
                        '@app/themes/tema1',
                        '@app/themes/tema2',
                        ...
                    ],
                ],
            ],
        ],
    ],
];

Jika file yang dicari di tema1 tidak ketemu, maka akan dicari di tema2 dan seterusnya. View-view untuk controler kita juga bisa diletakkan di thema. Stuktur foldernya sama seperti di @app/views. Untuk tema dari module konsepnya juga sama. Intinya adalah membuat pemetaan dari view original ke view buatan kita sendiri.

return [
    ...
    'components' => [
        'view' => [
            'theme' => [
                'pathMap' => [
                    '@app/views' => '@app/themes/namatema',
                    // mengganti tampilan yii2-admin dg tampilan kreasi kita
                    '@mdm/admin/views' => '@app/themes/admin', 
                ],
            ],
        ],
    ],
];

Thema di Yii juga terintegrasi dengan internationalization. Artinya kita bisa bikin aplikasi dengan beberapa bahasa dan Yii akan merender view sesuai bahasa yang kita pilih. Kesimpulannya, tema adalah konsep menarik. Kita akan lanjutkan lagi di lain waktu. Insyaallah 😀

Advertisements