2 在區塊中寫程式
假設您實在厭煩龐雜的XOOPS2的模組架構,但您會寫些PHP程式,那麼,這個方法相當適合您,您只要在區塊中寫下您的PHP程式即可,而無須理會那些模組規則,底下我們用一個簡單的例子來說明。請進入管理介面,然後到區塊管理中,在下方有新增區塊的介面,您只要在「內容」的地方填入PHP程式碼即可。記得!不需要輸入「<?php」或「? >」這類的脫逸符號,換言之,整個內容都必須是PHP程式碼,若需要秀出文字或HTML語法,只要用 echo 即可。例如:
圖 1. 在區塊中寫PHP程式
最下方的「內容形式」記得選擇「PHP語言」,並設定好區塊的標題以及要出現在什麼地方,其結果看起來就會像圖 2所示,完全呈現出我們在區塊中所寫的PHP程式之結果。
圖 2. 中間區塊就是PHP程式的執行結果
當然,這個範例是相當基礎的,只是單純的去抓日期以及環境變數,然後將變數值列印出來而已。此範例的重點並不在於PHP要寫些什麼,而是您只要知道在區塊 中也是可以執行PHP程式即可,您甚至可以在區塊中連結資料庫,然後把擷取出的資料整理之後秀出亦可,如何運用就看您囉!
2-1 在區塊中連結資料庫
如果要使用XOOPS的資料庫物件,您可以在區塊中這樣寫:
重點在這一行:
建立一個XOOPS的資料庫物件。
這一句是 SQL 語法,白話文就是:請從 users 這個表找出所有資料數。user 是會員資料表,所有資料數就是會員人數,換言之,這是一找出所有會員數的寫法。
$xoopsDB->prefix("users") 就是要去呼叫 users 這個資料表,由於 XOOPS 的資料表有所謂的前置字元,例如 users 在資料庫實際為 xoops_user(xoops_即為前置字元),用 $xoopsDB->prefix("資料表") 就會自動幫您加入前置字元。
執行 SQL 語法
利用 $xoopsDB->fetchRow 將執行結果讀出來,然後利用 list() 將讀出的陣列放到變數中,由於我們只請求一項資料(count(*)),所以list 只放到一個變數中,如果請求三項資料,那麼應為 list($var1,$var2,$var3)。
列印出區快要顯示的結果。
$xoopsDB =& Database::getInstance(); $sql="select count(*) from ".$xoopsDB->prefix("users"); $result = $xoopsDB->query($sql) ; list($count)=$xoopsDB->fetchRow($result); echo "會員人數:".$count; |
重點在這一行:
$xoopsDB =& Database::getInstance(); |
$sql="select count(*) from ".$xoopsDB->prefix("users"); |
$xoopsDB->prefix("users") 就是要去呼叫 users 這個資料表,由於 XOOPS 的資料表有所謂的前置字元,例如 users 在資料庫實際為 xoops_user(xoops_即為前置字元),用 $xoopsDB->prefix("資料表") 就會自動幫您加入前置字元。
$result = $xoopsDB->query($sql) ; |
list($count)=$xoopsDB->fetchRow($result); |
echo "會員人數:".$count; |