programming4:template-engine
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản trước của cả hai bênPhiên bản trướcPhiên bản sau | Phiên bản trước | ||
programming4:template-engine [2018/04/18 15:46] – vuthao | programming4:template-engine [2018/04/18 16:52] (hiện tại) – [Xử lý các hàm toán học trong template] vuthao | ||
---|---|---|---|
Dòng 5: | Dòng 5: | ||
Từ phiển bản 4.4 Chúng tôi xây dựng giao diện mới dựa trêm Smarty, và chuyển dần từ Xtemplate sang Smarty 3 | Từ phiển bản 4.4 Chúng tôi xây dựng giao diện mới dựa trêm Smarty, và chuyển dần từ Xtemplate sang Smarty 3 | ||
- | Tài liệu hướng dẫn sử dụng Smarty 3: https:// | + | Tài liệu hướng dẫn sử dụng Smarty 3: |
- | Hoặc xem: https:// | + | * https:// |
+ | | ||
===== Chuyển đổi cách viết từ Xtemplate sang Smarty ===== | ===== Chuyển đổi cách viết từ Xtemplate sang Smarty ===== | ||
Dòng 184: | Dòng 184: | ||
</ | </ | ||
- | Mặc dù Smarty có thể xử lý một số biểu thức và cú pháp rất phức tạp, | + | Mặc dù Smarty có thể xử lý một số biểu thức và cú pháp rất phức tạp, |
+ | |||
+ | ===== Xử lý Cấu trúc điều khiển | ||
+ | <code html> | ||
+ | {if $name eq ' | ||
+ | Welcome Sir. | ||
+ | {elseif $name eq ' | ||
+ | Welcome Ma' | ||
+ | {else} | ||
+ | Welcome, whatever you are. | ||
+ | {/if} | ||
+ | |||
+ | {* an example with " | ||
+ | {if $name eq ' | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | {* same as above *} | ||
+ | {if $name == ' | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | |||
+ | {* parenthesis are allowed *} | ||
+ | {if ( $amount < 0 or $amount > 1000 ) and $volume >= # | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | |||
+ | {* you can also embed php function calls *} | ||
+ | {if count($var) gt 0} | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | {* check for array. *} | ||
+ | {if is_array($foo) } | ||
+ | | ||
+ | {/if} | ||
+ | |||
+ | {* check for not null. *} | ||
+ | {if isset($foo) } | ||
+ | | ||
+ | {/if} | ||
+ | |||
+ | |||
+ | {* test if values are even or odd *} | ||
+ | {if $var is even} | ||
+ | ... | ||
+ | {/if} | ||
+ | {if $var is odd} | ||
+ | ... | ||
+ | {/if} | ||
+ | {if $var is not odd} | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | |||
+ | {* test if var is divisible by 4 *} | ||
+ | {if $var is div by 4} | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | |||
+ | {* | ||
+ | test if var is even, grouped by two. i.e., | ||
+ | 0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc. | ||
+ | *} | ||
+ | {if $var is even by 2} | ||
+ | ... | ||
+ | {/if} | ||
+ | |||
+ | {* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *} | ||
+ | {if $var is even by 3} | ||
+ | ... | ||
+ | {/if} | ||
+ | </ | ||
+ | |||
+ | Hoặc ví dụ: | ||
+ | <code html> | ||
+ | {if isset($name) && $name == ' | ||
+ | {* do something *} | ||
+ | {elseif $name == $foo} | ||
+ | {* do something *} | ||
+ | {/if} | ||
+ | |||
+ | {if is_array($foo) && count($foo) > 0} | ||
+ | {* do a foreach loop *} | ||
+ | {/if} | ||
+ | </ | ||
+ | |||
+ | ===== Lấy giá trị của hằng đã được định nghĩa | ||
+ | |||
+ | Ví dụ template muốn lấy 1 hằng đã được định nghĩa có thể dùng biến sau: | ||
+ | {$smarty.const.CONST_NAME} | ||
- | Nếu bạn thấy cú pháp khuôn mẫu của bạn trở nên quá phức tạp, bạn nên di chuyển vào PHP để xử lý thông qua các block, module, plugins của NukeViet | + | Ví dụ: NV_ROOTDIR: {$smarty.const.NV_ROOTDIR} |
programming4/template-engine.txt · Sửa đổi lần cuối: 2018/04/18 16:52 bởi vuthao