建立一個簡單的模組:使用echo

日期 2010年08月16日 21:10:23 | 新聞類別: 模組開發

原始出處 http://www.xoops.org/modules/mediawiki/index.php/Making_a_simple_module:_Using_echo


 

如果你的模組只是個幾個頁面的簡單模組的話這種方法是可以的。這個方法最大的缺點是破壞了Xoops 的規則,讓你現在寫的模組可能沒辦法在更新版Xoops 中使用。如果你計畫釋出你的模組的話不要使用這個方法!以下的說明只適合用在你自己的小的模組中使用。

這方法的最大好處是在寫程式時不需要更新模組,你要作的只是儲存你的程式碼,按下F5 然後你就會看到更新的結果顯示在螢幕上。

想要使用這個方法將資料顯示在螢幕上你只需要編輯你的index.php 檔案如下。

<?php
require_once("../../mainfile.php");
$myArray = array("Tribal Tech", "Face First", "Tuna Laguna", "Try it!", "Hoven Droven", "Swedish folk music done cool");
include XOOPS_ROOT_PATH."/header.php";
echo "<table><tr><td colspan='2' align='center'>My Module Table</td></tr>";
 
for ($i=0;$i<count($myArray);$i++)
{
        echo "<tr><td align='right'>".$myArray[$i]."-></td>";
        $i++;
        echo "<td>".$myArray[$i]."</td></tr>";
}
 
echo "</table>";
include XOOPS_ROOT_PATH."/footer.php";
?>

你可以使用echo 輸出使用.= 組成的字串變數完成工作,雖然快速但是程式碼很混亂。重新改寫成:

當模組越變越大時index.php 程式碼可能會越來越多且越來越混亂。另外一個好的作法是在模組內建立一個叫作includes 的目錄並在這個目錄下新增一個functions.php 的檔案:

<?php //functions.php
 
function getTable()
{
        $myArray = array("Richard Nixon", "American Hero", "George W. Bush", "Vegetable", "Hoven Droven", "Swedish Folk Music done cool");
        $str = "<table><tr><td colspan='2' align='center'>My Module Table</td></tr>";
        
        for ($i=0;$i<count($myArray);$i++)
        {
               $str .= "<tr><td align='right'>".$myArray$i?."-></td>";
               $i++;
               $str .= "<td>".$myArray$i?."</td></tr>";
        }
        
        $str .= "</table>";
        return $str;
}
?>

這樣一來我們可以讓index.php 內的程式碼減少許多,讓我們更容易了解程式的功能。

<?php //index.php
require_once("../../mainfile.php");
include XOOPS_ROOT_PATH."/include/functions.php";
 
// this line must be defined BEFORE header.php
$xoopsOption['template_main'] = "earplane_main.html";
include XOOPS_ROOT_PATH."/header.php";
echo getTable();
include XOOPS_ROOT_PATH."/footer.php";
?>




本篇新聞來自:XOOPS Site
https://www.xoops.org.tw

本篇新聞的連結網址是:
https://www.xoops.org.tw/modules/news/article.php?storyid=41