KingCMS接觸之:模組開發(代碼部分之後台)

來源:互聯網
上載者:User

首先他們說要用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'),
  );

當前頁的右上方的顯示內容

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.