Home > Article > CMS Tutorial > About the field processing function of imperial CMS6.0 function decryption
The following tutorial column of Empire cms will introduce to you the field processing function of CMS6.0 function decryption. I hope it will be helpful to friends in need!
Foreword:
When adding/modifying fields, you can set the "Backend Add Information Processing Function", "Backend Modify Information Processing Function", "Foreground Add Information Processing function" and "Foreground modification information processing function" can respectively set functions for processing field content. They are often used for models that have special requirements for the storage format of field content. Today we will briefly explain the processing function production format.
Basic setup steps:
1. Write the processing function;
2. Copy the function to e/class/userfun.php In the file content;
3. Modify the field setting processing function name.
Field processing function format:
function user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){ return $value; }
Parameter description:
user_FieldFun: function name
$mid: system model ID
$ f: Field name
$isadd: When the value is 1, it is to add information; when the value is 0, it is to modify information
$isq: When the value is 0, it is background processing; when the value is 1, it is Foreground processing
$value: Original content of the field
$cs: Additional parameters of the field, parameter content set at the field processing function
Example of field processing function:
Example 1: Automatically add the words "[EmpireCMS]" in front of the title
Backend field function settings: user_AddTitle
function user_AddTitle($mid,$f,$isadd,$isq,$value,$cs){ $value='[EmpireCMS]'.$value; return $value; }
Example 2: The title content is a combination of writer and befrom fields
Background field function settings: user_TogTitle
Title field displays HTML code:
(Description: Because the title is required, an initial value must be given so that the content will not be empty)
function user_TogTitle($mid,$f,$isadd,$isq,$value,$cs){ $value=$_POST['writer'].$_POST['befrom']; return $value; }
Example 3: Upload images and automatically generate thumbnails
Background field function settings: user_TranImgAuto## 170,120
(Note: The background parameter 170 represents the thumbnail width, and 120 is the thumbnail height)
The upload image field displays the HTML code:
(Note: The variable name uses "field name" imgrs, which corresponds to the "$filetf" variable in the function)
function user_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 $value; } $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 id='$id'"); $ifr=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_data_".$ir[stb]." where id='$id'"); $ifval=$ifr[$f]; } else { $ir=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname." where id='$id'"); $ifval=$ir[$f]; } if($ifval) { DelYQTranFile($classid,$id,$ifval,$f); } } $value=str_replace($tfr['filename'],$filename,$tfr['url']); } } else { $value=''; } return $value; }
The processing function can achieve a lot The above are just a few simple examples of very complex field content storage format requirements, and more need to be practiced by users.
For more Empire cms technical articles, please visit the Empire cms secondary development column!
The above is the detailed content of About the field processing function of imperial CMS6.0 function decryption. For more information, please follow other related articles on the PHP Chinese website!