Tidak dipungkiri saat kita membuat sebuah Program [yang memanfaatkan Database sebagai basis data] tidak akan luput dari penggunaan Array setiap kali query data. Merunut dari Artikel sebelumnya (Simple Template engine dengan Xtemplate bag. I) Silahkan baca terlebih dahulu untuk memperjelas penjelasan Artikel ini, Kita belajar penggunaan Array dalam Xtemplate. Artikel ini memberi tips untuk mempercepat pengcodengan tanpa harus melakukan Perulangan (Looping istilahnya Smile)  akan tetapi bukan berarti tidak melakukan Perulangan Lohh tapi perulangan dihandle oleh Template engine (Xtemplate) , Ok Sekarang saatnya untuk mencoba.

Buat Dummy Array sebagai berikut 

$data_mhs = array(
        array(
             "MHS_NIP"                => "210900987"
            ,"MHS_NAMA_DEPAN"        => "Novan"
            ,"MHS_NAMA_BELAKANG"    => "prasetyo"
            ,"MHS_ALAMAT_SEKARANG"    => "jl. sulawesi XIII 12"
            ,"MHS_KOTA_LAHIR"        => "jakarta"
            ,"MHS_TGL_LAHIR"        => "17-03-1990"
        )
        ,array(
             "MHS_NIP"                => "210900988"
            ,"MHS_NAMA_DEPAN"        => "Agnes"
            ,"MHS_NAMA_BELAKANG"    => "pricylia"
            ,"MHS_ALAMAT_SEKARANG"    => "jl. aaa Gg 3/35"
            ,"MHS_KOTA_LAHIR"        => "Surabaya"
            ,"MHS_TGL_LAHIR"        => "06-12-1991"
        )
        ,array(
             "MHS_NIP"                => "210900988"
            ,"MHS_NAMA_DEPAN"        => "Susi"
            ,"MHS_NAMA_BELAKANG"    => "susanti"
            ,"MHS_ALAMAT_SEKARANG"    => "jl. bbbbbb 6A"
            ,"MHS_KOTA_LAHIR"        => "jakarta"
            ,"MHS_TGL_LAHIR"        => "30-04-1990"
        )
        ,array(
             "MHS_NIP"                => "210900989"
            ,"MHS_NAMA_DEPAN"        => "Hadi"
            ,"MHS_NAMA_BELAKANG"    => "pamungkas"
            ,"MHS_ALAMAT_SEKARANG"    => "jl. ccccc 12A/33"
            ,"MHS_KOTA_LAHIR"        => "surabaya"
            ,"MHS_TGL_LAHIR"        => "27-01-1992"
        )     
    );
     
    $data_select = array(
        array(
             "MHS_NIP"                => "210900987"
            ,"MHS_NAMA_DEPAN"        => "Novan"
            ,"MHS_NAMA_BELAKANG"    => "prasetyo"
        )
        ,array(
             "MHS_NIP"                => "210900988"
            ,"MHS_NAMA_DEPAN"        => "Agnes"
            ,"MHS_NAMA_BELAKANG"    => "pricylia"
        )
        ,array(
             "MHS_NIP"                => "210900988"
            ,"MHS_NAMA_DEPAN"        => "Susi"
            ,"MHS_NAMA_BELAKANG"    => "susanti"
        )
        ,array(
             "MHS_NIP"                => "210900989"
            ,"MHS_NAMA_DEPAN"        => "Hadi"
            ,"MHS_NAMA_BELAKANG"    => "pamungkas"
        )     
    );

2 Array diatas kalian wakilkan pada 2 buah variabel yang berbeda (walaupun datanya sama, untuk mempermudah pembelajaran).

   // Mengulang tiap record array pada for dan Foreach
    for($i=0;$i<count($data_mhs);$i++){
         $tpl->assign('DATA', $data_mhs[$i]); // tampung data array pada variabel DATA (pada Xtemplete)
         $tpl->parse('main.table.row');  // Penempatan Template perulangan
    }     
    $tpl->parse('main.table'); // Template perulangan Utama

kode diatas selayaknya kita melakukan perulangan Array pada umumnya yang biasa kalian gunakan, selanjutnya dari sisi Template kita isikan seperti dibawah :

<!-- BEGIN: table -->
<table border="1">
    <tr>
        <th>Nip</th>
        <th>Nama Lengkap</th>
        <th>Alamat</th>
        <th>Tempat, tgl lahir</th>
    </tr>
    <!-- BEGIN: row -->
    <tr>
        <td>{DATA.MHS_NIP}</td>
        <td>{DATA.MHS_NAMA_DEPAN} {DATA.MHS_NAMA_BELAKANG}</td>
        <td>{DATA.MHS_ALAMAT_SEKARANG}</td>
        <td>{DATA.MHS_KOTA_LAHIR}, {DATA.MHS_TGL_LAHIR}</td>
    </tr>
    <!-- END: row -->

</table>
<!-- END: table -->

Template diatas melakukan pengulangan sesuai banyaknya data yang dikirimkan dalam hal ini sebanyak 4 data

Selanjutnya menggunakan Perulangan menggunakan Foreach, Hanya terdapat beberapa perubahan pada sisi PHP tidak pada sisi Template.

    foreach($data_mhs as $key => $val){
        $tpl->assign('DATA', $val); // tampung data array pada variabel DATA (pada Xtemplete)
        $tpl->parse('main.table2.row2'); // Penempatan Template perulangan
    }
    $tpl->parse('main.table2'); // Template perulangan Utama

Beda dari kode yang pertama pada fungsi PHP dan juga penempatan template saja, Untuk Templatenya sebagai berikut

<!-- BEGIN: table2 -->
<table border="1">
    <tr>
        <th>Nip</th>
        <th>Nama Lengkap</th>
        <th>Alamat</th>
        <th>Tempat, tgl lahir</th>
    </tr>
    <!-- BEGIN: row2 -->
    <tr>
        <td>{DATA.MHS_NIP}</td>
        <td>{DATA.MHS_NAMA_DEPAN} {DATA.MHS_NAMA_BELAKANG}</td>
        <td>{DATA.MHS_ALAMAT_SEKARANG}</td>
        <td>{DATA.MHS_KOTA_LAHIR}, {DATA.MHS_TGL_LAHIR}</td>
    </tr>
    <!-- END: row2 -->

</table>
<!-- END: table2 -->

Nah pada baris ini kita menggunakan perulangan dengan memanfaatkan fungsi dari Xtemplate

    $tpl->array_loop('main.table3.row3','DATA',$data_mhs); // lebih simple dan menghemat pengkodean kalian bukan :)
    $tpl->parse('main.table3');

Kalian bisa lihat dari sisi PHP pada kode diatas Simple bukan! ini akan sangat menghemat kode dan membuang rasa bosan saat melakukan pengkodean (Tergantung Mood Programer juga siih heee...), Dari sisi Template sama saja seperti yang diatas hanya beda pada penamaan template saja.

Bagaimana jika dalam penggunaan pada Radio button atau Dropdown Menu ?

Sebenarnya konsepnya Hampir sama hanya Outputnya saja yang berbeda, OK sekarang kita coba buat

$tpl->array_loop('main.table4.row4','DATA',$data_select); // lebih simple dam menghemat pengkodean kalian bukan :)
$tpl->parse('main.table4');

Saya gunakan Fungsi dari Xtemplate dalam perulangan ini, kemudian buat Template seperti dibawah :

<!-- BEGIN: table4 -->
<select name="mhs" id="mhs">
    <option value="">-</option>
    <!-- BEGIN: row4 -->
    <option value="{DATA.MHS_NIP}">{DATA.MHS_NAMA_DEPAN} {DATA.MHS_NAMA_BELAKANG}</option>
    <!-- END: row4 -->
</select>
<!-- END: table4 -->

Array yang digunakan pada Dropdown adalah yang kedua ($data_select),

Out dari kode diatas seperti dibawah :

array Xtemplate

 

Contoh Kode

Semoga bermanfaat