
本文重点是大家详细介绍了帝国CMS的解密的野外处理功能,对于帝国CMS二次来说非常关键,有需要的盆友可以参考一下
一.序言:
ImperialCMS展示了其强大的自定义字段处理功能,极大地方便了客户对ImperialCMS进行二次开发!
CMS可以在升级/修改字段时设置后台管理提高信息内容、后台管理修改数据、前台接收提高信息内容、前台接收修改数据的功能,并可以设置自己的功能解决字段内容,特别是对于字段内容存储格式有特殊要求的实体模型。今天我们来简单解读一下处理函数的格式。现场处理功能的实际设置位置如下图所示:
二。基本设置流程:
1.写一个处理函数;
2。将函数复制到e/class/userfun.php文件的内容中;
3。更改该字段以设置处理功能的名称。
三。字段处理函数的格式:
复制代码如下:函数user_fieldfun($mid,$f,$isadd,$isq,$value,$cs){
return$value;
}
主要参数显示:
User_FieldFun:函数名
$mid:系统软件实体模型ID
$f:字段名
$isadd:值为0为促销信息内容;当值为1时,数据被修改
$isq;值为0时,由后台管理解决;值为1时,为前台求解
$value:字段的原始内容
$cs:字段的附加主参数,字段处理函数处设置的主参数内容。
四。现场处理功能案例:[/s2/]
示例:在标题前自动添加“[EmpireCMS]”字样
后台管理字段的函数设置:user_AddTitle
复制以下代码:函数user_addtitle($mid,$f,$isadd,$isq,$value,$cs)
return$value;
}
例2:标题内容由writer和befrom字段组成
后台管理字段功能的设置:user_TogTitle
标题字段显示信息的HTML编码:
事例3:上传照片并自动生成缩图
后台管理字段函数设置:user_TranImgAuto##170,120
(表明:后台管理的主要参数170表明缩图总宽,120为缩图高宽比)
上传照片字段显示信息HTML编码:<inputtype="file"name="titlepicimgrs"size="45">
(表明:用户标识符用“字段名”imgrs,即跟函数中的“$filetf”自变量相匹配)
复制代码编码以下:functionuser_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){
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("selectqaddtran,qaddtransize,qaddtranimgtypefrom{$dbtbpre}enewspubliclimit1");
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-dH:i:s");
$filesize=@filesize($filer['file']);
$filename=GetFilename(str_replace(ECMS_PATH,'',$filer['file']));
$adduser='[Member]'.$musername;
$infoid=$isadd==1?0:$id;
$empire->query("insertinto{$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("selectstbfrom{$dbtbpre}ecms_".$tbname."whereid='$id'");
$ifr=$empire->fetch1("select".$f."from{$dbtbpre}ecms_".$tbname."_data_".$ir[stb]."whereid='$id'");
$ifval=$ifr[$f];
}
else
{
$ir=$empire->fetch1("select".$f."from{$dbtbpre}ecms_".$tbname."whereid='$id'");
$ifval=$ir[$f];
}
if($ifval)
{
DelYQTranFile($classid,$id,$ifval,$f);
}
}
$value=str_replace($tfr['filename'],$filename,$tfr['url']);
}
}
else
{
$value='';
}
return$value;
}示例:上传照片并自动生成缩略图
后台管理字段功能的设置:user_tranimgauto##170,120
(表示后台管理的主要参数为170,表示缩略图的总宽度,120为缩略图的高宽比)
上传照片字段中显示信息的HTML编码:
(表示用户标识符使用“字段名”imgrs,即匹配函数中的“$filetf”参数)
复制代码如下:函数user_tranimgaoto($mid,$f,$isadd,$isq,$value,$cs){
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("selectqaddtran,qaddtransize,qaddtranimgtypefrom{$dbtbpre}enewspubliclimit1");
如果(!$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'],$_filetf[$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路径。e/class/GD.PHP’);
//表单缩略图
$filer=resizeimage($YNAME,$name,$maxwidth,$maxheight,$public_r['spickill']);
DelFiletext($yname);
if($filer['file'])
{
/Loaddatabasequery
$type=1;
$filetime=date("Y-m-dH:I:s");
$filesize=@filesize($filer['file']);
$filename=getfilename(str_replace(ECMS路径,'',$filer['文件']);
$adduser='[Member]'。$musername
$infoid=$isadd==1?0:$id;
$empire->;query("insertinto{$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,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_"中选择stb"。$tbname。其中id=“$id””;
$IFR=$empire->;fetch1("选择"。$f."来自{$dbtbpre}ecms_"。$tbname。_data_”。$ir[stb],"其中id=“$id””;
$ifval=$IFR[$f];
}
else
{
$IR=$empire->;fetch1("选择"。$f."来自{$dbtbpre}ecms_"。$tbname。其中id=“$id””;
$ifval=$IR[$f];
}
if($ifval)
{
DelYQTranFile($classid,$id,$ifval,$f);
}
}
$value=str_replace($TFR['文件名'],$文件名,$TFR['URL']);
}
}
else
{
$value='';
}
return$value;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)