KingCMS接触之:模块开发(代码部分之后台)

首先他们说要用manage.xxx.php这种命名方式以便管理和识别.当我的文件也按他说的作:manage.secondbuy.php

 

要想管理就在后台能找到访问地址.我把文件放在portal模块中.我们打开portal/language/下面有一个XML文件.我这里是中文的:zh-cn.xml.打开它找到<CHANNEL>这他节点里面就是在该模块下的管理连接了.我的CHANNEL节点如下:

<CHANNEL> <center access="portal" href="../portal/manage.php" mce_href="portal/manage.php" img="a1">栏目中心</center> <add access="portal_list_edt" href="../portal/manage.php?action=edt" mce_href="portal/manage.php?action=edt">添加栏目</add> <model access="portal_model" href="../portal/manage.model.php" mce_href="portal/manage.model.php" class="hr" img="a2">模型管理</model> <tag access="portal_tag" href="../portal/manage.tag.php" mce_href="portal/manage.tag.php" img="i5">标签管理</tag> <comment access="portal_comment" href="../portal/manage.comment.php" mce_href="portal/manage.comment.php" img="r2">评论管理</comment> <site access="portal_site" href="../portal/manage.php?action=site" mce_href="portal/manage.php?action=site">域名绑定</site> <rewriterule access="portal_rewriterule" href="javascript:;" mce_href="javascript:;" class="k_ajax" rel="{URL:'../portal/manage.php',CMD:'rewriterule'}">伪静态规则</rewriterule> <orders access="portal_orders" href="../portal/manage.orders.php" mce_href="portal/manage.orders.php" class="hr" img="p1">订单管理</orders> <groupbuy access="portal_groupbuy" href="../portal/manage.groupbuy.php" mce_href="portal/manage.groupbuy.php">活动管理</groupbuy> <secondbuy access="portal_secondbuy" href="../portal/manage.secondbuy.php" mce_href="portal/manage.secondbuy.php">秒杀活动</secondbuy> <express access="portal_express" href="../portal/manage.express.php" mce_href="portal/manage.express.php" img="j6">物流费用设置</express> <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> </CHANNEL>

 

下面是manage.secondbuy.php的最基础原码.它负责显示所有的记录

<?php require_once '../global.php'; function king_def(){ global $king,$action; $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'), ); $_js=array( "/$.kc_list(K[0],K[1],'')", "K[2]", "K[3]", "K[4]", "K[5]", "K[6]", "K[7]", "K[8]", "K[9]", ); $s=$king->openList($_cmd,'',$_js,$king->db->pagelist('manage.secondbuy.php',$king->db->getRows_number('%s_secbuydir',''))); //行头 $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);"; //商品名称|价格|参加人数|独立IP数|开始时间|结束时间|用户|IP|下单时间 //正体 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);'; } //结束列表 $s.=$king->closeList(); $right=array( array('href'=>'manage.php','title'=>$king->lang->get('portal/title/list'),'ico'=>'a1'), ); $king->skin->output($king->lang->get('portal/title/secondbuy'),'',$right,$s); } ?>

 

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'),
  );

当前页的右上角的显示内容

你可能感兴趣的:(JavaScript,cmd,delete,Class,express,Access)