织梦DedeCms在线报名插件开发实例讲解

  • 2014-02-27
  • 来自:浩森宇特
  • 报名 开发 实例 讲解 DedeCms

这是一个很简单插件实例,通过此插件,你可以知道怎么样开发一个插件,它结构是怎么设置的,数据库,后台等。

文件结构
enroll.php 文件在 plus文件下
enroll.htm文件在templets/plus 文件夹下
adenroll.php 文件在dede文件夹下
adenroll.html 文件dede/templet文件夹下
sql 文件:

  1. [size=2]CREATE TABLE IF NOT EXISTS `dede_enroll` (  [/size]

  2. [size=2]`id` int(4) NOT NULL auto_increment,  [/size]

  3. [size=2]`name` varchar(20) NOT NULL,  [/size]

  4. [size=2]`mail` varchar(30) NOT NULL, [/size]

  5. [size=2]`tag` tinyint(1) NOT NULL default '0',PRIMARY KEY (`id`)  [/size]

  6. [size=2]) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  [/size]

  7.     

  8. [size=2]INSERT INTO `dede_plus` (`aid`, `plusname`, `menustring`, `mainurl`, `writer`, `isshow`, `filelist`) VALUES[/size]

  9. [size=2](30, '网上报名', '<m:item name=''网上报名'' link=''adenroll.php'' rank=''plus_网上报名'' target=''main'' />', '', 'g1000', 1, '');[/size]


这里说明下:为了方便,我简单的设置了两个字段:姓名和邮箱, tag字段是表示是否录取,1为录取。
第一个insert语句是添加到后台管理
第二个insert语句是添加到前台导航栏


enroll.php 文件代码:

  1. <?php  

  2.       

  3. //*******要先包含common.inc.php 然后 session_start(); 否则取不到session的值  

  4.       

  5. //*******因为common.inc.php 有关于session路径的配置  

  6.       

  7. include_once dirname(__FILE__).'./../include/common.inc.php';//包含配置文件  

  8.       

  9. session_start();  

  10.       

  11. require_once DEDEINC."/arc.partview.class.php";//包含partiew类  

  12.       

  13. //*****实例化 这个类的作用是得到头部导航栏和尾部信息 若不需要可以使用dedetemplate.class.php 这个类  

  14.       

  15. $pv = new PartView();  

  16.       

  17. if($_POST){  

  18.       

  19. if( CheckEmail($_POST['mail'])==false){//验证邮箱 方法在common.func.php 公用函数  

  20.       

  21. ShowMsg('邮箱格式错误','-1');  

  22.       

  23. exit();  

  24.       

  25. }  

  26.       

  27. if($_POST['name']==""){  

  28.       

  29. ShowMsg('用户名不能为空','-1');  

  30.       

  31. exit();  

  32.       

  33. }else{  

  34.       

  35. $name=htmlspecialchars($_POST['name']);  

  36.       

  37. }  

  38.       

  39. if($_SESSION['dd_ckstr']!=strtolower($_POST['validation'])){//验证 验证码 必须转换成小写  

  40.       

  41. ShowMsg('验证码错误',-1);  

  42.       

  43. exit();  

  44.       

  45. }  

  46.       

  47. $sql="insert into `dede_enroll`(name,mail) values('$name','$_POST[mail]')";  

  48.       

  49. //********$db可直接使用 系统自动实例化了dedesql.class.php  

  50.       

  51. $affected = $db->ExecuteNoneQuery2($sql);//执行一条语句 返回影响值  

  52.       

  53. if($affected){  

  54.       

  55. ShowMsg('报名成功',-1);  

  56.       

  57. }  

  58.       

  59. }else{  

  60.       

  61. $pv->SetTemplet(DEDETEMPLATE.'/plus/enroll.htm');//设置<u><a href="http://www.zhimengba.com" target="_blank">模板</a></u>  

  62.       

  63. $pv->Display();//显示页面  

  64.       

  65. }  

  66.       

  67.       

  68.       

  69.       

  70. ?>

enroll.htm文件代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

  2.       

  3. <head>  

  4.       

  5. <title>{dede:global.cfg_webname/}-在线报名</title>  

  6.       

  7. <link href="{dede:global.cfg_templeturl/}/style/<u><a href="http://www.zhimengba.com" target="_blank">dedecms</a></u>.css" rel="stylesheet" media="screen" type="text/css" />

  8.       

  9. </head>  

  10.       

  11. <body>  

  12.       

  13. {dede:include filename="../default/head.htm"/}<!-- 包含头部 -->

  14.       

  15. <blockquote style="margin:50px auto" >  

  16.       

  17. <form method="post" action="">  

  18.       

  19. 姓 名:<input type="text" size=30 name="name" /><br /><br />  

  20.       

  21. 邮 箱:<input type="text" size=30 name="mail" /><br /><br />  

  22.       

  23. <!--vdimgck.php 是验证码-->

  24.       

  25. 验证码:<input type="text" name="validate" /><img src='../include/vdimgck.php'/><br /><br />  

  26.       

  27. <input name="encoll" type="submit" value="报名" /><br />  

  28.       

  29. </form>  

  30.       

  31. </blockquote>  

  32.       

  33. {dede:include filename="../default/footer.htm"/}<!-- 包含尾部 -->

  34.       

  35. </body>  

  36.       

  37. </html>

adenroll.php文件代码:

  1. <?php  

  2.       

  3. require_once(dirname(__FILE__).'/config.php');//后台配置文件 检查登陆 配置信息  

  4.       

  5. require_once(DEDEINC."/datalistcp.class.php");//包含分页类  

  6.       

  7. if($_GET['action']&&$_GET['id']){  

  8.       

  9. if($_GET['action']=='pass'){//各种操作  

  10.       

  11. $db->ExecuteNoneQuery("update dede_enroll set `tag`=1 where id='$_GET[id]'");  

  12.       

  13. ShowMsg('录取成功','adenroll.php');  

  14.       

  15. }  

  16.       

  17. if($_GET['action']=='nopass'){  

  18.       

  19. $db->ExecuteNoneQuery("update dede_enroll set `tag`=0 where id='$_GET[id]'");  

  20.       

  21. ShowMsg('取消录取','adenroll.php');  

  22.       

  23. }  

  24.       

  25. if($_GET['action']=='delete'){  

  26.       

  27. $db->ExecuteNoneQuery("delete from dede_enroll where id='$_GET[id]'");  

  28.       

  29. ShowMsg('删除成功','adenroll.php');  

  30.       

  31. }  

  32.       

  33. }else{  

  34.       

  35. $dl = new DataListCP();  

  36.       

  37. $dl->pageSize = 10;//每页显示10条  

  38.       

  39. $dl->SetTemplate('./templets/adenroll.htm');//载入模板  

  40.       

  41. $sql="select * from dede_enroll";  

  42.       

  43. $dl->SetSource($sql);//执行sql 不能与$dl->SetTemplate 颠倒  

  44.       

  45. $dl->Display();//显示页面  

  46.       

  47. }  

  48.       

  49.       

  50.       

  51.       

  52. ?>

adenroll.html 文件代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

  2.       

  3. <head>  

  4.       

  5. <title>在线报名管理</title>  

  6.       

  7. <link href='img/base.css' rel='stylesheet' type='text/css' />  

  8.       

  9. <style type="text/css">  

  10.       

  11. th,td{  

  12.       

  13. text-align:center;  

  14.       

  15. border:1px #D1DDAA solid;  

  16.       

  17. font-size:15px;  

  18.       

  19. }  

  20.       

  21. th{  

  22.       

  23. background:#E6F8B7;  

  24.       

  25. }  

  26.       

  27. table{  

  28.       

  29. margin-top:20px;  

  30.       

  31. }  

  32.       

  33. </style>  

  34.       

  35. </head>  

  36.       

  37. <body>  

  38.       

  39. <table width="90%" border="0" cellpadding="0" cellspacing="0" align="center">  

  40.       

  41. <tr>  

  42.       

  43. <th>姓名</th>  

  44.       

  45. <th>E-mail</th>  

  46.       

  47. <th>状态</th>  

  48.       

  49. <th>操作</th>  

  50.       

  51. </tr>  

  52.       

  53. <!-- 循环得到结果 -->

  54.       

  55. {dede:datalist}  

  56.       

  57. <tr>  

  58.       

  59. <td>{dede:field.name /}</td>  

  60.       

  61. <td>{dede:field.mail /}</td>  

  62.       

  63. <td>  

  64.       

  65. {dede:if field.tag==0}  

  66.       

  67. 未录取  

  68.       

  69. {else}  

  70.       

  71. <font color="red">已录取</font>  

  72.       

  73. {/dede:if}  

  74.       

  75. </td>  

  76.       

  77. <td> <a href="adenroll.php?action=pass&id={dede:field.id /}">[录取]</a>  

  78.       

  79. |  

  80.       

  81. <a href="adenroll.php?action=nopass&id={dede:field.id /}">[不通过]</a>  

  82.       

  83. |  

  84.       

  85. <a href="adenroll.php?action=delete&id={dede:field.id /}">[删除]</a>  

  86.       

  87. </td>  

  88.       

  89. </tr>  

  90.       

  91. {/dede:datalist}  

  92.       

  93. </table>  

  94.       

  95. <!-- 分页标签 -->

  96.       

  97. <p style="text-align:center;font-size:15px;">{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</p>  

  98.       

  99. </body>  

  100.       

  101. </html>

以上只做简单的实例测试。


在线客服
免费咨询热线

010-89294966

13240313971