欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dedecms 5.7自定义 在线报名 插件及安装

程序员文章站 2022-05-13 16:22:05
...

转载请著名出处:http://tyllxx.iteye.com

 

首先这个报名插件的原始案例是别人的,我这里只是做了修改用在DEDE5.7SP1上,安装正确,使用正常。

从来没有自己定义过插件然后安装使用,边学边摸索的,dede第一次自己弄插件,算是二次开发。

 

首先看下效果:(可以在首页直接用,不是iframe调用哦!)


dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 

 

 

后台效果:

 

dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 

 

 

 

首先是SQL文件的代码,安装时要用到。

安装删除SQL:

/*********安装程序*********/ 这个提示不要复制

DROP TABLE IF EXISTS `#@__regs`;
CREATE TABLE `#@__regs` (
  `rsid` mediumint(8) unsigned NOT NULL auto_increment,
  `name` varchar(30) NOT NULL default '',
  `tel` varchar(15) NOT NULL default '',
  `subject` varchar(60) NOT NULL default '',
  `tag` smallint(6) NOT NULL default '0',  //下载文件的这里请改下,默认1了,这里应该是0
  PRIMARY KEY  (`rsid`), //下载文件的这里请改下,应该是rsid,原来是id,疏忽了
  KEY `tag` (`tag`)
) TYPE=MyISAM;

Delete From `#@__plus` where plusname like '在线报名';

INSERT INTO `#@__plus` (`plusname`, `menustring`, `mainurl`, `writer`, `isshow`, `filelist`) 

VALUES ('在线报名', '<m:item name=''在线报名'' link=''adregs.php'' 

rank=''plus_在线报名'' target=''main'' />', '', 'Karl', 1, '');

Delete from `#@__arctype` where typename='在线报名' and ispart='2';

Insert into `#@__arctype` (reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`)
Values('0','0','999','在线报名','_ROOTURL_/plus/regs.php','1','regs.php','0','1',
'','','','default','','','2','0','','','0','','','0','0','0','');


/*********删除程序*********/ 这个提示不要复制

DROP TABLE IF EXISTS `#@__regs`;

Delete From `#@__plus` where plusname='在线报名';

Delete from `#@__arctype` where typename='在线报名' and ispart='2';

 

安装程序中,创建regs表名,_plus表中有管理页面adregs.php路径,不要用弄错。

_arctype表中有前台页面路径,也要注意。

 

 

 

整个插件要用的总共4个文件,以下路径安装时也要用到,根据自己需求修改:

 

../plus/regs.php

../templets/plus/regs.htm

../dede/adregs.php

../dede/templets/adregs.htm

 

 

先从前台提交文件regs.php:

<?php
/**在线报名**/
require(dirname(__FILE__).'/../include/common.inc.php');
session_start();
require_once DEDEINC."/arc.partview.class.php";//包含partiew类,此类让你可以像在模板里一样提取头部和底部。
$pv = new PartView();
if($_POST){
	if($_POST['tel']==""){
		ShowMsg('电话不能为空!','-1');
		exit();
	}
	if($_POST['subject']==""){
		ShowMsg('报名项目不能!','-1');
		exit();
	}
	if($_POST['name']==""){
		ShowMsg('姓名不能为空!','-1');
		exit();
	}else{
		$name=htmlspecialchars($_POST['name']);
	}
	$svali = GetCkVdValue();
    if($_POST['validate']=='' || $_POST['validate']!=$svali)
    {
         ShowMsg('验证码不正确!',-1);
         exit();
    }
	$query = "INSERT INTO `#@__regs`(name,tel,subject,tag) VALUES ('$name','$tel','$subject','$tag'); ";
    $affected = $dsql->ExecuteNoneQuery($query);
	if($affected){
		ShowMsg('您的报名申请已提交!',-1);
 	}
}else{
	$pv->SetTemplet(DEDETEMPLATE.'/plus/regs.htm');//设置模板
	$pv->Display();//显示页面
}
?>

 

 

 

 

前台提交文件regs.htm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>在线报名</title>
<style>
.mapspage,#cnregs{ margin:0 auto; width:218px; height:204px;}
#cnregs li{clear:both; list-style:none;}
#hottel{ width:218px;height:29px; font-size:14px; text-align:center; line-height:29px; color:#F00;}
#hottel b{ _font-size:13px;font-size:13px\9;}
#cnregs .formconn{ margin-top:5px;width:218px;height:30px; line-height:30px;}
#cnregs .formconn span{ display:block; width:70px; float:left; text-align:right; font-size:14px; color:#575757;}
#cnregs .formconn input.ipt-txt{ margin-top:5px;display:block; width:146px;_width:144px;width:144px\9; height:18px; text-indent:3px; line-height:18px; float:left; border:1px solid #dedede;}
#cnregs .formconn input.ipt-vtxt{ margin-top:5px;display:block; width:68px; height:18px;line-height:18px; text-indent:3px; float:left; border:1px solid #dedede;text-transform: uppercase;}
#cnregs .formconn img{ margin-top:3px;display:block; width:68px; height:24px; float: right;}
#cnregs .formconn input.vbtn{padding:0px;margin:0px; margin:0 auto; display:block; width:160px; height:30px;list-style:none;border: none;overflow: visible; background: none;cursor: pointer; background:url(http://localhost/cms/images/vbtn.png) 0px 0px no-repeat; }
#cnregs .formconn input.vbtn:hover{background:url(http://localhost/cms/images/vbtn.png) 0px -30px no-repeat; }
</style>
</head>
<body class="mapspage">
<div>
      <!-- 注意如果再在其他页面使用,直接复制<form>部分即可,CSS请复制到调用的CSS中 -->
      <form method="post" action="regs.php" name="form1"> <!-- 在其他页面使用注意此处路径  -->
        <input type='hidden' name='action' value='save' />
        <ul id="cnregs">
        	<li id="hottel">全国报名热线:<b>123456789</b></li>
            <li class="formconn">
            	<span>您的姓名:</span>
                <input type="text" maxlength="10" name="name" size="30" value="" class="ipt-txt"/>
            </li>
            <li class="formconn">
            	<span>联系电话:</span>
                <input maxlength="12" type="text" name="tel" size="20" class="ipt-txt" />
            </li>
            <li class="formconn">
            	<span>报名项目:</span>
                <input type="text" maxlength="16" name="subject" size="30" class="ipt-txt"/>
            </li>
            <li class="formconn">
            	<span>验证码:</span>
                <input name="validate" type="text" maxlength="4" id="vdcode2" class="ipt-vtxt" style="text-transform: uppercase;" />
                <img src='../include/vdimgck.php'/><!-- 在其他页面使用注意此处路径 -->
            </li>
            <li class="formconn"><input maxlength="1000" type="submit" name="regs" value="" class="vbtn" /></li>
        </ul>
      </form>
</div>
</body>
</html>

 

 

 

 

后台管理文件adregs.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 #@__regs set `tag`=1 where rsid='$_GET[id]'");
		ShowMsg('已联系学员,成功报名','adregs.php');
	}
	if($_GET['action']=='nopass'){
		$db->ExecuteNoneQuery("update #@__regs set `tag`=0 where rsid='$_GET[id]'");
		ShowMsg('取消报名','adregs.php');
	}
	if($_GET['action']=='delete'){
		$db->ExecuteNoneQuery("delete from #@__regs where rsid='$_GET[id]'");
		ShowMsg('删除成功','adregs.php');
	}
}else{
	$dl = new DataListCP();
	$dl->pageSize = 20;//每页显示20条
	$dl->SetTemplate('./templets/adregs.htm');//载入模板
	$sql="select * from  #@__regs";
	$dl->SetSource($sql);//执行sql 不能与$dl->SetTemplate 颠倒
	$dl->Display();//显示页面
}             
?>

 

PS:这里应该加强下管理,添加【删除未通过】和【清空所有】的按钮,不然垃圾数据太多,必然管理麻烦。

 

 

后台管理文件adregs.htm:

<!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="css/base.css" rel="stylesheet" type="text/css">
</head>
<body background='images/allbg.gif' leftmargin='8' topmargin='8'>
<table width="98%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#D6D6D6">
  <tr>
   <td height="28" background="images/tbg.gif" colspan="7" style="padding-left:10px;">
     <b>在线报名管理</b>
	</td>
</tr>
  <tr align="center" bgcolor="#FBFCE2" height="24"> 
  		<th>报名ID</th>
        <th>姓名</th>
        <th>电话</th>
        <th>科目</th>
        <th>状态</th>
        <th>操作</th>
   </tr>
        {dede:datalist}
         <tr align="center" bgcolor="#FFFFFF" height="24" onMouseMove="javascript:this.bgColor='#FCFDEE';" onMouseOut="javascript:this.bgColor='#FFFFFF';"> 
            <td>{dede:field.rsid /}</td>
            <td>{dede:field.name /}</td>
            <td>{dede:field.tel /}</td>
            <td>{dede:field.subject /}</td>
            <td>
            {dede:if field.tag==0}
            未录取
            {else}
            <font color="red">已录取</font>
            {/dede:if}
            </td>
            <td> <a href="adregs.php?action=pass&id={dede:field.rsid /}">[录取]</a>
            &nbsp;|&nbsp;
            <a href="adregs.php?action=nopass&id={dede:field.rsid /}">[不通过]</a>
            &nbsp;|&nbsp;
            <a href="adregs.php?action=delete&id={dede:field.rsid /}">[删除]</a>
            </td>
        </tr>
		{/dede:datalist}
     <tr align="center" bgcolor="#F9FCEF" height="24"> 
      <td colspan="7">{dede:pagelist listsize='6'/}</td>
     </tr>
   </table>
   </td>
</tr>
</table>
</body>
</html>

 

后台管理文件要注意表名,字段名等不要出错。

 

 

 

最后是安装,在DEDE的后台安装前,需要将4个文件,根据路径放到位置上。

 

然后,登录DEDE后台-【模块】-【模块生成向导】

dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 

 

然后提交,不要认为这就已经安装完成了,

现在到-【模块】-【模块管理】中,你应该能看到在线报名的的插件了。

像安装留言板一样安装就可以使用了。

 

 

 

以上文件打包:下载    注意这个不是用于上传安装的插件包,需要手动安装!!

 

 

 

按钮文件也给了,注意CSS的图片路径,请自行修改


dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 

 

 

转载请著名出处:http://tyllxx.iteye.com

 

  • dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 
  • 大小: 14.8 KB
  • dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 
  • 大小: 48.8 KB
  • dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 
  • 大小: 105.2 KB
  • dedecms 5.7自定义 在线报名 插件及安装
            
    
    博客分类: DEDECMS dedededecms插件在线报名插件安装 
  • 大小: 1.7 KB