การสร้าง Modules ใน PHPNUKE ด้วยตัวเอง


  

   issue date 2007-12-07 by charin chookham

 

   ในสมัยที่ใช้ php nuke ใหม่ ๆ เคยคิดที่อยากทำโมดุลขึ้นไว้ใช้งานเองแต่ไม่รู้ต้องทำยังไง ตอนหลังก็มีคนสงสัยเหมือนกันกับเรา แล้วก็มีสอบถามเข้ามาบ้างพอสมควร เลยต้องมาแจงวิธีการทำกันดังนี้

1. ไปสร้างโฟลเดอร์ชื่อของโมดุลที่จะสร้างเช่น MyModules ไว้ในโฟลเดอร์ modules

2. ใช้ text editor เพื่อสร้างโค๊ตเช่น editplus ,notepad แล้วนำโค๊ดนี้ไปแปะได้เลย

 


<?php
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}

$index = 1;
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");

// พื้นที่ตรงนี้สำหรับเขียนเนื้อหาของโมดุลของเรา

include("footer.php");
?>

3. อย่างเช่นตัวของโมดุลที่ผมเขียนขึ้นมาก็เป็นดังนี้ แล้วก็ save เป็น index.php แล้วนำขึ้นไปไว้ในโฟลเดอร์ที่เราได้สร้างไว้

 

<?php
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}

$index = 1;
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");

echo "This is MyModules"; // พื้นที่ตรงนี้สำหรับเขียนเนื้อหาของโมดุลของเรา

include("footer.php");
?>

4. การเรียกใช้งานก็เป็นดังนี้ http://ชื่อเว็บของเรา/modules.php?name=ชื่อโฟลเดอร์ที่สร้างไว้  เช่น http://www.myweb.com/modules.php?name=MyModules

เป็นไงล่ะครับพอทำได้ไหม ง่าย ๆ แค่นี้เองครับ เพิ่มเติมการสร้างเมนู(blocks)ด้วยแล้วกันโค๊ตก็เป็นดังนี้นะครับ แล้วแก้ไขปรับปรุงต่อเองนะครับ

  <?php
if ( !defined('BLOCK_FILE') ) {
Header("Location: ../index.php");
die();
}
$content .= "<a href=\"#\">หน้าแรก</a><br />";
$content .= "<a href=\"#"\>วิสัยทัศน์</a><br />";
$content .= "<a href=\"#\">ข่าวประชาสัมพันธ์</a><br />";
?>

หมายเหตุ : หากท่านสร้าง modules เสร็จแล้วเมื่อเรียกใช้งาน เจอข้อความลักษณะนี้คือ "เสียใจโมดุลนี้ไม่ทำงาน" ลองไปดูในตาราง nuke-modules มีชื่อ modules ที่ท่านได้สร้างขึ้นหรือไม่ หากไม่มีก็ไปทำการเพิ่มเข้าไป และเปลี่ยน fileds active ให้เป็น 1 เท่านี้ก็น่าจะใช้ได้ ปกติหากเราได้ reload ระบบจะสร้างให้ หากมันไม่สร้างให้เราก็ต้องมาสร้างเองล่ะครับ อีกอย่างหากเราไม่ได้เปิดเป็นไฟล์ index.php เวลาเรียกใช้งานก็ต้องบอกชื่อไฟล์ด้วย ก็เรียกดังนี้ http://myweb/modules?name=ชื่อmodules?file=ชื่อไฟล์ที่จะเปิด