La colonne tutorielle suivante de Empire cms vous présentera la fonction de traitement de champ du décryptage de la fonction CMS6.0. J'espère qu'elle sera utile aux amis dans le besoin !
Avant-propos :
Lors de l'ajout/de la modification de champs, vous pouvez définir "Fonction de traitement des informations backend", "Fonction de traitement des informations de modification backend", "Informations de premier plan L'ajout de « Fonction de traitement » et de « Fonction de traitement des informations de modification du premier plan » peut respectivement définir des fonctions de traitement du contenu des champs. Ils sont souvent utilisés pour les modèles qui ont des exigences particulières pour le format de stockage du contenu des champs. Aujourd'hui, nous allons expliquer brièvement le format de production de la fonction de traitement.
Étapes de configuration de base :
1. Écrivez la fonction de traitement
2. php Dans le contenu du fichier ;
3. Modifiez le nom de la fonction de traitement des paramètres de champ.
Format de la fonction de traitement de champ :
function user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){ return $value; }
Description du paramètre :
user_FieldFun : nom de la fonction
$mid : ID du modèle du système
$ f : Nom du champ
$isadd : Lorsque la valeur est 1, il s'agit d'ajouter une information ; lorsque la valeur est 0, il s'agit de modifier l'information
$isq : Lorsque la valeur est 0, c'est un traitement en arrière-plan ; lorsque la valeur est 1, c'est un traitement Front-end
$value : contenu original du champ
$cs : paramètres supplémentaires du champ, contenu des paramètres défini au niveau de la fonction de traitement de champ
Exemple de fonction de traitement de champ :
Exemple 1 : Ajouter automatiquement les mots "[EmpireCMS]" devant le titre
Fonction de champ backend settings : user_AddTitle
function user_AddTitle($mid,$f,$isadd,$isq,$value,$cs){ $value='[EmpireCMS]'.$value; return $value; }
Exemple 2 : Le contenu du titre est une combinaison de champs author et befrom
Paramètres de la fonction du champ d'arrière-plan : user_TogTitle
Le champ de titre affiche le code HTML : < input type="hidden" name="title" value="test">
(Explication : Le titre étant obligatoire, une valeur initiale doit être donnée pour que le contenu ne soit pas vide)
function user_TogTitle($mid,$f,$isadd,$isq,$value,$cs){ $value=$_POST['writer'].$_POST['befrom']; return $value; }
Exemple 3 : Télécharger des images et générer automatiquement des vignettes
Paramètres de la fonction du champ d'arrière-plan : user_TranImgAuto## 170,120
(Remarque : le paramètre d'arrière-plan 170 représente la largeur de la vignette et 120 est la largeur de la vignette. hauteur de la vignette)
Le champ de l'image de téléchargement affiche le code HTML :
(Remarque : le nom de la variable utilise "nom du champ" + imgrs, qui correspond à la variable "$filetf" dans la fonction)
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; }
La fonction de traitement peut être implémentée. Il existe de nombreuses exigences de format de stockage de contenu de champ très complexes. Ce qui précède n'est que quelques-unes. des exemples simples, et d'autres doivent être mis en pratique par les utilisateurs.
Pour plus d'articles techniques sur les cms impériaux, veuillez visiter la colonne Développement secondaire des cms empire !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!