.:: CODE SNIPPET ::.

"Your time is limited, so don't waste it living someone else's life"

Cấu trúc một module của Joomla CMS


Một module là một thành phần mở rộng nhỏ và uyển chuyển được dùng trong render một trang.
Cơ bản thì có bốn file được dùng trong một mẫu chuẩn của việc phát triển module;

  • mod_helloworld.php: đây là điểm truy xuất đầu của một module. Nó trình bày những công việc khởi tạo cần thiết, gọi helper để tập hợp những dữ liệu cần thiết, và tích hợp template để xuất kết quả của module.
  • mod_helloworld.xml: file này chứa những thông tin về module. Nó định nghĩa những file cần thiết để được cài đặt bởi bộ cài đặt Joomla, và xác định những tham số cấu hình cho module.
  • helper.php: file này chứa lơp helper để thực hiện công việc thực trong việc lấy về những thông tin cần được thể hiện của module.
  • tmpl/default.php: đây là template của module. File này sẽ nhận dữ liệu được thu thập bở file mod_helloworld.php và sinh mã HTML để thể hiện trên trang.

Chi tiết về các file như sau:

file mod_hello_world.php: file này thực hiện những việc sau:

  • nạp file helper.php, nơi chứa lớp được dùng để thu thập những dữ liệu cần thiết.
  • gọi phương thức thích hợp từ lớp helper để lấy dữ liệu.
  • nạp template để xuất kết quả.

file hepler.php: file này đơn giản là chứa một lớp helper. trong lớp đó có một phương thức để trả về dữ liệu cần xuất ra

file default.php: nằm trong thư mục tmpl. file này lấy dữ liệu cần xuất của module và phát sinh mã html để xuất kết quả đó ra màn hình.

file mod_hello_world.xml: được dùng để xác định những file mà bộ cài đặt cần để copy và sử dụng.

Và dưới đây là cài đặt các file của module mod_helloworld đơn giản:

mod_hello_world.php

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );

$hello = modHelloWorldHelper::getHello( $params );
require( JModuleHelper::getLayoutPath( 'mod_hell_oworld' ) );
?>

file helper.php:

<?php
class modHelloWorldHelper
{
    function getHello( $params )
    {
        return 'Hello, World!';
    }
}
?>

file default.php:

<?php // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<?php echo $hello; ?>

file mod_hello_world.xml:

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>Hello, World!</name>
    <author>John Doe</author>
    <version>1.5.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename>mod_hello_world.xml</filename>
        <filename module="mod_helloworld">mod_hello_world.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
    </files>
    <params>
    </params>
</install>

Ngoài ra, còn có một số công việc quuan trọng mà bạn cần làm để tiến hành cài đặt được module thành công:

Đầu tiên là bạn tạo ra hai file index.html: một file nằm trong folder mod_hello_world (nghĩa là cùng vị trí với file mod_hello_world.xml); và file còn lại thì nằm trong folder mod_hello_world/tmpl. nội dung của 2 file này các bạn có thể để trống.

Chú ý: khi viết một module Joomla, bạn nên để module này nằm tại một vị trí nào đó mà không phải là trong folder modules của Joomla. Cụ thể là ở đây, tôi để module mod_hello_world (cũng là tên folder chứa nó) nằm tại vị trí: D:/mod_hello_world

sau khi chắc chắn về hai công việc trên, giờ chúng ta tiến hành cài đặt module vào Joomla CMS.

+ Truy cập vào quản trị của trang web bằng cách thêm administrator vào đằng sau địa chỉ của trang web, của tôi là http://localhost/Joomla_1.7.0/administrator/index.php

+ Các bạn vào mục Extension Manager, chúng ta dán địa chỉ của module chúng ta vừa viết xong vào phần Install from Directory, của tôi là D:/mod_hello_world. Sau đó click Install

++Các bạn sẽ nhận được thông báo là đã cài đặt module mới thành công. hoặc là bạn sẽ nhận được những dòng thông báo đỏ chót báo những lỗi sảy ra. Lợi ích của Chú ý mà tôi đã viết ở trên là để các bạn tránh được một lỗi báo là không thể copy file mod_hello_world.xml được. Nếu đọc thông báo này, chúng ta sẽ không hiểu tại sao lại như vậy, chú ý trên đã giải quyết cho chúng ta điều đó.

Cuối cùng để kiểm tra hoạt động của module mà chúng ta vừa viết, các bạn chỉ cần gắn module đó lên vị trí nào của trang web. thì các bạn sẽ thấy chỗ đó hiện ra dòng thông báo “Hello World “.

Chúc các bạn cài đặt thành công!

(prmhuitedu)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: