Widget

Widget là các block nội dung nhỏ xuất hiện xung quanh phần chính trên trang web của bạn.

Chúng có thể chứa nội dung động, danh sách người dùng hiện đang trực tuyến hoặc các cuộc thảo luận gần đây nhất được đăng trên diễn đàn của bạn.

XenForo xếp một loạt các widget và cài đặt hữu ích với một bộ sưu tập các widget được triển khai tới các vị trí khác nhau trên trang web.

Các widget tiêu chuẩn đi kèm với XenForo bao gồm, trong số nhiều widget khác:

  1. New posts (Bài viết mới)
  2. Online statistics (Thống kê trực tuyến)
  3. Newest members (Thành viên mới)
  4. Today's birthdays (Sinh nhật hôm nay)

Widget bao gồm bốn thành phần:

  1. The widget definition (Định nghĩa widget)
  2. Số nhận dạng duy nhất hay còn gọi là widget key
  3. Vị trí mà widget được gắn vào
  4. Các tham số dữ liệu được hiển thị trong widget

Trình quản lý widget hiển thị danh sách tất cả các widget được định cấu hình trên trang web của bạn, được nhóm theo các vị trí đã xác định của chúng.

Từ đây, bạn có thể thêm các widget mới hoặc xóa các widget hiện có bằng cách sử dụng tiện ích xóa.

Định nghĩa Widget

Định nghĩa Widget thường được tạo bởi các nhà phát triển, người xây dựng một widget có thể lấy một số tham số để hiển thị nội dung động.

Khi bạn nhấn Add widget từ trình quản lý widget, điều đầu tiên bạn sẽ được yêu cầu quyết định là định nghĩa widget nào bạn muốn sử dụng cho triển khai widget mới của mình.

Đối với hầu hết các phần, định nghĩa widget có tên tự giải thích, vì vậy bạn có thể chỉ cần chọn những gì thích hợp nhất từ menu.

Bên trong, định nghĩa widget sẽ tham chiếu đến code PHP thực hiện tất cả công việc để tìm nạp dữ liệu cần thiết cho widget của bạn và định dạng nó thành nơi cuối cùng mà bạn thấy trên màn hình.

Khi bạn đã chọn định nghĩa widget, bạn sẽ cần cung cấp cho nó một ID hoặc key duy nhất, hệ thống sẽ sử dụng để kết hợp tất cả cấu hình widget của bạn.

Vị trí Widget

Mỗi widget đều cần một nơi để hiển thị.

Vị trí Widget được định nghĩa trong các template XenForo và được đăng ký trong cơ sở dữ liệu. Khi một vị trí đã được tạo và đăng ký, nó có thể được sử dụng cho bất kỳ widget nào.

Sau khi bạn đã chọn định nghĩa widget, bạn có thể chọn một hoặc nhiều vị trí mà widget sẽ hiển thị. Bạn nên cố gắng tránh có cùng một widget được hiển thị ở nhiều nơi trên cùng một trang.

Giống như định nghĩa widget, vị trí widget có tên mô tả nên cung cấp cho bạn ý tưởng tốt về vị trí để hiển thị.

Khi bạn chọn vị trí widget, bạn cũng sẽ được nhắc chỉ định display order (thứ tự hiển thị) cho widget đó trong vị trí đã chọn, để bạn có thể hiển thị nó ở trên, ở dưới hoặc giữa các widget khác cũng được gắn vào cùng một vị trí. Như thường lệ, các widget có giá trị thứ tự hiển thị cao hơn được hiển thị sau các giá trị có thứ tự hiển thị thấp hơn.

Thông số Widget

Mỗi định nghĩa widget xác định danh sách các tham số mà nó có thể chấp nhận để kiểm soát dữ liệu mà nó sẽ tìm nạp và hiển thị.

Các thông số này được trình bày trong trình chỉnh sửa widget và có thể có dạng điều khiển cho số mục tối đa để tìm nạp hoặc công tắc cụ thể để giới hạn kết quả dữ liệu cho các kết quả phù hợp với tiêu chí cụ thể.

Hãy chú ý khi cung cấp các thông số cho các widget, vì chúng có thể có hiệu ứng ấn tượng trên output cuối cùng của widget.

Định nghĩa Widget đặc biệt

XenForo cũng đi kèm với hai định nghĩa widget đặc biệt, được thiết kế riêng cho nội dung của riêng bạn.

HTML widget

Widget HTML không thực hiện thêm bất kỳ xử lý PHP nào bên trong, cũng như không tìm nạp bất kỳ dữ liệu nào. Mục đích duy nhất của nó là trở thành một phương tiện cho đoạn code HTML mà bạn nhập vào trường Template của trình soạn thảo widget.

Bạn có thể bao gồm bất kỳ HTML nào và bạn cũng có thể sử dụng cú pháp template của XenForo nếu bạn muốn.

Ngoài ra còn có một tùy chọn Advanced mode (Chế độ nâng cao), sẽ bỏ qua vùng chứa block thông thường cho HTML của widget. Nếu bạn sử dụng chế độ này, bạn hoàn toàn chịu trách nhiệm đảm bảo rằng HTML của widget được chứa đúng cách và được tạo kiểu phù hợp để phù hợp với trang web của bạn.

PHP callback widget

PHP callback widget không bao gồm một box để bạn xác định HTML, nó chỉ cung cấp một ClassMethod, cho phép bạn có code gọi PHP tùy chỉnh của widget, chịu trách nhiệm cả khi tìm nạp bất kỳ dữ liệu nào và để hiển thị HTML cuối cùng.

Đây là tùy chọn nhà phát triển nâng cao.