当前位置: 代码迷 >> 综合 >> XOOPS Modules 开发(1)
  详细解决方案

XOOPS Modules 开发(1)

热度:34   发布时间:2024-01-20 05:18:33.0

2 在區塊中寫程式

假設您實在厭煩龐雜的XOOPS2的模組架構,但您會寫些PHP程式,那麼,這個方法相當適合您,您只要在區塊中寫下您的PHP程式即可,而無須理會那些模組規則,底下我們用一個簡單的例子來說明。

請進入管理介面,然後到區塊管理中,在下方有新增區塊的介面,您只要在「內容」的地方填入PHP程式碼即可。記得!不需要輸入「<?php」或「? >」這類的脫逸符號,換言之,整個內容都必須是PHP程式碼,若需要秀出文字或HTML語法,只要用 echo 即可。例如:


圖 1. 在區塊中寫PHP程式


最下方的「內容形式」記得選擇「PHP語言」,並設定好區塊的標題以及要出現在什麼地方,其結果看起來就會像圖 2所示,完全呈現出我們在區塊中所寫的PHP程式之結果。


圖 2. 中間區塊就是PHP程式的執行結果


當然,這個範例是相當基礎的,只是單純的去抓日期以及環境變數,然後將變數值列印出來而已。此範例的重點並不在於PHP要寫些什麼,而是您只要知道在區塊 中也是可以執行PHP程式即可,您甚至可以在區塊中連結資料庫,然後把擷取出的資料整理之後秀出亦可,如何運用就看您囉!

2-1 在區塊中連結資料庫

如果要使用XOOPS的資料庫物件,您可以在區塊中這樣寫:

$xoopsDB =& Database::getInstance();
$sql="select count(*) from ".$xoopsDB->prefix("users");
$result = $xoopsDB->query($sql) ;
list($count)=$xoopsDB->fetchRow($result);
echo "會員人數:".$count;

重點在這一行:
$xoopsDB =& Database::getInstance();
建立一個XOOPS的資料庫物件。

$sql="select count(*) from ".$xoopsDB->prefix("users");
這一句是 SQL 語法,白話文就是:請從 users 這個表找出所有資料數。user 是會員資料表,所有資料數就是會員人數,換言之,這是一找出所有會員數的寫法。

$xoopsDB->prefix("users") 就是要去呼叫 users 這個資料表,由於 XOOPS 的資料表有所謂的前置字元,例如 users 在資料庫實際為 xoops_user(xoops_即為前置字元),用 $xoopsDB->prefix("資料表") 就會自動幫您加入前置字元。

$result = $xoopsDB->query($sql) ;
執行 SQL 語法

list($count)=$xoopsDB->fetchRow($result);
利用 $xoopsDB->fetchRow 將執行結果讀出來,然後利用 list() 將讀出的陣列放到變數中,由於我們只請求一項資料(count(*)),所以list 只放到一個變數中,如果請求三項資料,那麼應為 list($var1,$var2,$var3)。

echo "會員人數:".$count;
列印出區快要顯示的結果。
  相关解决方案