帝国CMS 6.0功能解密之字段处理函数
前言:
增加/修改字段时可以设置“后台增加信息处理函数”、“后台修改信息处理函数”、“前台增加信息处理函数”、“前台修改信息处理函数”,可以分别设置对字段内容处理的函数,对于对字段内容存放格式有特殊要求的模型用得比较多。今天我们再简单讲解下处理函数制作格式。

基本设置步骤:
1、编写处理函数;
2、将函数复制到e/class/userfun.php文件内容里;
3、修改字段设置处理函数名称。
字段处理函数格式:
function user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){
return $value;
}
参数说明:
user_FieldFun:函数名
$mid:系统模型ID
$f:字段名
$isadd:值为0时是增加信息;值为1时是修改信息
$isq:值为0时是后台处理;值为1时是前台处理
$value:字段原内容
$cs:字段附加参数,字段处理函数处设置的参数内容
字段处理函数范例:
例子1:自动在标题前面加“[EmpireCMS]”字样
后台字段函数设置:user_AddTitle
$value='[EmpireCMS]'.$value;
return $value;
}
例子2:标题内容由writer和befrom字段的组合
后台字段函数设置:user_TogTitle
标题字段显示HTML代码:<input type="hidden" value="test">
(说明:因为标题是必填项,所以要给初始值才不会提示内容空)
$value=$_POST['writer'].$_POST['befrom'];
return $value;
}
例子3:上传图片并自动生成缩图
后台字段函数设置:user_TranImgAuto##170,120
(说明:后台的参数170表示缩图宽度,120为缩图高度)
上传图片字段显示HTML代码:<input type="file" size="45">
(说明:变量名用“字段名”+imgrs,即跟函数中的“$filetf”变量对应)
global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername;
$filetf=$f.'imgrs';//变量名
if(!$_FILES[$filetf]['name'])
{
return '';
}
$classid=(int)$_POST['classid'];
$id=(int)$_POST['id'];
$filepass=(int)$_POST['filepass'];
$filetype=GetFiletype($_FILES[$filetf]['name']);
$pr=$empire->fetch1("select qaddtran,qaddtransize,qaddtranimgtype from {$dbtbpre}enewspublic limit 1");
if(!$pr['qaddtran'])
{
printerror("CloseQTranPic","",1);
}
if(!strstr($pr['qaddtranimgtype'],"|".$filetype."|"))
{
printerror("NotQTranFiletype","",1);
}
if($_FILES[$filetf]['size']>$pr['qaddtransize']*1024)
{
printerror("TooBigQTranFile","",1);
}
if(!strstr($tranpicturetype,','.$filetype.','))
{
printerror("NotQTranFiletype","",1);
}
$tfr=DoTranFile($_FILES[$filetf]['tmp_name'],$_FILES[$filetf]['name'],$_FILES[$filetf]['type'],$_FILES[$filetf]['size'],$classid);
if($tfr['tran'])
{
$csr=explode(',',$cs);
$maxwidth=$csr[0];
$maxheight=$csr[1];
$yname=$tfr['yname'];
$name=$tfr['name'];
include_once(ECMS_PATH.'e/class/gd.php');
//生成缩图
$filer=ResizeImage($yname,$name,$maxwidth,$maxheight,$public_r['spickill']);
DelFiletext($yname);
if($filer['file'])
{
//写入数据库
$type=1;
$filetime=date("Y-m-d H:i:s");
$filesize=@filesize($filer['file']);
$filename=GetFilename(str_replace(ECMS_PATH,'',$filer['file']));
$adduser='[Member]'.$musername;
$infoid=$isadd==1?0:$id;
$empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values('$filename','$filesize','$adduser','$tfr[filepath]','$filetime','$classid','[".$f."]".addslashes(RepPostStr($_POST[title]))."','$type','$infoid','$filepass','$public_r[fpath]');");
if($isadd==0)
{
$tbname=$emod_r[$mid]['tbname'];
if(strstr($emod_r[$mid]['tbdataf'],','.$f.','))
{
$ir=$empire->fetch1("select stb from {$dbtbpre}ecms_".$tbname." where");
$ifr=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_data_".$ir[stb]." where");
$ifval=$ifr[$f];
}
else
{
$ir=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname." where");
$ifval=$ir[$f];
}
if($ifval)
{
DelYQTranFile($classid,$id,$ifval,$f);
}
}
$value=str_replace($tfr['filename'],$filename,$tfr['url']);
}
}
else
{
$value='';
}
return $value;
}
处理函数可以实现很多非常复杂的字段内容存放格式需求,上面只是举了几个简单的例子,更多需要用户去实践。
更多帝国CMS 6.0解密请听下回分解。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jz/ecms/3318.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
帝国ecms列表页标题图片判
时间:2020-12-26
-
帝国cms模板怎么在BGK和U
时间:2020-12-25
-
帝国cms会员前台怎么关闭
时间:2020-12-25
-
帝国CMS7.0碎片功能升级后
时间:2020-12-25
-
帝国cms怎么修改软件下载
时间:2020-12-25
-
帝国CMS 6.0功能解密之会员
时间:2020-12-15
-
帝国cms如何导出模板
时间:2020-12-14
-
帝国CMS 6.0功能解密之评论
时间:2020-12-13
热门文章
-
帝国CMS7.0新增将信息处理结果反馈给会员
时间:2020-12-10
-
帝国CMS7.0专题大更新,功能更强大,制作
时间:2020-12-10
-
修改帝国CMS模板出现Application Firewall Ale
时间:2020-12-08
-
帝国CMS7.0新增外部登录接口平台,且将率
时间:2020-12-10
-
帝国6.6版本新增信息快速修改基本属性功
时间:2020-12-11
-
帝国CMS7.2新增批量更新信息评论数功能,
时间:2020-12-09
-
帝国cms6.6版本新增专题属性自定义字段功
时间:2020-12-12
-
帝国CMS7.5的信息头条和推荐各支持255级更
时间:2020-12-08
-
帝国cms的信息反馈增加反馈编号加回复功
时间:2020-12-12
-
帝国CMS用户自定义函数取昨天发表的文章
时间:2020-12-09
