Phát triển và kết nối các plug-in
DataLife Engine cung cấp các cơ chế thuận tiện để kết nối plugin mà bạn đã phát triển. Các cơ chế này giúp đảm bảo chức năng của các plugin vẫn hoạt động ngay cả sau khi cập nhật DLE lên phiên bản mới vì cho phép bạn kết nối mà không cần chỉnh sửa mã nguồn DLE.
Để kết nối các plugin mà bạn đã phát triển, bạn cần thêm thẻ vào bất kỳ giao diện nào bạn cần:
{include file="engine/modules/mymod.php"}
Trong đó engine/modules/ là đường dẫn đến tập tin plugin của bạn và mymod.php là tên tập tin để kết nối plugin. Các tập tin plugin tiêu chuẩn của DataLife Engine được đặt trong thư mục này và chúng tôi khuyên bạn nên sử dụng thư mục này, tuy nhiên đây không phải là yêu cầu bắt buộc và tập tin có thể được đặt trong bất kỳ thư mục nào khác trên máy chủ. Giới hạn bảo mật duy nhất để kết nối các mô-đun theo cách này là thư mục chứa tập tin không được phép có quyền ghi (CHMOD 777). Chúng tôi cũng khuyên bạn nên sử dụng các đường dẫn tương đối khi kết nối các plugin; DataLife Engine tự động nhận dạng các đường dẫn tương đối và kết nối các plugin của bạn theo cài đặt của DLE và đường dẫn nơi DLE được cài đặt. Do đó, bạn có thể tạo các hướng dẫn chung để cài đặt plugin của mình.
Bạn cũng có thể kết nối các tập tin PHP của plugin bằng cách truyền các tham số khác nhau, ví dụ:
{include file="engine/modules/mymod.php?param=value1&variable2=value2"}
Nhờ kết nối này, bạn có thể làm cho các plugin trở nên đa chức năng, sẽ thực hiện các vai trò và chức năng khác nhau cho các kết nối khác nhau. Các biến được truyền sẽ có sẵn trong plugin dưới dạng $param và $variable2 tương ứng.
Bắt đầu từ DataLife Engine 8.3, bạn có thể sử dụng các thẻ trong giao diện để làm tham số cho các plugin (ngoại trừ việc sử dụng thẻ trong tập tin giao diện main.tpl và các thẻ thuộc tập tin main.tpl). Ví dụ: khi thêm cấu trúc {include file="engine/modules/mymod.php?param={news-id}"} vào giao diện bài viết đầy đủ, bạn có thể truyền ID của bài viết, v.v. cho plugin như một tham số. Lưu ý đối với nhà phát triển: Các tham số được truyền vào DLE tương tự như tham số GET của URL trình duyệt, do đó, khi chọn thẻ cần truyền, bạn phải tính đến các hạn chế của chuỗi GET, hay nói cách khác là bạn không thể truyền những nội dung quá dài, ví dụ: nội dung của một bài viết đầy đủ như một tham số.
Bạn cũng có thể sử dụng plugin để thay thế khối chính, nơi hiển thị tin tức và thông tin cơ bản khác. Để làm được điều đó, bạn cần sử dụng thẻ này cùng với [aviable=section]text[/aviable] và [not-aviable=section]text[/not-aviable] . Để biết mô tả về các thẻ, hãy xem tài liệu trong phần "Hiển thị bài viết trên trang web". Bạn có thể sử dụng danh sách các Section tiêu chuẩn hoặc tạo các Section của riêng mình bằng cách chuyển nó tới URL trình duyệt. Hãy xem xét một ví dụ đơn giản: Bạn muốn thêm Section của bạn vào các Section tiêu chuẩn của trang web và hiển thị thông tin từ plugin. Giả sử bạn muốn tạo section Câu hỏi thường gặp (FAQ). Để thực hiện việc này, cấu trúc sau được viết trong tập tin main.tpl:
[aviable=faq]{include file="engine/modules/mymod.php"}[/aviable]
[not-aviable=faq]{content}[/not-aviable]
Sau khi kết nối xong, các section tiêu chuẩn của trang web vẫn hoạt động bình thường, khi bạn truy cập vào địa chỉ: http://site.ru/index.php?do=faq, thay vì hiển thị bài viết thì sẽ hiển thị nội dung do plugin của bạn xuất thông tin ra.
Để plugin của bạn hoạt động và hiển thị thông tin chính xác ở vị trí trong giao diện nơi thẻ trên được chèn vào, chỉ cần một điều kiện quan trọng. Việc xuất thông tin chỉ nên được thực hiện thông qua hàm echo của PHP. Hãy xem một ví dụ về một mô-đun đơn giản là xuất ra thông tin. Hãy tạo một tập tin mymod.php với nội dung sau:
<?phpecho "Hello DLE plug-in";?>
Danh sách các biến và lớp DLE mà bạn có thể sử dụng trong plugin của mình mà không cần khai báo bổ sung:
$is_logged - chứa thông tin người truy cập là người dùng hay khách và chứa các giá trị true hoặc false.
$member_id - chứa một mảng chứa thông tin về người dùng đã đăng nhập, bao gồm tất cả thông tin hồ sơ của người đó.
$db - Lớp DLE để làm việc với cơ sở dữ liệu.
$tpl - Lớp DLE để làm việc với giao diện.
$cat_info - một mảng chứa thông tin về tất cả các danh mục trên trang web.
$config - một mảng chứa thông tin về tất cả các cài đặt của DLE.
$user_group - một mảng chứa thông tin về tất cả các nhóm người dùng và thiết lập của các nhóm.
$category_id - chứa ID của danh mục mà khách truy cập đang xem.
$_TIME - chứa thời gian hiện tại ở định dạng UNIX, có tính đến cài đặt bù trong cài đặt tập lệnh.
$lang - một mảng chứa văn bản từ gói ngôn ngữ.
$smartphone_ detected - chứa thông tin về việc người dùng đang xem trang web từ điện thoại thông minh hay từ trình duyệt thông thường và chứa các giá trị true hoặc false.
$dle_module - chứa thông tin về section mà người dùng đang xem hoặc thông tin từ biến do từ URL trên thanh địa chỉ trình duyệt.
Chú ý: Plugin chỉ nên đọc dữ liệu từ các biến này; việc thay đổi giá trị của các biến sẽ gây ra lỗi trong các tính năng tiêu chuẩn của DLE và hoạt động không chính xác của nó.








