dedecms 判断自定义字段内容问题

dedecms 判断自定义字段内容问题,第1张

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建站有所帮助。

网站优化中,有一个就是URL优化,除开静态化的优化以外,还有减少栏目层级,你这个就是没有精简栏目层级,这样可能层级太深,在搜索引擎的抓取收录上会有影响。

解决办法:

1、在后台找到栏目管理,打开

2、找到你要修改的栏目,点击后面的更改,(例如我这里的:SEO建站)

3、点击高级选项,找到文章命名规则,删掉中间的 {Y}/{M}{D}/  这个就是代表的年与日,就是你现在那个,删掉就好了。

注意:斜杠看好,不要多删和少删。

4、点击确定,然后更新。

备注:所有栏目(主栏目和子栏目)都要一一删除,重复上面的操作,没有删除的,就是你现在这样,删除了就没有了。

织梦标签是不能嵌套使用的,你用了{dede:field name='datu' runphp='yes'} {/dede:field}

这对标签中间不能出现花括号的任何标签 { },可以使用英文的中括号,这样 [ ] 的。

$ctag->GetAtt('flag');当前默认情况下flag设置的是c属性。。如果必须在标签中存在这个flag这个字段例如:

{dede:arclist wodefiled='你号'}

{/dede:arclist}

那么在你的arclistlibphp中的代码就可以使用$ctag->GetAtt('wodefiled=');

在这种情况下可以获取到你的字段。。

如果当前你想调用默认的falg的标签就无需这么GetAtt了 它不会去查找你的定义默认的标签$attlist="flag|c,row|12,titlelen|24";也就是说你当前这里定义的属性不需要使用GetAtt来调用。

而如果{dede:arclist flag='h'}

{/dede:arclist}

而设置了flag的属性就可以调用了。

您好,跟版网很高兴为您解答:

这个不需要更改php文件即可。

找到栏目的如下地方,把默认页名称改为indexhtml,然后在iis或者apache将indexhtml作为默认页面即可。

希望我的回答能够帮到您!

之前选择的自定义图集

一、添加一个获取地址的方法

打开 /include/extendfunc 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的>上一行加入以下函数代码:(如果结尾没有>那就直接在最下面添加)

function GetOneImgUrl($img,$ftype=1){ if($img <> ''){ $dtp = new DedeTagParse(); $dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as $ctag){ if($ctag->GetName()=='img'){ $width = $ctag->GetAtt('width'); $height = $ctag->GetAtt('height'); $imgurl = trim($ctag->GetInnerText()); $img = ''; if($imgurl != ''){ if($ftype==1){ $img = $imgurl; } else{ $img = '<img src="'$imgurl'" width="'$width'" height="'$height'" />'; } } } } } $dtp->Clear(); return $img; } }

可以直接用下面的方法调用

[field:自定义字段名 function="GetOneImgUrl(@me,显示类型)"/]

最终使用方法。

{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}

<li><a href="[field:arcurl/]" target="_blank"><img border="0" src="[field:datu function='GetOneImgUrl(@me,1)'/]"></a></li>

{/dede:arclist}

最终调用到这个地址。

在\dede\include\extendfuncphp文件中添加如下函数:

function getArticleList($category=0,$order="",$limit="0,200"){

global $dsql;

$query = "SELECT arc,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule,

        tpnamerule2,tpispart,tpmoresite,tpsiteurl,tpsitepath

        FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on arctypeid=tpid

        where tpid=$category";

//此sql语句我只加了where判断文章所属分类

//其他的order limit 你根据需要自己添加

$dsql->SetQuery($query);

$dsql->Execute('lit');

$arr = array();

$cnt = 0;

$str = "";

while ($row = $dsql->GetArray('lit')) {

if($cnt%4 == 0){

$str = "<div class='css1'>";

}

if($cnt%4 > 0){

$class = "css3";

}else{

$class = "css2";

}

$str = "<span class='"$class"'>"$row['title']"</span>";

$cnt++;

if($cnt%4 == 0){

$str = "</div>";

}

//$row中可用的常用字段如下:$row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']

}

return $str;

}

然后在模板中使用 

{dede:field name='typeid' function="getArticleList(@me)" /}

将分类的id传给此函数就可以调用到数据,输出就是你要的格式。

输出内容你修改下php文件,常用字段都给你写在注释里了。

如果可以请也将我昨天给你回答的采纳一下。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms 判断自定义字段内容问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情