{Giúp với} Hướng Dẫn Tạo Module Joomla 1.5 (siêu Hot)

Thảo luận trong 'Hướng dẫn - Hỏi đáp' bắt đầu bởi daiduong47, 1/6/12.

  1. daiduong47

    daiduong47 Moderator Staff Member

    Bài viết:
    278
    Likes :
    95
    Thực ra joomla 1.5 sắp hết thời,nhưng cộng đồng anh em dùng nó vẫn rất đông,nói như quân Nguyên chắc cũng không sai và cái nữa việc chuyển đổi module từ 1.5 sang 2.5 không phải là vấn đề khó nên hôm nay em muốn hướng dẫn những newbie mới dùng joomla cách viết module cho joomla 1.5 mà không phải 2.5.Vì vậy mong anh em đừng thắc mắc về phiên bản của module.

    Vào đề luôn.Module hôm nay em viết có chức năng đếm lượt truy cập cho website.
    (Module này không có ứng dụng thực tế cho lắm,vì có quá nhiều module pro kiểu này rồi,nhưng đây là tut thôi mà các bác,càng dễ hiểu càng vui :D)

    Trước tiên ta cần quan tâm tới quy tắc đặt tên module và chỗ để của module.Chỗ để thì chắc chắc là trong thư mục modules của joomla rồi.Còn quy tắc thì thư mục của module phải có dạng mod_abc trong đó abc là tên module,ở đây em chọn là mod_mycounter

    Trong 1 module joomla có 4 file chính (4 file căn bản)
    mod_abc.php, helper.php, mod_abc.xml, detail.php (file này nằm trong 1 thư mục có tên là tmpl chứa trong thư mục chính của module) ngoài ra còn 2 file index.html

    Bây giờ ta đi vào chi tiết từng file của module.
    Em có hướng dẫn luôn trong file,sau khi đọc,nếu nhìn không rõ trên diễn đàn,mọi người có thể down file đính kèm về tham khảo cho rõ nhé.

    1. File mod_mycounter.php
    PHP:
    <?php
    /**
    Nhiệm vụ của file này
     
    Include file helper.php,nơi chứa những class được sử dụng để thu nhặt những dữ liệu cần thiết.
    Gọi những phương thức thích hợp từ class helper để lấy dữ liệu.
    Include giao diện để thể hiện ra layout.
     
    */
     
    //Không cho phép truy cập vào file này từ một đường dẫn ngoài trang web,có chức năng bảo mật.
    defined'_JEXEC' ) or die( 'Restricted access' );
     
    //Include file helper.php,nơi chứa những class được sử dụng để thu nhặt những dữ liệu cần thiết.
    require_once( dirname(__FILE__).DS.'helper.php' );
     
    //Gọi những phương thức thích hợp từ class helper để lấy dữ liệu.Thể hiện chức năng của module
    $counter modCounterHelper::getCounter$params );
     
    //Dòng này là mặc định nhé --> thể hiện layout như đã nói ở trên
    require( JModuleHelper::getLayoutPath'mod_mycounter' ) );
    ?>
     
    2. File mod_mycounter.xml

    PHP:
    <!--
    Nhiệm vụ của file này là:
    Chứa tất cả các thông tin của module
     
    -->
     
    <?xml version="1.0" encoding="utf-8"?>
    <install type="module" version="1.5.0">
        <!-- Tên Module -->
    <name>My counter</name>
     
        <!-- Tên tác giả -->
    <author>Đào Đại Dương</author>
     
        <!--Ngày ra phiên bản hiện tại của module -->
    <creationDate>01-06-2012</creationDate>
     
        <!-- Copyright information -->
    <copyright>All rights reserved by Đào Đại Dương.</copyright>
     
        <!-- Email tác giả -->
    <authorEmail>[email protected]</authorEmail>
     
        <!-- Phiên bản hiện tịa module -->
    <version>1.0.0</version>
     
        <!-- Mô tả qua về module -->
    <description>Module đếm lượt truy cập cho joomala 1.5</description>
     
        <!-- Danh sách các file sẽ được cài đặt cho module -->
    <files>
            <filename>mod_mycounter.xml</filename>
            <filename module="mod_mycounter">mod_mycounter.php</filename>
            <filename>index.html</filename>
            <filename>helper.php</filename>
            <filename>tmpl/default.php</filename>
            <filename>tmpl/index.html</filename>
    </files>
     
        <!-- Tham số parameter -->
    <params>
    </params>
    </install>
    3. File helper.php

    PHP:
    <?php
    /**
    File này chứa những class sẽ được truy xuất và sử dụng ở file mod_mycounter.php
    */
     
    //Không cho phép truy cập vào file này từ một đường dẫn ngoài trang web,có chức năng bảo mật.
    defined'_JEXEC' ) or die( 'Restricted access' );
     
    class 
    modCounterHelper
    {
     
        function 
    getCounter$params )
        {
    //Khởi tạo biến check và gán giá trị cho Session khi truy cập web
    $check=$_SESSION["counter"];
    //Khai báo,thao tác với file
    $rfile=file("counter.txt");
    //Gán biến đếm cho giá trị trong file
    $counter=$rfile[0];
    //Nếu giá trị check chưa được gán thì...
    if(!isset($check))
    {
    //Gán giá trị cho Session, từ lần tiếp theo $check sẽ có giá trị xác định
    $_SESSION["counter"]=1;
    $counter++;
    //Ghi thêm lượt cho file counter.txt
    $fp=fopen("counter.txt","w");
    fwrite($fp,$counter);
    fclose($fp);
    }
    //Trả ra giá trị của biến $counter cho hàm getCounter() và giá trị này sẽ được lấy ở file mod_mycounter.php
    return $counter;
    }
    }
    ?>
    4. File Default.php

    PHP:
    <?php
    /**
    File này có chức năng hiển thị output cho module
    Có một lưu ý quan trọng khi khỏi tạo file default.php là
    File này phải có cùng phạm vi truy cập với file mod_mycounter.php.
    Có thể hiểu là biến $counter phải được định nghĩa trong file mod_mycounter.php and then used in the template file without any extra declarations or function calls.
     
    File này được đặt trong thư mục tmpl được để ngang hàng với 3 file còn lại trong module
    */
     
    //Không cho phép truy cập vào file này từ một đường dẫn ngoài trang web,có chức năng bảo mật.
    defined'_JEXEC' ) or die( 'Restricted access' ); ?>
    <?php 
    echo '<h1>'.'Lượt truy cập thứ : '.'</h1>'.'<center>'.$counter.'</center>'?>
    Ngoài ra trong 4 file trên còn có 1 file language và 2 file index.html có cấu trúc
    HTML:
    <html><body bgcolor="#FFFFFF"></body></html>
    Thực ra 2 file index này chẳng có nhiệm vụ gì to tát ngoài việc nhằm không cho người xem tò mò liệt kê các file hiện hành trong thư mục module.

    Còn file language có nhiệm vụ thể hiện những từ viết tắt cho module,mọi người có thể tham khảo mấy file language trong bộ cài joomla,vì module này không thực sự cần thiết có file lang nên mình đã lược bỏ nó đi cho bớt phức tạp.
    Trên đây là cách viết một module đơn giản cho joomla 1.5, mời mọi người xem và cho ý kiến :D
    Dưới đây là bản đính kèm đầy đủ của module.Anh em tận hưởng nhé :D

    Ah còn chút lưu ý,để lược bớt độ phức tạp cho code php đếm lượt truy cập,mình đã không thêm vào đó quá trình kiểm tra Ip và cookies nên sau khi tắt web đi và mở lại counter sẽ tự tăng lên 1 đơn vị vì lúc đó là kết thúc 1 phiên Session mà :)
     

    Các file đính kèm:

  2. Phạm Minh Thành

    Phạm Minh Thành Mới tham gia

    Bài viết:
    9
    Likes :
    0
    Cho mình hỏi là chạy module này thế nào vậy?
     
  3. daiduong47

    daiduong47 Moderator Staff Member

    Bài viết:
    278
    Likes :
    95
    Module đếm lượt truy cập cho website bạn ah
     
  4. Phạm Minh Thành

    Phạm Minh Thành Mới tham gia

    Bài viết:
    9
    Likes :
    0
    Bạn cho mình hỏi, vậy nếu muốn setup module vừa viết với file zip thì phải làm thế nào vậy?
     
  5. daiduong47

    daiduong47 Moderator Staff Member

    Bài viết:
    278
    Likes :
    95
    Bạn vào phần cài đặt rồi up và cài đặt module như bình thường thôi bạn ah
     
  6. Phạm Minh Thành

    Phạm Minh Thành Mới tham gia

    Bài viết:
    9
    Likes :
    0
    Mình làm được cái đó, nhưng mình thấy các mod trên mạng, down về có file zip, và cài vào, vậy muốn làm cái đó thì phải làm thế nào vậy daiduong47?
     
  7. van do

    van do Mới tham gia

    Bài viết:
    1
    Likes :
    0
    mình đang dùng phiên bản Joomla 1.5.25, tải module về nhưng không install được bạn à
     
  8. Nhung Phan

    Nhung Phan Mới tham gia

    Bài viết:
    13
    Likes :
    0
    viết cho 2.5 thì khác biệt gì hok bạn?
     
  9. tivanvodich

    tivanvodich Mới tham gia

    Bài viết:
    17
    Likes :
    0
    Cho 3.4 thì sao hả bạn
     
comments powered by Disqus

Chia sẻ trang này