怎样给Dedecms织梦网站自定义表单设置必填项
phpcms和dedecms的区:
Phpcms和DedeCMS是国内开源的CMS网站管理系统中出色的两个,在性能和稳定安全方面,各有千秋。
一、用户界面
后台界面:Phpcms的后台则比较简洁,菜单数量并不多,但各种功能很全,后台首页提供的统计功能使人人网站基本情况一目了然。美中不足的是没有一键更新功能,网站的html代码、首页、栏目等需要分别更新。
二、数据控制能力
Phpcms的数据控制能力比dedecms强一些。 从时间上来说,用dedecms生成100个html文件的时间,phpcms可以生成2000个。dedecms的搜索性能极差,搜索局限性大。而phpcms可以做到自定义字段都是搜素条件,而且速度快,后台的数据控制灵活性Phpcms比dedecms强很多,在Phpcms后台可以有很多 方式在查找数据,自定义一页显示数据的行数。 dedecms不可能做到。
三、SEO方面
网站的seo优化没有dedecms设计的好,dedecms可以很简单的在后台控制url的生成方式,并且重命名,而Phpcms貌似很复杂(Phpcms自定义URL规则技巧),最重要的是官方不给一点详细的说明。
四、运营与广告
在PCV9里边,站群的概念有点突出,这一点上思维先进。广告管理:PHPCMS略胜一筹,Phpcms形成了广告位和广告的两个概念,用户可以定义广告位,进 而管理广告。广告位控制广告出现的位置,只需点去选择即可,对代码的依赖性比较低,十分方便站长投放。DedeCMS的广告管理对广告对象的属性概念模 糊,广告位控制甚至还需要通过代码来进行,菜鸟们肯定要下大力气琢磨一番了。
五、模板定制与设计
从模板开发上,dedecms面向的是初级站长,甚至不懂编程的计算机爱好者都可以,而且,dedecms的标签都不允许编程({dede:php}除外),完全都是模板标签操作,入门非常简单,当然了这也是以牺牲可定制性为代价的。
phpcms的模板制作,也采样了dede同意的方式,标签式,但是这个要比dedecms宽松的多,你可以在里面嵌入php代码,可以在模板里面编程,虽然这是软件开发的大忌,但是模板的灵活性明显增加了,用户有了更多的权限和方式去实现自己想要的效果。
PHPCMS比DEDECMS最优秀的就是这块了,DEDECMS进行了封装了很多的代码,很多的标签拿来就只管用,但是那些标签代码里有很多的不需要的标签写了一大堆。对于一个喜欢在前台页面代码纠结我来说,织梦这块做得比PHPCMS要缺少一些。
另外PHPCMS的前台数据调用的方式很有意思,除了一些基本的标签之外,则可以完全经过GET的模式,自己写SQL语句来调取数据。这一点其实也是让 人很纠结的。因为不是每个人都懂SQL语句,如果PHPCMS能做一个象DX的那样方便的SQL调取数据的界面化的功能,那就太好了,再加上配合 PHPCMS前台显示数据的方式,那么前台代码可以做到最大的优化了。
对于喜欢在前台模版HTML简洁化的纠结的,PHPCMS相对来说比DEDECMS有优势。
Tags: dedecms, dedecms标签, dedecms模板dedecms的Field 标记在封面模板、列表模板、文档模板的使用频率很高,实用。主要用来获得特定栏目或档案的字段值及常用的环境变量值,其用法比较灵活。可以直接展示数据, 如调用position,得到栏目一 > 栏目二” 这样形式的链接;或者,调用title得到当前文档的标题。一:Field标签使用说明
Arclist 标记的使用范围是:封面模板(如:index_articlehtm)、列表模板(如:list_articlehtm)、文档模板 (如:article_articlehtm)。 即对应templets\default\文件夹下的index_识别IDhtm模板、list_识别IDhtm模板、article_识别 IDhtm模板。
注意: 封面模板与列表模板是有区别的,但调用Field 标记可以相同; 封面模板有不同的类型,我们最常用的是文章模板(index_articlehtm),其它的还有模板 (index_imagehtm),简介模板(index_infohtm),软件模板(index_softhtm)等等,这些模板调用 Field 标记的道理都是一样的。
二、Field标签测试实例新建一个文件(如:testindexhtml)放到templets/default下,然后将列表栏目的模板文件指定为新建的文件(testindexhtml)然后更新相应栏目的HMTL,点击主页上的相应栏目即可显示相应的调用信息。testindexhtml文件的Field 标记调用代码: <font color="red">调用position标记,得到:栏目一 > 栏目二” 这样形式的链接:</font>{dede:field name='position'/}<br/> <font color="red">插件路径:</font>{dede:field name='phpurl'/}<br/> <font color="red">模板路径:</font>{dede:field name='templeturl'/}<br/> <font color="red">版权信息:</font>{dede:field name='powerby'/}<br/> <font color="red">主页路径:</font>{dede:field name='indexurl'/}<br/> <font color="red">主页名称:</font>{dede:field name='indexname'/}<br/> <font color="red">站点名称:</font>{dede:field name='webname'/}<br/> <font color="red">所在栏目:</font>{dede:field name='title'/}<br/>
1编辑器打开plusdiyphp
2在40行左右找到此行代码:
$dede_fields=empty($dede_fields)'':trim($dede_fields);
3在这一行代码之下,加入代码,复制的话删掉代码中的空行
//增加必填字段判断
if($required!=''){
if(preg_match('/,/',$required))
{
$requireds=explode(',',$required);
foreach($requiredsas$field){
if($$field==''){
showMsg('带号的为必填内容,请正确填写','-1');
exit();
}
}
}else{
if($required==''){
showMsg('带号的为必填内容,请正确填写','-1');
exit();
}
}
}
//end
4保存完成后,在表单模版页面找到这行代码:
<formaction="/plus/diyphp"enctype="multipart/form-data"method="post">
在这行代码之下,加入代码:
<inputtype="hidden"name="required"value="数据字段名,数据字段名"/>
注意这行代码要修改下,根据你的表单所需要设置的必填项,例如设置“姓名”、“邮箱”为必填项
添加新字段--“表单提示文字”:姓名--“字段名称”:name
添加新字段--“表单提示文字”:邮箱--“字段名称”:email
此行代码应为:
<inputtype="hidden"name="required"value="name,email"/>
这样就把这两个选项设置为必填项了,如果没有填写就提交,会打开窗口提示“带号的为必填内容,请正确填写”,当然,这一句话可以改成其它的文字
网上看到另一种方法,未测试,仅作为资料收藏
js方法:
1先在要发布表单的模板上加
<scriptsrc='你的路径/jsjs'type="text/javascript"></script>
2在你自定义的路径新建文件jsjs,然后复制以下内容粘贴保存,代码:
<!--
$(document)ready(function()
{
//验证
$('complain')submit(function()
{
if($('name')val()==""){
$('name')focus();
alert("用户名不能为空!");
returnfalse;
}
if($('tel')val()=="")
{
$('tel')focus();
alert("联系电话不能为空!");
returnfalse;
}
if($('title')val()=="")
{
$('title')focus();
alert("标题不能为空!");
returnfalse;
}
if($('text')val()=="")
{
$('text')focus();
alert("具体内容不能为空!");
returnfalse;
}
})
});
-->
注:
$('complain')submit(function()//complain为自定义表单的ID,如果生成的表单没有可以自行加上,即id="complain"
if($('name')val()==""){
$('name')focus();//name为要验证表单中的ID,如想让用户名不能为空,在后台用户名的数据字段名设为name,下同
3设置好后更新就可以看到效果了
希望本文所述对大家的dedecms建站有所帮助。
使用sql语句
+++++++++++dedecms GBK 程序+++++++++++++++++
mysql50版的使用
-------------------------
CREATE TABLE IF NOT EXISTS `dede_payment` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL DEFAULT '',
`name` varchar(120) NOT NULL DEFAULT '',
`fee` varchar(10) NOT NULL DEFAULT '0',
`description` text NOT NULL,
`rank` tinyint(3) unsigned NOT NULL DEFAULT '0',
`config` text NOT NULL,
`enabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
`cod` tinyint(1) unsigned NOT NULL DEFAULT '0',
`online` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `code`USING BTREE (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
mysql 51版及以上的使用
CREATE TABLE IF NOT EXISTS `dede_payment` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL DEFAULT '',
`name` varchar(120) NOT NULL DEFAULT '',
`fee` varchar(10) NOT NULL DEFAULT '0',
`description` text NOT NULL,
`rank` tinyint(3) unsigned NOT NULL DEFAULT '0',
`config` text NOT NULL,
`enabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
`cod` tinyint(1) unsigned NOT NULL DEFAULT '0',
`online` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
+++++++++++++++++dedecms Utf8 版本++++++++++++
mysql50版的使用
-------------------------
CREATE TABLE IF NOT EXISTS `dede_payment` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL DEFAULT '',
`name` varchar(120) NOT NULL DEFAULT '',
`fee` varchar(10) NOT NULL DEFAULT '0',
`description` text NOT NULL,
`rank` tinyint(3) unsigned NOT NULL DEFAULT '0',
`config` text NOT NULL,
`enabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
`cod` tinyint(1) unsigned NOT NULL DEFAULT '0',
`online` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `code`USING BTREE (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
mysql 51版及以上的使用
CREATE TABLE IF NOT EXISTS `dede_payment` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL DEFAULT '',
`name` varchar(120) NOT NULL DEFAULT '',
`fee` varchar(10) NOT NULL DEFAULT '0',
`description` text NOT NULL,
`rank` tinyint(3) unsigned NOT NULL DEFAULT '0',
`config` text NOT NULL,
`enabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
`cod` tinyint(1) unsigned NOT NULL DEFAULT '0',
`online` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0条评论