帝国cms栏目自定义字段(帝国cms相关文章调用)
一、简介:
帝国CMS提供了强大的自定义字段处理功能,极大的方便了用户对帝国CMS的二次开发!
添加/修改字段时,帝国CMS可以设置“后台信息处理功能”、“后台信息修改处理功能”、“前端信息处理功能”、“前台修改信息处理功能”,并可以分别设置字段内容的处理功能。函数常用于对字段内容的存储格式有特殊要求的模型。今天我们简单讲解一下处理函数产生格式。现场处理功能具体设置位置如下图所示:
2. 基本设置步骤:
1、编写处理函数; 2、将函数复制到e/class/userfun.php文件内容中; 3. 修改字段设置处理函数名称。
3、字段处理函数格式:
代码如下:
函数user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){return $value;}
参数说明:
user_FieldFun:函数名$mid:系统模型ID $f:字段名$isadd:值为0时为添加信息;当值为1时,是修改信息$isq:当值为0时,是后台处理;值为1时为前台处理$value: 字段的原始内容$cs: 字段的附加参数,在字段处理函数中设置的参数内容
4、字段处理函数示例:
示例1:标题前面自动添加“[EmpireCMS]”后台字段功能设置:user_AddTitle
代码如下:
function user_AddTitle($mid,$f,$isadd,$isq,$value,$cs){$value='[EmpireCMS]'.$value;return $value;}
例2:通过writer和befrom字段与后台字段函数组合设置标题内容:user_TogTitle title字段显示HTML代码:input type='hidden' name='title' value='test' (说明:因为标题是必填项,所以需要给一个初始值,这样就不会提示内容为空)
代码如下:
函数user_TogTitle($mid,$f,$isadd,$isq,$value,$cs){$value=$_POST['writer'].$_POST['befrom'];return $value;}
示例3:上传图片并自动生成缩略图。背景字段功能设置:user_TranImgAuto##170,120(注:背景参数170代表缩略图宽度,120为缩略图高度。)上传图片字段显示HTML代码:input type='file' name='titlepicimgrs' size='45'(注:变量名使用“字段名”+imgrs,对应函数中的“$filetf”变量)
代码如下:
函数user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){全局$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('选择qaddtran ,qaddtransize,qaddtranimgtype 来自{$dbtbpre}enewspublic 限制1');if(!$pr['qaddtran']){printerror('CloseQTranPic','',1);}if(!strstr($pr['qaddtranimgtype) '],'|'.$filetype.'|')){printerror('NotQTranFiletype','',1);}if($_FILES[$filetf]['size']$pr['qaddtransize']*第1024章1024 $tfr=DoTranFile($_FILES[$filetf]['tmp_name'],$_FILES[$filetf]['名称'],$_FILES[$filetf]['类型'],$_FILES[$filetf]['大小'],$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['spicill']);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='[成员]' .$musername;$infoid=$isadd==1?0:$id;$empire-query('插入到{$dbtbpre}enewsfile(文件名,文件大小,adduser,路径,文件时间,classid,no,类型,id,cjid ,fpath) 值('$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('从{$dbtbpre}ecms_'.$tbname.' 选择stb,其中id='$id'');$ifr=$empire-fetch1('从{$dbtbpre}ecms_' 选择'.$f.' .$tbname.'_data_'.$ir[stb].' 其中id='$id'');$ifval=$ifr[$f];}else{$ir=$empire-fetch1('select '. $f。'来自{$dbtbpre}ecms_'.$tbname.'其中id='$id'');$ifval=$ir[$f];}if($ifval){DelYQTranFile($classid,$id ,$ifval,$f);}}$value=str_replace($ tfr['filename'],$filename,$tfr['url']);}}else{$value='';}返回$value; }以上就是英制CMS功能解密的字段处理函数的详细讲解。更多资讯请关注木库阁其他相关文章!