Công nghệ thông tin
What's mambot là gì - cách tạo và ứng dụng mambot | What's mambot là gì - cách tạo và ứng dụng mambot |
|
|
|
| Thứ sáu, 23 Tháng một 2007 | |
Giới thiệu Mambot là 1 kịch bản nhúng và sẽ được chạy trong các sự kiện (event) từ phần mã của Mambo/Joomla. Có nhiều kiểu khác nhau về mambot. Nhưng kiểu chung nhất và đó là kiểu mà chúng ta sẽ trao đổi trong bài viết này về mambot nội dung (content mambot). Mambot nội dung sẽ thực thi bên trong hàm content.html.php để thay thế cách mục nội dung được hiển thị. Sử dụng chung nhất là để thay thế dạng TAG của mambot {mymambot} bằng một nội dung nào đó được phát sinh từ kịch bản mambot. Cho mục đích này, chúng ta sẽ gọi các thay thế này từ mambot. Có bốn sự kiện của nội dung content.php.html sẽ tạo ra thực thi mambot:
Nào chúng ta hãy xem xét 1 mambot thay thế đơn giản chúng ta sẽ gọi là 'Hello World'. Gài đặtFile cài đặt xml tuơng tự như hầu hết các file cài đặt của Mambo/Joomla khác. Có hai sự khác biệt:
Tham số nhóm mosinstall cho biết kiểu của mambot chúng ta đang cài đặt. Ở trường hợp này, đó là mambot đối với nội dung. Tham số filename được sử dụng cho tham chiếu nội bộ. Trong hầu hết các trường hợp, nó có dạng tên file bỏ đi phần mở rộng. <?xml version="1.0" encoding="iso-8859-1"?> Mã chuơng trình mambot Mã chuơng trình sau đây là 1 mambot có 1 nhiệm vụ và từ mambot này bạn có thể hình dung ra các ứng dụng cụ thể cho mình. Chỉ việc nén dạng zip file này với file xml cài đặt trên và bạn có thể cài đặt nó. Tên của file cài đặt helloworld.xml và file mã chưong trình php là helloworld.php. <?php Phía bên trong mã chuơng trình Có 1 cặp hàm nắm quyền trong mambot chúng ta cần phải hiểu. Đầu tiên là registerFunction() được sử dụng bởi chuơng trình mambot của chúng nêu trên để báo cho Mambo/Joomla là các hàm của mambot đó sẽ được thực thi khi đó. Và thứ hai là hàm trigger() được sử dụng bởi Mambo/Joomla để thi hành nhóm mambot và các hàm gắn với mambot. registerFunction() được sử dụng để tập hợp các nhóm mambot và các hàm liên quan của chúng. Có hai tham số. Tham số đầu tiên là tên nhóm được sử dụng nội bộ bở Mambo/Joomla. Tham số thwus hai là tên hàm chúng ta muốn thực thi bên trong mambot của mình. Hãy xem xét mã lệnh sau từ mambot Hello World: $_MAMBOTS->registerFunction( 'onPrepareContent', 'botHelloWorld' ); Tham số đầu tiên là sự kiện - onPrepareContent. Tham số thứ hai là hàm mambot - botHelloWorld(). Vì thế, ở ví dụ này, registerFunction() báo cho Mambo/Joomla phải thi hành hàm botHelloWorld() trước khi làm điều gì đó đối với nội dung. trigger() là hàm điều hành lõi bên trong của Mambo/Joomla để thực thi nhóm hàm của mambot. Hàm botHelloWorld() ở ví dụ trên từ mambot Hello World thực thi khi Mambo/Joomla gọi hàm sau đây: $_MAMBOTS->trigger( 'onPrepareContent', array( &$row, &$params, $page ), true ); Chúng ta sẽ không bao giờ sử dụng hàm trigger() trong mambot của mình trừ phi bạn muốn tìm kiếm lõi Mambo đối với tất cả các vị trí nơi mà mambot sẽ được thực thi. Hoạt độngbotHelloWorld() là hàm chúng ta muốn Mambo/Joomla thi hành đối với tất cả các mục nội dung. hãy xem xét nó làm việc thế nào: function botHelloWorld( $published, &$row, &$params, $page ) Hãy để ý đến các tham số của hàm. Bây giờ chúng ta so sánh chúng với tham số thwus hai của hàm trigger(). Hàm trigger sẽ truyền dữ liệu tới hàm mambot trên. Bất cứ lúc nào khi chúng ta viết mambot, bạn có thể tìm kiếm mã lõi đối với hàm trigger() để tìm dữ liệu nào là sẵn sàng đối với mambot của bạn. Trong trường hợp này, chúng ta có 2 dữ liệu có thể thao tác:
Chú ý: có thêm biến $published không làm xuất hiện các tham số của trigger(). Xem hàm trigger() để có thêm thông tin chi tiết và điều nó có thể làm. Phuơng thức thay thế đơn giản Trong ví dụ Hello World, chúng ta đã làm 1 thay thế đơn giản. Mỗi vị trí xuất hiện của tag {helloworld} sẽ được thay thế bằng Hello World!. Do chúng ta có thể truy cập mục tin, chúng ta có thể thay thế $row->text bằng cách chúng ta muốn. Hãy ghi nhớRemember, $row->text là tổ hợp của $row->introtext và $row->fulltext. Chúng ta cũng có thể sử dụng $row->published đẻbieets mục tin có được công bố hay không. Hãy bắt đầu nào. Trước tiên, chúng ta cần thiết lập giá trị thay thế: $replace = '<b>Hello World!</b>'; Tiếp theo, chúng ta cần xác lập giá trị tìm kiếm. Đối với các thay thế của mambot trên, chúng ta sử dụng xâu ký tự đặc biệt gọi là biểu thức quy ước. Biểu thức quy ước hơi phức tạp so với bài viết này , vì thế chúng ta bỏ qua nó và chấp nhận biểu thức sau: $regex = '/{helloworld}/i'; Bước tiếp theo là quan trọng. Chúng ta không muốn có sự thay thế trong 1 số trường hợp nhất định. Và nếu chúng ta không muốn hiển thị thay thế, chúng ta cần xóa bỏ tag {helloworld}. Vì thế chúng ta sử dụng preg_replace() để thay thế tag trên bằng giá trị rỗng: if (!$row->published || $params->get( 'intro_only' )|| $params->get( 'popup' )) Chúng ta gần như đã hoàn tất. Bây giờ tất cả những việc cần làm là thay thế các tag {helloworld} bằng Hello World! Chúng ta sẽ sử dụng use preg_replace() để làm điều đó: $row->text = preg_replace( $regex, $replace, $row->text ); Vậy đó. Cách thay thế an toàn đã xong. chúng ta hãy tiếp bước và báo cho Mambo/Joomla rằng mambot của chúng ta đã thwucj thi thành công và đóng hàm của chúng ta lại: return true; Kết luận Hy vọng rằng, từ nay bạn có những hiểu biết tốt hơn về cách mambot làm việc. Có nhiều thú vị đang ở phía trước bạn có thể làm với mambot. Hãy xem xét các mã chương trình trong thư mục /mambot/. Hãy đào sâu. Có kinh nghiệm. Và khi bạn có cơ hội, hãy viết tiếp các mambot có giá trị cho cộng đồng. Biên dịch và giới thiệu: Nguyễn Hoàng Việt - Luyenkim.Net Newer news items:
Older news items:
|
| Liên kết Webs |
| Why's luyenkim.net |
| Woman Calendar |
| Cà phê chiều thứ 7 |
| Từ điển LạcViệt Online |
| Kulkul's world |
| www.xahoihoctap.net |