admin.hello_world.php
//這個將驗證是否由JOOMLA來調用此檔案,防止非法直接運行本檔案,對於安全性非常重要
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
//資料庫查詢和設定HTML輸出//
/*
開發時間:2007-12-17
開發人員:yoshow
Gmail: ruanyu83@gmail.com
URL:http://hi.baidu.com/joomla123
資料庫查詢和設定HTML輸出
*/
//調用以下兩檔案 class.hello_world.php and admin.hello_world.html.php
require_once($mosConfig_absolute_path."/administrator/components/com_hello_world/class.hello_world.php");
require_once( $mainframe->getPath( 'admin_html' ) );
//建立一個選擇開關語句這樣假如有一個變數$act 我們將重定義一個新變數$task. 這樣$act 將用來實現顯示文字的函數中,而$task將被用在儲存,刪除等。.
switch ($act) {
default:
$task = "showText";
break;
}
//這個開關語句將根據$task來運行所需的函數。
switch ($task) {
case "save":
save( $option );
break;
case "delete":
delete( $option, $id );
break;
case "new":
$id = '';
edit( $option, $id );
break;
case "edit":
save( $option, $id[0] );
break;
case "showText":
showText( $option );
break;
}
//我們的第一個函數,儲存我們建立或正在編輯的內容的函數
function save( $option ) {
//聲明$database為全域變數
global $database;
//這將定義$row新變數來儲存插入到資料庫中的資訊,$row是class class.hello_world.php檔案定義的mosHello_world類的一個執行個體。
$row = new mosHello_world( $database );
//假如 $row 返回空值,顯示錯誤資訊並返回上一個視窗。
if (!$row->bind( $_POST )) {
echo "n";
exit();
}
//假如不能完成對資料庫的寫操作,將顯示錯誤資訊並返回上一個視窗,這僅僅會在資料庫出現異常時會出現。
if (!$row->store()) {
echo "n";
exit();
}
//假如一切正常將重新導向你的瀏覽器到主選項視窗,並顯示"Saved".
mosRedirect( "index2.php?option=$option", "Saved" );
}
//很多代碼可參照前面的解釋,這裡不再贅述。
function edit( $option, $uid ) {
global $database;
$row = new mosHello_world( $database );
//定義了$row後並聲明它為mosHello_world類,裝載$uid相關的資料. $uid是我們想編輯的內容的$id的值
$row->load( $uid );
//將$row 傳遞到admin.hello_world.html.php 顯示。
HTML_hello_world::edit( $option, $row );
}
function delete( $option, $cid ) {
global $database;
//這將檢驗是否有刪除對象,如為空白將顯示提示資訊並返回上一個視窗。
if (!is_array( $cid ) || count( $cid ) echo "n";
exit;
}
//這將檢驗$cid (儲存所有欲刪除的對象的$id值的數列)是否為空白,如果不為空白它將建立一個以逗號為分隔字元的所有id的列表並儲存在字串$cids然後根據相應的id進行刪除操作,如果操作出錯將返回上一個視窗。
if (count( $cid )) {
$cids = implode( ',', $cid );
$database->setQuery( "DELETE FROM jos_hello_world WHERE id IN ($cids)" );
if (!$database->query()) {
echo "n";
}
}
mosRedirect( "index2.php?option=$option" );
}
//這是我們的主輸出函數,將建立我們要輸出的文字的列表,解釋參照前面所述。
function showText($option) {
global $database;
# Do the main database query
$database->setQuery( "SELECT * FROM jos_hello_world ORDER BY id" );
$rows = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
}
HTML_hello_world::showText( $option, $rows );
}
?>