原始出處 http://www.xoops.org/modules/mediawiki/index.php/Basic_content_of_a_module
index.php
使用index.php
在了解xoops_version.php 後我們開始安裝模組並開始工作。
在安裝完模組後點選主選單上的tutorial。你會看到你的xoops 網站內有一頁空白頁。
現在打開index.php
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
require(XOOPS_ROOT_PATH.'/footer.php');
?>
你會注意到這裡三行新的程式。你的程式碼必須介於"...header" 與"....footer" 之間。測試的程式碼如:
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
echo "Hello world!";
require(XOOPS_ROOT_PATH.'/footer.php');
?>
現在當你再按一次主選單上的tutorial,你會看到你的網站上面有"Hello world!"字樣。
產生列表
現在讓我們更進一步產生一個簡單的使用者列表。
我們將:
echo "Hello world!";
改成
$member_handler =& xoops_gethandler('member');
$foundusers =& $member_handler->getUsers();
foreach ($foundusers as $x) {
echo $x->getVar("uname").'';
}
點選主選單上的tutorial 你會看到有在網站註冊的使用者列表。我們再回顧一下每行程式的作用。第一行是一個指定給$member_handler 的member 的handler。第二行是取得所有的使用者並以陣列的形式放在$foundusers 變數內。現在我們可以使用foreach 取得內容。Foreach 的功用是"我要取得全部的內容並對每個內容作一些事情"。如果你想要看陣列的內容試著如下:
警告: 這個程式碼最好只有在測試網站上使用。
$member_handler =& xoops_gethandler('member');
$foundusers =& $member_handler->getUsers();
foreach ($foundusers as $x) {
//echo $x->getVar("uname").'<br>';
print_r($x);
echo '<br><br><br>';
}
雖然很混亂,但是你會看到所有使用者的變數值。
接著適當的格式化使用者列表並且取得使用者的資訊。
一開始我們先產生表格的標頭欄。如同我之前說的,這只是個簡單的介紹模組,所以我將使用簡單的方式,這個方式不一定是正確的方式,我將在接下來的介紹中使用更好的方式。
為了避免混淆,我將展示出index.php 檔案的所有內容:
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
?>
<table width="100" border="0">
<tr>
<td bgcolor="#99CC99">Name</td>
<td bgcolor="#66CC99">Email</td>
</tr>
</table>
<?php
require(XOOPS_ROOT_PATH.'/footer.php');
?>
現在點選主選單上面的tutorial 你會看到標頭是”Name”與”Email”的表格。很好!讓我們開始放一些資料進去吧。
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
?>
<table width="100" border="0">
<tr>
<td bgcolor="#99CC99">Name</td>
<td bgcolor="#66CC99">Email</td>
</tr>
<?php
$member_handler =& xoops_gethandler('member');
$foundusers =& $member_handler->getUsers();
foreach ($foundusers as $x) {
echo '<tr><td>'.$x->getVar("uname").'</td><td>'.$x->getVar("email").'</td></tr>';
}
?>
</table>
<?php
require(XOOPS_ROOT_PATH.'/footer.php');
?>
現在點選主選單上面的tutorial 你會看到表格內多了使用者的名字與email。很好!然而現在的程式非常的凌亂,參雜著php 與html 程式碼。現在讓我們將全部的程式碼改成php:
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
echo '<table width="100" border="0">
<tr>
<td bgcolor="#99CC99">Name</td>
<td bgcolor="#66CC99">Email</td>
</tr>';
$member_handler =& xoops_gethandler('member');
$foundusers =& $member_handler->getUsers();
foreach ($foundusers as $x) {
echo '<tr><td>'.$x->getVar("uname").'</td><td>'.$x->getVar("email").'</td></tr>';
}
echo '</table>';
require(XOOPS_ROOT_PATH.'/footer.php');
?>
現在好多了。雖然結果還是一樣但是現在的程式碼更容易了解了。讓我們將更符合xoops 標準的程式碼帶入。首先我們使用語言變數代替掉"name"與"email"等字樣。現在建立一個叫作language 的目錄(重要:目錄名稱都必須是小寫的)。現在在language 目錄下建立一個叫作english 的目錄。在english 目錄下建立一個檔案叫作main.php。接著將以下程式碼寫入main.php:
<?php
define('TT_NAME','Name');
define('TT_EMAIL','Email');
?>
在同個目錄下建立另外一個檔案叫作modinfo.php。在這個檔案內寫入:
<?php
?>
我們現在正在作的事情是建立兩個語言常數檔取代現有文字。語言常數讓模組的使用者可以輕易的將模組內的文字轉換成使用者所使用的語言。現在打開index.php 編輯:
<?php
// Tutorial
// Created by KaotiK
require('../../mainfile.php');
require(XOOPS_ROOT_PATH.'/header.php');
echo '<table width="100" border="0">
<tr>
<td bgcolor="#99CC99">'.TT_NAME.'</i></td>
<td bgcolor="#66CC99">'.TT_EMAIL.'</td>
</tr>';
$member_handler =& xoops_gethandler('member');
$foundusers =& $member_handler->getUsers();
foreach ($foundusers as $x) {
echo '<tr><td>'.$x->getVar("uname").'</td><td>'.$x->getVar("email").'</td></tr>';
}
echo '</table>';
require(XOOPS_ROOT_PATH.'/footer.php');
?>
相當的好!現在我們的模組已經有語言常數了。