一、常數
(1)XOOPS_ROOT_PATH
xoops的安裝絕對路徑
(2)XOOPS_ROOT_URL
xoops的網路位址
二、核心類別
(1)XoopsSecurity:安全性檢查,比如HTTP REFERER、security token、
檢查Global變數、阻擋 badip
(2)XoopsErrorHandler:錯誤管理,程式中若發生錯誤,
可交由 ErrorHandler產生相關訊息,避免洩漏系統設定
(3)XoopsLogger:訊息記錄,可以將 PHP、Smarty、Mysql 執行過程(結果)即時顯示,
方便偵錯
(4)Criteria:資料相容基準,為了讓Xoops支援 LDAP、Mysql 的一個虛擬類別
(5)MyTextSanitizer:文字管理,換助處理變數中字元的轉換(包含SQL Injection),
預覽畫面,取代"字元過濾選項"設定裡的不當字元,[Code]區塊輸出
(6)XoopsDatabaseFactory:資料庫基本類別,只負責取得資料庫種類
(並載入相對的資料庫類別)及連線部份
(7)XoopsDatabase:資料庫虛擬類別,只負責記錄SQL指令及設定(取得)Xoops Prefix.
(8)XoopsMySQLDatabaseSafe:繼承自XoopsMySQLDatabase,此類別可以執行
Select,Insert,Delete,Drop...所有的SQL語法
(9)XoopsMySQLDatabaseProxy:繼承自XoopsMySQLDatabase,此類別只允許 Select 語法
(10)XoopsMySQLDatabase:繼承自XoopsDatabase,所有 Mysql 功能都在此類別裡實作
(11)XoopsTpl:繼承自Smarty,樣版引擎
(12)XoopsTree:樹狀選單類別,簡單好用的樹狀選單產生,管理類別
(13)XoopsModule:模組基本類別,透過這個類別對模組安全(更新)、初始化、
讀取模組資料、權限核對(管理)、載入相對的語系、樣版(區塊)管理
(14)XoopsMemberHandler、XoopsUser、XoopsGroup:會員管理,群組,使用者,Guest 權限管理
(15)XoopsSessionHandler:Session 管理
(16)XoopsTplsetHandler:樣版"組"管理
(17)XoopsTplfileHandler:樣版"檔案"管理
三、有關使用者
(1)取得所有會員uid
例:
$module_handler = & xoops_gethandler('member');
$users=$module_handler->getUsers();
foreach($users as $user){
if($user->getVar('loginname')) $members[$user->getVar('uid')]=$user->getVar('loginname');
else $members[$user->getVar('uid')]=$user->getVar('uname');
}
(2)新增一個使用者
$member_handler =& xoops_gethandler('member');
$newuser =& $member_handler->createUser();
$newuser->setVar("name", $name);
$newuser->setVar("loginname", $loginname);
$newuser->setVar("uname", $uname);
$newuser->setVar("pass", md5($password));
$newuser->setVar("user_avatar",'blank.gif');
$newuser->setVar("level", 1);
$newuser->setVar("email", $tea_mail);
$newuser->setVar("timezone_offset", '8');
$newuser->setVar("uorder", 0);
$newuser->setVar("umode", 'flat');
$newuser->setVar("user_viewemail",1);
$member_handler->insertUser($newuser);
$uid=$newuser->getVar('uid');
$member_handler->addUserToGroup(XOOPS_GROUP_USERS, $uid);
(3)$xoopsUser物件下:
$xoopsUser->uid() 取得該使用者的代號
$xoopsUser->uname() 取得該使用者的帳號
$xoopsUser->email() 取得該使用者的電子郵件
$xoopsUser->isAdmin($module_id) 判斷該使用者是否為管理者,若傳回true表示有管理權限,若不給module_id表示目前所在的模組,若指定$module_id為-1且傳回true表示其至少有某一模組的管理權。
$xoopsUser->getGroups() 取得該使用者所屬群組,他是個陣列
以uid取得使用者名稱(傳入的第二個參數1表使用者名稱name,0表暱稱uname)
$uid_name=XoopsUser::getUnameFromId($uid,1);
$uid_name=XoopsUser::getUnameFromId($uid,0);
當然你也可以用$xoopsUser->getVar('uid')的方式取得存在的相關資料,uid可以換成你想要取得的資料,如
取得使用者名稱$uname = $xoopsUser->getVar("uname");
取得使用者$email = $xoopsUser->getVar("email");
四、有關模組
(1)$xoopsModule物件下
$xoopsModule->mid() 取得模組代號
$xoopsModule->dirname() 取得模組目錄名稱
$xoopsModule->name() 取得模組名稱
$xoopsModule->getInfo($name=null) 取得模組所有訊息,是個陣列
在這裡你一樣可以用$xoopsModule->getVar('mid')的方式取得存在的相關資料,mid可以換成你想要取得的資料,如
$xoopsModule->getVar('isactive') 判斷模組是否啟用
(2)取得目前的模組
$module_handler = & xoops_gethandler('module');
$modules=$module_handler->getList();
(3)根據目錄顯示模組資訊
$module_handler = & xoops_gethandler('module');
$module=$module_handler->getByDirName($dirname);
echo $module->name;
五、有關資料庫
(1)用$xoopsDB->getInsertId() 取得剛新增資料的編號
(2)用$xoopsDB->errno() 取得錯誤編號
(3)用$xoopsDB->queryFromFile($file) 執行sql檔案
(4)用$xoopsDB->getRowsNum($result) 取得$result有幾列資料
(5)用$xoopsDB->getAffectedRows() 取得Insert, delete, update 等影響幾列資料
六、有關表單
參考這裡,還沒空研究
七、其他
(1)xoops_error($msg),列印錯誤訊息
(2)xoops_result($msg),列印結果訊息
(3)xoops_confirm($hiddens, $action, $msg, $submit=, $addtoken = true),訊息確認盒
例:
$op = $_REQUEST['op'];
if ($op=='restore') {
die('進行還原');
}
//進行還原詢問
$hiddens=array('backup_table'=>$backup_table,'op'=>'restore');
$action=$_SERVER['PHP_SELF'];
$msg='真的要還原'.$backup_table;
include XOOPS_ROOT_PATH.'/header.php';
xoops_confirm($hiddens, $action, $msg);
include XOOPS_ROOT_PATH.'/footer.php';
exit();
(4)redirect_header($url, $time = 3, $message = , $addredirect = true) ,網頁導向函式
八、我不懂的
xoops_gethandler($name, $optional = false ),
取得系統物件(object) 實例函式
xoops 內建的核心物件檔案,放在 kernel 下, 物件定義名稱與檔案名稱關係如下
呼叫 xoops_gethandler('member') 會載入 kernel/member.php ,
並建立回傳 XoopsMemberHandler 物件
呼叫 xoops_gethandler('session') 會載入 kernel/session.php ,
並建立回傳 XoopsSessionHandler 物件
沒有留言:
張貼留言