Basic Syntax: Escaping Smarty Parsing

Kadang-kadang diinginkan atau bahkan perlu untuk meminta Smarty mengabaikan bagian yang akan diurai. Contoh klasik adalah menyematkan kode Javascript atau CSS dalam sebuah template. Masalah muncul saat bahasa tersebut menggunakan karakter { dan } yang juga merupakan pembatas default untuk Smarty.

Catatan Praktik yang baik untuk menghindari escapement sama sekali adalah dengan memisahkan Javascript/CSS Anda ke dalam file mereka sendiri dan menggunakan metode HTML standar untuk mengaksesnya. Ini juga akan memanfaatkan cache skrip browser. Saat Anda perlu menyematkan variabel/fungsi Smarty ke dalam Javascript/CSS Anda, maka hal berikut ini berlaku.

Dalam template Smarty, tanda kurung kurawal { dan } akan diabaikan selama dikelilingi oleh spasi. Perilaku ini dapat dinonaktifkan dengan menyetel variabel kelas Smarty $auto_literal ke false.

Using the auto-literal feature
Blok {literal} .. {/ literal} digunakan untuk meng-escape blok logika template. Anda juga dapat melepaskan tanda kurung satu per satu dengan {ldelim}, tag {rdelim} atau variabel {$smarty.ldelim}, {$smarty.rdelim}.

Mengubah Delimeter
Pembatas default Smarty { dan } merepresentasikan konten presentasi dengan rapi. Namun, jika sekumpulan pembatas lain lebih sesuai dengan kebutuhan Anda, Anda dapat mengubahnya dengan nilai $left_delimiter dan $right_delimiter dari Smarty.

Catatan Mengubah pembatas mempengaruhi SEMUA sintaksis template dan escapement. Pastikan untuk menghapus cache dan file yang dikompilasi jika Anda memutuskan untuk mengubahnya.

Delimeter tidak menggunakan { dan }. Sehingga pada contoh code JavaScript yang diletakkan pada file HTML seperti di bawah ini, tidak menimbulkan error.

Template:

Sumber
https://www.smarty.net/docs/en/language.escaping.tpl