Maison  >  Article  >  Tutoriel CMS  >  Explication détaillée de la fonction de traitement de champ du décryptage de la fonction Imperial CMS

Explication détaillée de la fonction de traitement de champ du décryptage de la fonction Imperial CMS

silencement
silencementavant
2019-11-25 15:07:162484parcourir

Explication détaillée de la fonction de traitement de champ du décryptage de la fonction Imperial CMS

1. Avant-propos :

Empire CMS fournit de puissantes fonctions de traitement de champs personnalisés, ce qui facilite grandement le développement secondaire d'Imperial CMS par les utilisateurs !

Lors de l'ajout/modification de champs, Imperial CMS peut définir « ajouter une fonction de traitement de l'information en arrière-plan », « modifier la fonction de traitement de l'information en arrière-plan », « ajouter une fonction de traitement de l'information à la réception » et « modifier fonction de traitement de l'information à la réception" respectivement. Définissez les fonctions de traitement du contenu des champs, qui sont souvent utilisées pour les modèles qui ont des exigences particulières en matière de format de stockage du contenu des champs. Aujourd'hui, nous allons expliquer brièvement le format de production de la fonction de traitement. La position de réglage spécifique de la fonction de traitement de champ est indiquée dans la figure ci-dessous :

Explication détaillée de la fonction de traitement de champ du décryptage de la fonction Imperial CMS

2. Étapes de réglage de base :

1.
2. Copiez la fonction dans le contenu du fichier e/class/userfun.php
3. Modifiez le nom de la fonction de traitement des paramètres de champ.

3. Format de la fonction de traitement des champs :

Le code est le suivant :

fonction 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 0, c'est pour ajouter des informations ; lorsque la valeur est 1, c'est pour modifier les informations
$isq : Lorsque la valeur est 0, c'est un traitement en arrière-plan lorsque la valeur ; est 1, il s'agit d'un traitement de premier plan
$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 le mot "[EmpireCMS]" devant le titre
Paramètres de la fonction du champ backend : user_AddTitle

Le code est le suivant :

function user_AddTitle($mid,$f,$isadd,$isq,$value,$cs){
$value='[EmpireCMS]'.$value;
return $value;
}

Exemple 2 : Le contenu du titre est défini par la combinaison des champs écrivain et befrom
Fonction du champ d'arrière-plan : user_TogTitle
Le champ titre affiche le code HTML :
(Remarque : le titre étant un élément obligatoire, une valeur initiale doit être donnée. Elle indiquera que le contenu est vide)

Le code est le suivant :

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
(Explication : le paramètre d'arrière-plan 170 représente la largeur de la vignette, 120 est la hauteur de la vignette)
Le champ de l'image téléchargée affiche le code HTML :
(Remarque : Le nom de la variable utilise "field name" + imgrs, qui correspond à la variable "$filetf" dans la fonction)

Le code est le suivant :

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 '';
}
$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='[Membre ]'.$musername;
$infoid=$isadd==1?0:$id;
$empire->query("insérer dans {$dbtbpre}enewsfile(filename,filesize,adduser,path, filetime,classid,no,type,id,cjid,fpath) valeurs('$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." où id ='$id'");
$ifr=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_data_".$ir[stb]. " où id='$id'");
$ifval=$ifr[$f];
}
else
{
$ir=$empire->fetch1(" sélectionnez ".$f." dans {$dbtbpre}ecms_".$tbname." où id='$id'");
$ifval=$ir[$f];
}
if ($ifval)
{
DelYQTranFile($classid,$id,$ifval,$f);
}
}
$value=str_replace($tfr['filename'], $filename,$tfr['url']);
}
}
else
{
$value='';
}
return $value;
>

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer