Conditional Statements - Các câu điều kiện

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,639
Được Like
12,671
Các câu điều kiện sau đây sẽ chỉ làm việc trong các mẫu mà hỗ trợ các đối số và các thông số.

Báo cáo có thể được mở rộng bằng cách sử dụng AND, OR, xen:elsexen:elseif.

Thay thế == với != trong các ví dụ sau đây sẽ thay đổi tình trạng này từ true sang false.
Ví dụ, <xen:if is="{$visitor.user_id} == x"> cho true, <xen:if is="{$visitor.user_id} != x"> cho false.

Trường hợp một đối số chỉ chứa một tham số duy nhất, chèn một ! trước các thông số có tác dụng tương tự.
Ví dụ, <xen:if is="{$visitor.user_id}"> cho true, <xen:if is="!{$visitor.user_id}"> cho false.

Khi làm việc với các mảng, các ! được đặt ngay trước các đối số.
Ví dụ, <xen:if is="in_array({$forum.node_id}, array(x, y, z))"> cho true, <xen:if is="!in_array({$forum.node_id}, array(x, y, z))"> cho false.

Dùng xen:elsexen:elseif, nhiều điều kiện có thể được kết hợp vào một câu lệnh đơn.
Các hình thức đơn giản nhất là sử dụng xen:else như vậy:
<xen:if is="{$forum.node_id} == x">
Nội dung này sẽ hiển thị trong diễn đàn x
<xen:else />
Nội dung này sẽ hiển thị ở nhiều nơi khác
</xen:if>


Một câu lệnh cao cấp hơn, với nhiều điều kiện sử dụng xen:elseif sẽ như sau:
<xen:if is="{$forum.node_id} == x">
Nội dung này sẽ hiển thị trong diễn đàn x
<xen:elseif is="{$forum.node_id} == y" />
Nội dung này sẽ hiển thị trong diễn đàn y
<xen:elseif is="{$forum.node_id} == z" />
Nội dung này sẽ hiển thị trong diễn đàn z
<xen:else />
Nội dung này sẽ hiển thị ở những nơi khác
</xen:if>


Tùy thuộc vào các mẫu được làm việc cùng, bạn có thể cần phải sử dụng $user thay vì $visitor; $visitor luôn là kỷ lục cho hiện tại người dùng đăng nhập, $user là kỷ lục đang được xử lý (ví dụ như tác giả tin nhắn, danh sách thành viên, danh sách người dùng trực tuyến, vv).

Khi làm việc với các mẫu PAGE_CONTAINER, bạn có thể vượt qua các biến từ xem các mẫu (category_view, forum_view, thread_view, vv) sử dụng xen:container. Điều tương tự cũng áp dụng đối với bất kỳ mẫu được bao gồm trong các mẫu PAGE_CONTAINER; the header hoặc các mẫu ví dụ ad_header.
Để sử dụng $forum.node_id biến ví dụ, bạn sẽ thêm điều này vào các mẫu PAGE_CONTAINER: <xen:container var= "$forumId"> {$forum.node_id} </ xen:container>.
Tương tự đối với các biến $threadId, bạn sẽ thêm: <xen:container var="$threadId">{$thread.thread_id}</xen:container>.

Nơi mà các biến như x, y, z hoặc đã được sử dụng, chúng phải được thay thế bằng giá trị thực tế.

1. Làm thế nào tôi có thể hiển thị nội dung chỉ để đăng nhập thành viên và giấu nó từ khách?
<xen:if is="{$visitor.user_id}">
Nội dung này sẽ hiển thị cho các thành viên đăng nhập
</xen:if>


2. Làm thế nào tôi có thể hiển thị nội dung chỉ để khách và ẩn nó từ đăng nhập thành viên?
<xen:if is="!{$visitor.user_id}">
Nội dung này sẽ hiển thị cho khách
</xen:if>


3. Làm thế nào tôi có thể hiển thị nội dung khác nhau để khách và đăng nhập thành viên?
<xen:if is="{$visitor.user_id}">
Nội dung này sẽ hiển thị cho các thành viên đăng nhập
<xen:else />

Nội dung này sẽ hiển thị cho khách
</xen:if>


4. Làm thế nào tôi có thể hiển thị nội dung cho một nhóm người dùng cụ thể?
<xen:if is="{xen:helper ismemberof, $visitor, x}">
Nội dung này sẽ hiển thị cho các thành viên của nhóm người sử dụng x
</xen:if>


5. Làm thế nào tôi có thể ẩn nội dung từ một nhóm người dùng cụ thể?
<xen:if is="!{xen:helper ismemberof, $visitor, x}">
Nội dung này sẽ được ẩn từ các thành viên của nhóm người sử dụng x
</xen:if>


6. Làm thế nào tôi có thể hiển thị nội dung cho nhiều hơn một nhóm người sử dụng?
<xen:if is="{xen:helper ismemberof, $visitor, x, y}">
Nội dung này sẽ hiển thị cho các thành viên của nhóm người sử dụng x hoặc y
</xen:if>


7. Làm thế nào tôi có thể ẩn nội dung từ nhiều hơn một nhóm người sử dụng?
<xen:if is="!{xen:helper ismemberof, $visitor, x, y}">
Nội dung này sẽ được ẩn từ các thành viên của nhóm người sử dụng x hoặc y
</xen:if>


8. Làm thế nào tôi có thể hiển thị nội dung đến Administrators?
<xen:if is="{$visitor.is_admin}">
Nội dung này sẽ hiển thị cho Administrators
</xen:if>


9. Làm thế nào tôi có thể hiển thị nội dung đến Moderators?
<xen:if is="{$visitor.is_moderator}">
Nội dung này sẽ hiển thị cho Moderators
</xen:if>


10. Làm thế nào tôi có thể hiển thị nội dung đến Administrators và Moderators?
<xen:if is="{$visitor.is_admin} OR {$visitor.is_moderator}">
Nội dung này sẽ hiển thị cho Administrators và Moderators
</xen:if>


11. Làm thế nào tôi có thể hiển thị nội dung đến nhân viên?
<xen:if is="{$visitor.is_staff}">
Nội dung này sẽ hiển thị cho nhân viên
</xen:if>

Lưu ý rằng điều này phụ thuộc vào người sử dụng tùy chọn Display user as staff được kích hoạt trong ACP.

12. Làm thế nào tôi có thể hiển thị nội dung cho một thành viên cụ thể?
<xen:if is="{$visitor.user_id} == x">
Nội dung này sẽ hiển thị cho thành viên x
</xen:if>


13. Làm thế nào tôi có thể hiển thị nội dung cho nhiều hơn một thành viên?
<xen:if is="in_array({$visitor.user_id}, array(x, y, z))">
Nội dung này sẽ hiển thị cho các thành viên x, y, z
</xen:if>


14. Làm thế nào tôi có thể hiển thị nội dung nếu các du khách là người sử dụng?
<xen:if is="{$visitor.user_id} == {$user.user_id}">
Nội dung này sẽ hiển thị nếu khách là người sử dụng
</xen:if>


15. Làm thế nào tôi có thể hiển thị nội dung, nếu người sử dụng bị cấm?
<xen:if is="{$user.is_banned}">
Nội dung này sẽ hiển thị nếu người dùng đang bị cấm
</xen:if>


16. Làm thế nào tôi có thể hiển thị nội dung sau bài viết đầu tiên trong một chủ đề?
<xen:if is="{$post.position} == 0 AND !{$message.conversation_id}">
Nội dung này sẽ hiển thị sau bài viết đầu tiên trong một chủ đề
</xen:if>


17. Làm thế nào tôi có thể hiển thị nội dung sau bài viết đầu tiên trên mỗi trang trong một chủ đề?
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == 0 AND !{$message.conversation_id}">
Nội dung này sẽ hiển thị sau bài viết đầu tiên trên mỗi trang
</xen:if>


18. Làm thế nào tôi có thể hiển thị nội dung sau khi đăng bài x trên mỗi trang trong một chủ đề?
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x">
Nội dung này sẽ hiển thị sau khi đăng bài x trên mỗi trang
</xen:if>


19. Làm thế nào tôi có thể hiển thị nội dung sau khi đăng bài x trên mỗi trang trong một chủ đề, chỉ vào các diễn đàn y và z?
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND in_array({$thread.node_id}, array(y, z))">
Nội dung này sẽ hiển thị sau khi đăng bài x trên mỗi trang, chỉ vào các diễn đàn y và z
</xen:if>


20. Làm thế nào tôi có thể hiển thị nội dung sau khi đăng bài x trên mỗi trang trong một chủ đề, ngoại trừ trong các diễn đàn y và z?
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND !in_array({$thread.node_id}, array(y, z))">
Nội dung này sẽ hiển thị sau khi đăng bài x trên mỗi trang, ngoại trừ trong các diễn đàn y và z
</xen:if>


21. Làm thế nào tôi có thể hiển thị nội dung sau tin nhắn đầu tiên trong một cuộc trò chuyện?
<xen:if is="{$conversation} AND {$message.position_on_page} == 1 AND {$page} == 0">
Nội dung này sẽ hiển thị sau tin nhắn đầu tiên trong một cuộc trò chuyện
</xen:if>


22. Làm thế nào tôi có thể hiển thị nội dung sau tin nhắn đầu tiên trên mỗi trang trong một cuộc trò chuyện?
<xen:if is="{$conversation} AND {$message.position_on_page} == 1">
Nội dung này sẽ hiển thị sau khi được thông báo đầu tiên trên mỗi trang
</xen:if>


23. Làm thế nào tôi có thể hiển thị nội dung tin nhắn x khác trên mỗi trang trong một cuộc trò chuyện?
<xen:if is="{$conversation} AND {$message.position_on_page} % {$xenOptions.messagesPerPage} == x">
Nội dung này sẽ hiển thị sau khi nhắn x trên mỗi trang
</xen:if>


24. Làm thế nào tôi có thể hiển thị nội dung trên một trang cụ thể nào đó?
<xen:if is="{$contentTemplate} == 'xyz'">
Nội dung này sẽ hiển thị trên các mẫu xyz
</xen:if>


25. Làm thế nào tôi có thể hiển thị nội dung trên các trang có một sidebar?
<xen:if is="{$sidebar}">
Nội dung này sẽ hiển thị trên các trang có một sidebar
</xen:if>


26. Làm thế nào tôi có thể hiển thị nội dung trong một thể loại cụ thể?
<xen:if is="{$category.node_id} == x">
Nội dung này sẽ hiển thị trong mục x
</xen:if>

Lưu ý rằng để làm việc này, bạn phải có danh mục thiết lập như các trang trong ACP -> Options -> Node & Forum List: Create Pages for Categories.
Ngoài ra, để đảm bảo các loại ID có sẵn trong các ad_ templates, mẫu category_view phải được chỉnh sửa và thêm vào mã sau: <xen:container var="$category.node_id">{$category.node_id}</xen:container>

27. Làm thế nào tôi có thể hiển thị nội dung trong một chuyên mục?
<xen:if is="{$forum.node_id} == x">
Nội dung này sẽ hiển thị trong chuyên mục x
</xen:if>


28. Làm thế nào tôi có thể hiển thị nội dung ở nhiều hơn một diễn đàn?
<xen:if is="in_array({$forum.node_id}, array(x, y, z))">
Nội dung này sẽ hiển thị trong các diễn đàn x, y, z
</xen:if>


29. Làm thế nào tôi có thể hiển thị nội dung ở tất cả các diễn đàn với một phụ huynh cụ thể?
<xen:if is="{$forum.parent_node_id} == x">
Nội dung này sẽ hiển thị trên các diễn đàn của cha mẹ x
</xen:if>


30. Làm thế nào tôi có thể hiển thị nội dung trong một chủ đề cụ thể?
<xen:if is="{$thread.thread_id} == x">
Nội dung này sẽ hiển thị trong chủ đề x
</xen:if>


31. Làm thế nào tôi có thể hiển thị nội dung ở nhiều hơn một chủ đề?
<xen:if is="in_array({$thread.thread_id}, array(x, y, z))">
Nội dung này sẽ hiển thị trong chủ đề x, y, z
</xen:if>


32. Làm thế nào tôi có thể hiển thị nội dung trong một bài viết cụ thể?
<xen:if is="{$post.post_id} == x">
Nội dung này sẽ hiển thị trong bài x
</xen:if>


33. Làm thế nào tôi có thể hiển thị nội dung ở nhiều hơn một bài?
<xen:if is="in_array({$post.post_id}, array(x, y, z))">
Nội dung này sẽ hiển thị trong bài viết x, y, z
</xen:if>


34. Làm thế nào tôi có thể hiển thị nội dung cho chủ đề tác giả?
<xen:if is="{$thread.user_id} == x">
Nội dung này sẽ hiển thị cho chủ đề tác giả x
</xen:if>


35. Làm thế nào tôi có thể hiển thị nội dung nếu tác giả bài viết là tác giả chủ đề?
<xen:if is="{$post.user_id} == {$thread.user_id}">
Nội dung này sẽ hiển thị nếu tác giả bài viết là tác giả chủ đề
</xen:if>


36. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên có 0 bài viết?
<xen:if is="{$visitor.message_count} == 0">
Nội dung này sẽ hiển thị cho các thành viên với 0 bài viết
</xen:if>


37. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên với hơn x bài viết?
<xen:if is="{$visitor.message_count} > x">
Nội dung này sẽ hiển thị cho các thành viên với hơn x bài viết
</xen:if>


38. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên ít hơn x bài viết?
<xen:if is="{$visitor.message_count} < x">
Nội dung này sẽ hiển thị cho các thành viên ít hơn x bài viết
</xen:if>


39. Làm thế nào tôi có thể hiển thị nội dung để các thành viên có thể nhìn thấy?
<xen:if is="{$user.visible}">
Nội dung này sẽ hiển thị cho các thành viên có thể nhìn thấy
</xen:if>


40. Làm thế nào tôi có thể hiển thị nội dung cho thành viên có một avatar?
<xen:if is="{$visitor.avatar_date} OR {$visitor.gravatar}">
Nội dung này sẽ hiển thị cho thành viên có một avatar
</xen:if>


41. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên những người không có một avatar?
<xen:if is="!{$visitor.avatar_date} AND !{$visitor.gravatar}">
Nội dung này sẽ hiển thị cho các thành viên những người không có một avatar
</xen:if>


42. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên đã hoàn thành một trường người dùng tùy chỉnh?
<xen:if is="{$visitor.customFields.field_id}">
Nội dung này sẽ hiển thị cho các thành viên đã hoàn thành các trường người dùng tùy chỉnh
</xen:if>

Lưu ý rằng field_id phải được thay thế bằng tên vùng người dùng tùy chỉnh thực tế.

43. Làm thế nào tôi có thể hiển thị nội dung cho các thành viên, những người đã không xác nhận địa chỉ email của họ?
<xen:if is="{$isAwaitingEmailConfirmation}">
Nội dung này sẽ hiển thị cho các thành viên đã không được xác nhận địa chỉ email của họ
</xen:if>


44. Làm thế nào tôi có thể hiển thị nội dung cho du khách đến từ các công cụ tìm kiếm?
<xen:if is="{$visitor.from_search}">
Nội dung này sẽ hiển thị cho khách truy cập đến từ các công cụ tìm kiếm
</xen:if>


Nguồn: xenforo.com​
 

ismartcom005

MasterSergeant
Tham gia
14/04/2015
Bài viết
839
Được Like
798
<xen:if is="{$message.is_admin}"> nội dung </xen:if>

show nội dung nếu người post bài là admin :D
 
  • Like
Reactions: THB

THB

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
6,649
Được Like
3,938
@PVS ghi nguồn vào e. o_O
 

Top Bottom