Variabel tag b:skin
, selain digunakan untuk desain template, juga dapat menyimpan data yang dapat diambil dalam bentuk kode. Namun, sangat mudah untuk merusak templat saat digunakan dalam ekspresi. Pada artikel ini saya menunjukkan cara memvalidasi tipe data untuk menghindari kesalahan.
Situasi
Misalkan kita ingin menyimpan nilai untuk melakukan beberapa operasi nanti. Untuk ini kita dapat menggunakan variabel tipe Skin String Blogger . Variabel-variabel ini tidak memerlukan atribut default
dan juga tidak terlihat di perancang template sehingga cocok untuk pekerjaan ini:
<!-- Definicion de la variable -->
<Variable name="number" description="Angka" type="string" value="4"/>
<!-- Expresion con la variable -->
<b:eval expr='data:skin.vars.number * 5'/>
Dalam hal ini kami telah menyimpan nilai numerik 4
untuk memulihkannya dalam operasi matematika yang hasilnya adalah 20
. Selain itu, sebagai hasil operasi, variabel menjadi tipe data angka . Masalah muncul ketika nilai lain selain angka dimasukkan:
<!-- Definicion de la variable -->
<Variable name="number" description="Angka" type="string" value="Hola mundo"/>
<!-- Expresion con la variable -->
<b:eval expr='data:skin.vars.number * 5'/>
Karena ekspresi matematika kita mengharapkan nilai numerik, templat rusak dan menampilkan kesalahan kritis saat mengunjungi blog bertipe " Ekspresi tidak valid ". Untuk menghindari hal ini, perlu dilakukan validasi tipe data sebelum melakukan operasi.
Validasi jenis nomor
Untuk selalu memperoleh nilai numerik, kita dapat menggunakan ekspresi kondisional dengan operator +
yang dapat digunakan dengan string karakter dan angka:
<b:with value='data:skin.vars.number' var='n'>
<b:with value='data:n + 0 == data:n ? (data:n * 1) : 1' var='number'>
<b:eval expr='data:number * 20'/>
</b:with>
</b:with>
Yang dilakukan ekspresi kita adalah menjumlahkan 0
nilai variabel number
, jika hasilnya sama dengan nilai aslinya, maka itu adalah bilangan dan kita kalikan dengan 1
untuk mengubahnya. Jika tidak, kami mengembalikan nilai numerik default. Dengan cara ini ekspresi akan selalu benar dan template tidak akan rusak .
Validasi tipe String
Variabel tipe String Kulit tidak dapat mengakses parameter data tipe string , seperti length
,, escaped
dll. Meskipun ini bukan masalah, ini adalah salah satu alasan mengapa Anda mungkin perlu melakukan konversi. Untuk melakukan hal ini kita dapat menggunakan operator lagi +
dalam ekspresi:
<b:with value='data:skin.vars.string + "."' var='string'>
<b:eval expr='data:string contains "t"'/>
</b:with>
Dalam hal ini, berapapun nilai variabelnya string
, sebuah karakter akan digabungkan ke dalamnya (saya telah memilih .
tetapi bisa berupa apa saja, bahkan spasi kosong). Dengan cara ini hasilnya akan selalu berupa string karakter dan dalam ekspresi yang memerlukan nilai string wajib (dalam contoh ini berisi operator ), tema tidak akan rusak.
Validasi tipe Boolean
Untuk memvalidasi nilai boolean, kita hanya memerlukan operator atau tag apa pun yang mengembalikan nilai boolean. Ini mungkin jenis data yang paling mudah untuk divalidasi:
<b:eval expr='data:skin.vars.boolean ? "Si" : "No"'/>
Dalam hal ini, pengguna dapat memasukkan nilai apa pun ke dalam variabel boolean
dan akibatnya akan mendapatkan boolean yang dievaluasi sebagai true . Hanya jika Anda memasukkan false
, no
atau membiarkan nilainya kosong, hasilnya akan menjadi false
.
Kesimpulan
Validasi tipe data dalam variabel Blogger
Seperti biasa, Anda dapat menemukan contoh templat terlampir di artikel ini sehingga Anda dapat lebih memahami semua penjelasannya. Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan komentar. Saya akan merespons sesegera mungkin. Terima kasih banyak telah membaca saya.
Comments