DEDECMS插件开发教程

这是一个很简单插件实例,通过此插件,你可以知道怎么样开发一个插件,它结构是怎么设置的,数据库,后台等。
文件结构:
enroll.php 文件在 plus文件下
enroll.htm文件在templets/plus 文件夹下
adenroll.php 文件在dede文件夹下
adenroll.html 文件dede/templet文件夹下
sql 文件:

Sql代码  
  • CREATE TABLE IF NOT EXISTS dede_enroll (   
  • id int(4) NOT NULL auto_increment,   
  • name varchar(20) NOT NULL,   
  • mail varchar(30) NOT NULL,   
  • tag tinyint(1) NOT NULL default ‘0’,   
  • PRIMARY KEY (id)   
  • ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;   
  •   
  • INSERT INTO dede_plus (aidplusnamemenustringmainurlwriterisshowfilelist) VALUES  
  • (30, ‘网上报名’, ‘<m:item name=”网上报名” link=”adenroll.php” rank=”plus_网上报名” target=”main” />’, ”, ‘g1000’, 1, ”);  
  •  这里说明下 为了方便 我简单的设置了 两个字段 姓名和邮箱 tag字段是标示是否录取 1为录取
    第一个insert语句是添加到后台管理
    第二个insert语句是添加到前台导航栏

    enroll.php
    复制代码 

    Php代码  
  • <?php    
  • //*******要先包含common.inc.php 然后 session_start(); 否则取不到session的值    
  • //*******因为common.inc.php 有关于session路径的配置    
  • include_once dirname(__FILE__).’./../include/common.inc.php’;//包含配置文件    
  • session_start();    
  • require_once DEDEINC.”/arc.partview.class.php”;//包含partiew类    
  • //*****实例化 这个类的作用是得到头部导航栏和尾部信息 若不需要可以使用dedetemplate.class.php 这个类    
  • $pv = new PartView();    
  • if($_POST){    
  • if( CheckEmail($_POST[‘mail’])==false){//验证邮箱 方法在common.func.php 公用函数    
  • ShowMsg(‘邮箱格式错误’,’-1′);    
  • exit();    
  • }    
  • if($_POST[‘name’]==””){    
  • ShowMsg(‘用户名不能为空’,’-1′);    
  • exit();    
  • }else{    
  • $name=htmlspecialchars($_POST[‘name’]);    
  • }    
  • if($_SESSION[‘dd_ckstr’]!=strtolower($_POST[‘validation’])){//验证 验证码 必须转换成小写    
  • ShowMsg(‘验证码错误’,-1);    
  • exit();    
  • }    
  • $sql=”insert into cms_enroll(name,mail) values(‘$name’,’$_POST[mail]’)”;    
  • //********$db可直接使用 系统自动实例化了dedesql.class.php    
  • $affected = $db->ExecuteNoneQuery2($sql);//执行一条语句 返回影响值    
  • if($affected){    
  • ShowMsg(‘报名成功’,-1);    
  • }    
  • }else{    
  • $pv->SetTemplet(DEDETEMPLATE.’/plus/enroll.htm’);//设置模板    
  • $pv->Display();//显示页面    
  • }   
  •   
  • ?>  
  •   
    enroll.htm
    复制代码 

    Html代码  
  • <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>    
  • <head>    
  • <title>{dede:global.cfg_webname/}-在线报名</title>    
  • <link href=”{dede:global.cfg_templeturl/}/style/dedecms.css” rel=”stylesheet” media=”screen” type=”text/css” />    
  • </script>    
  • </head>    
  • <body>    
  • {dede:include filename=”../default/head.htm”/}<!– 包含头部 –>    
  • <blockquote style=”margin:50px auto” >    
  • <form method=”post” action=””>    
  • 姓 名:<input type=”text” size=30 name=”name” /><br /><br />    
  • 邮 箱:<input type=”text” size=30 name=”mail” /><br /><br />    
  • <!–vdimgck.php 是验证码–>    
  • 验证码:<input type=”text” name=”validation” /><img src=”../../include/vdimgck.php” /><br /><br />    
  • <input name=”encoll” type=”submit” value=”报名” /><br />    
  • </form>    
  • </blockquote>    
  • {dede:include filename=”../default/footer.htm”/}<!– 包含尾部 –>    
  • </body>    
  • </html>  
  •   

    adenroll.php
    复制代码 

    Php代码 复制代码 收藏代码
  • <?php    
  • require_once(dirname(__FILE__).’/config.php’);//后台配置文件 检查登陆 配置信息    
  • require_once(DEDEINC.”/datalistcp.class.php”);//包含分页类    
  • if($_GET[‘action’]&&$_GET[‘id’]){    
  • if($_GET[‘action’]==’pass’){//各种操作    
  • $db->ExecuteNoneQuery(“update cms_enroll set tag=1 where id=’$_GET[id]'”);    
  • ShowMsg(‘录取成功’,’adenroll.php’);    
  • }    
  • if($_GET[‘action’]==’nopass’){    
  • $db->ExecuteNoneQuery(“update cms_enroll set tag=0 where id=’$_GET[id]'”);    
  • ShowMsg(‘取消录取’,’adenroll.php’);    
  • }    
  • if($_GET[‘action’]==’delete’){    
  • $db->ExecuteNoneQuery(“delete from cms_enroll where id=’$_GET[id]'”);    
  • ShowMsg(‘删除成功’,’adenroll.php’);    
  • }    
  • }else{    
  • $dl = new DataListCP();    
  • $dl->pageSize = 10;//每页显示10条    
  • $dl->SetTemplate(‘./templets/adenroll.htm’);//载入模板    
  • $sql=”select * from cms_enroll”;    
  • $dl->SetSource($sql);//执行sql 不能与$dl->SetTemplate 颠倒    
  • $dl->Display();//显示页面    
  • }   
  •   
  • ?>  
  •   

    adenroll.html
    复制代码

    Html代码 复制代码 收藏代码
  • <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN””http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>    
  • <head>    
  • <title>在线报名管理</title>    
  • <link href=’img/base.css’ rel=’stylesheet’ type=’text/css’ />    
  • <style type=”text/css”>    
  • th,td{    
  • text-align:center;    
  • border:1px #D1DDAA solid;    
  • font-size:15px;    
  • }    
  • th{    
  • background:#E6F8B7;    
  • }    
  • table{    
  • margin-top:20px;    
  • }    
  • </style>    
  • </head>    
  • <body>    
  • <table width=”90%” border=”0″ cellpadding=”0″ cellspacing=”0″ align=”center”>    
  • <tr>    
  • <th>姓名</th>    
  • <th>E-mail</th>    
  • <th>状态</th>    
  • <th>操作</th>    
  • </tr>    
  • <!– 循环得到结果 –>    
  • {dede:datalist}    
  • <tr>    
  • <td>{dede:field.name /}</td>    
  • <td>{dede:field.mail /}</td>    
  • <td>    
  • {dede:if field.tag==0}    
  • 未录取    
  • {else}    
  • <font color=”red”>已录取</font>    
  • {/dede:if}    
  • </td>    
  • <td> <a href=”adenroll.php?action=pass&id={dede:field.id /}”>[录取]</a>    
  • |    
  • <a href=”adenroll.php?action=nopass&id={dede:field.id /}”>[不通过]</a>    
  • |    
  • <a href=”adenroll.php?action=delete&id={dede:field.id /}”>[删除]</a>    
  • </td>    
  • </tr>    
  • {/dede:datalist}    
  • </table>    
  • <!– 分页标签 –>    
  • <p style=”text-align:center;font-size:15px;”>{dede:pagelist listitem=”info,index,end,pre,next,pageno” listsize=”5″/}</p>    
  • </body>    
  • </html>  
  • 您可能还喜欢...