首先他們說要用manage.xxx.php這種命名方式以便管理和識別.當我的檔案也按他說的作:manage.secondbuy.php
要想管理就在後台能找到訪問地址.我把檔案放在portal模組中.我們開啟portal/language/下面有一個XML檔案.我這裡是中文的:zh-cn.xml.開啟它找到<CHANNEL>這他節點裡面就是在該模組下的管理串連了.我的CHANNEL節點如下:
<CHANNEL><br /><center access="portal" href="../portal/manage.php" mce_href="portal/manage.php" img="a1">欄目中心</center><br /><add access="portal_list_edt" href="../portal/manage.php?action=edt" mce_href="portal/manage.php?action=edt">添加欄目</add><br /><model access="portal_model" href="../portal/manage.model.php" mce_href="portal/manage.model.php" class="hr" img="a2">模型管理</model><br /><tag access="portal_tag" href="../portal/manage.tag.php" mce_href="portal/manage.tag.php" img="i5">標籤管理</tag><br /><comment access="portal_comment" href="../portal/manage.comment.php" mce_href="portal/manage.comment.php" img="r2">評論管理</comment><br /><site access="portal_site" href="../portal/manage.php?action=site" mce_href="portal/manage.php?action=site">網域名稱綁定</site><br /><rewriterule access="portal_rewriterule" href="javascript:;" mce_href="javascript:;" class="k_ajax" rel="{URL:'../portal/manage.php',CMD:'rewriterule'}">偽靜態規則</rewriterule><br /><orders access="portal_orders" href="../portal/manage.orders.php" mce_href="portal/manage.orders.php" class="hr" img="p1">訂單管理</orders><br /><groupbuy access="portal_groupbuy" href="../portal/manage.groupbuy.php" mce_href="portal/manage.groupbuy.php">活動管理</groupbuy><br /><secondbuy access="portal_secondbuy" href="../portal/manage.secondbuy.php" mce_href="portal/manage.secondbuy.php">秒殺活動</secondbuy><br /><express access="portal_express" href="../portal/manage.express.php" mce_href="portal/manage.express.php" img="j6">物流費用設定</express><br /><config access="#config" href="../system/manage.php?action=config&kmodule=portal" mce_href="system/manage.php?action=config&kmodule=portal" class="hr" img="e7" >參數設定</config><br /></CHANNEL>
下面是manage.secondbuy.php的最基礎原碼.它負責顯示所有的記錄
<?php require_once '../global.php';<br />function king_def(){<br />global $king,$action;<br />$king->access("portal_secondbuy");<br />$_sql="select seid,ktitle,nprice,number,ipnumber,nstartdate,nendate,userid,username,nip,ndate from %s_secbuydir order by seid desc";<br />if(!$res=$king->db->getRows($_sql,1))<br />$res=array();<br />//準備開始列表<br />$_cmd=array(<br />'combing'=>$king->lang->get('portal/secondbuy/combing'),<br />'delete'=>$king->lang->get('system/common/del'),<br />'view'=>$king->lang->get('portal/groupbuy/personote'),<br />);</p><p>$_js=array(<br />"/$.kc_list(K[0],K[1],'')",<br />"K[2]",<br />"K[3]",<br />"K[4]",<br />"K[5]",<br />"K[6]",<br />"K[7]",<br />"K[8]",<br />"K[9]",<br />);<br />$s=$king->openList($_cmd,'',$_js,$king->db->pagelist('manage.secondbuy.php',$king->db->getRows_number('%s_secbuydir','')));<br /> //行頭<br />$s.="ll('".$king->lang->get('portal/orders/prod')."',<br />'".$king->lang->get('portal/groupbuy/amount')."',<br />'".$king->lang->get('portal/secondbuy/number')."',<br />'".$king->lang->get('portal/secondbuy/ipnumber')."',<br />'".$king->lang->get('portal/secondbuy/scstart')."',<br />'".$king->lang->get('portal/secondbuy/scend')."',<br />'".$king->lang->get('portal/user/name')."',<br />'".$king->lang->get('portal/groupbuy/ipadd')."',<br />'".$king->lang->get('portal/secondbuy/mkorder')."',1);"; //商品名稱|價格|參加人數|獨立IP數|開始時間|結束時間|使用者|IP|下單時間<br /> //正體<br />foreach($res as $rs){//td<br />$s.='ll('.$rs['seid'].',/''.$rs['ktitle'].'/',/''.$rs['nprice'].'/',/''.$rs['number'].'/',/''.$rs['ipnumber'].'/',/''.$rs['nstartdate'].'/',/''.$rs['nendate'].'/',/''.$rs['username'].'/',/''.kc_converip($rs['nip']).'/',/''.kc_formatdate($rs['ndate']).'/',0);';<br />}<br />//結束列表<br />$s.=$king->closeList();<br />$right=array(<br />array('href'=>'manage.php','title'=>$king->lang->get('portal/title/list'),'ico'=>'a1'),<br />);</p><p>$king->skin->output($king->lang->get('portal/title/secondbuy'),'',$right,$s);<br />}<br />?>
king_def就是這個頁面被開啟後所執行的預設動作.從大體上講一下源碼.
$king->access("portal_secondbuy");
存取權限的一種標識
$_sql="select seid,ktitle,nprice,number,ipnumber,nstartdate,nendate,userid,username,nip,ndate from %s_secbuydir order by seid desc";
if(!$res=$king->db->getRows($_sql,1))
$res=array();
查詢所有記錄如果沒有用空數組填充
$_cmd=array(
'combing'=>$king->lang->get('portal/secondbuy/combing'),
'delete'=>$king->lang->get('system/common/del'),
'view'=>$king->lang->get('portal/groupbuy/personote'),
);
操作的數組.如果發現只有delete刪除按鈕在外其它的都被組到更多操作的下拉式清單中這是正常的.kingCMS只允許create,delete在外面有單獨的按鈕.當然你也可以去改
$_js=array(
"/$.kc_list(K[0],K[1],'')",
"K[2]",
"K[3]",
"K[4]",
"K[5]",
"K[6]",
"K[7]",
"K[8]",
"K[9]",
);
佔位數組.如果你把表格想像成一塊木板上的一個一個排成排的洞就明白了.其許他是為用js作replace準備的.再不明白看一看他產生的源碼.
$s=$king->openList($_cmd,'',$_js,$king->db->pagelist('manage.secondbuy.php',$king->db->getRows_number('%s_secbuydir','')));
這一行為分頁作準備的.也可以看成是分頁的代碼
//行頭
//商品名稱|價格|參加人數|獨立IP數|開始時間|結束時間|使用者|IP|下單時間
$s.="ll('".$king->lang->get('portal/orders/prod')."',
'".$king->lang->get('portal/groupbuy/amount')."',
'".$king->lang->get('portal/secondbuy/number')."',
'".$king->lang->get('portal/secondbuy/ipnumber')."',
'".$king->lang->get('portal/secondbuy/scstart')."',
'".$king->lang->get('portal/secondbuy/scend')."',
'".$king->lang->get('portal/user/name')."',
'".$king->lang->get('portal/groupbuy/ipadd')."',
'".$king->lang->get('portal/secondbuy/mkorder')."',1);";
表格的表頭部分.
foreach($res as $rs){//td
$s.='ll('.$rs['seid'].',/''.$rs['ktitle'].'/',/''.$rs['nprice'].'/',/''.$rs['number'].'/',/''.$rs['ipnumber'].'/',/''.$rs['nstartdate'].'/',/''.$rs['nendate'].'/',/''.$rs['username'].'/',/''.kc_converip($rs['nip']).'/',/''.kc_formatdate($rs['ndate']).'/',0);';
}
表格的本文體跟上面的JS佔位結合決定最終的顯示效果
$right=array(
array('href'=>'manage.php','title'=>$king->lang->get('portal/title/list'),'ico'=>'a1'),
);
當前頁的右上方的顯示內容