Maison > Tutoriel CMS > EmpireCMS > le corps du texte

À propos de la fonction de traitement de champ du décryptage de la fonction impériale CMS6.0

藏色散人
Libérer: 2020-06-12 15:07:02
avant
2653 Les gens l'ont consulté

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 !

À propos de la fonction de traitement de champ du décryptage de la fonction impériale CMS6.0

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.

À propos de la fonction de traitement de champ du décryptage de la fonction impériale CMS6.0

É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;
}
Copier après la connexion

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;
}
Copier après la connexion

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[&#39;writer&#39;].$_POST[&#39;befrom&#39;];
        return $value;
}
Copier après la connexion

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.&#39;imgrs&#39;;//变量名
        if(!$_FILES[$filetf][&#39;name&#39;])
        {
                return $value;
        }
        $classid=(int)$_POST[&#39;classid&#39;];
        $id=(int)$_POST[&#39;id&#39;];
        $filepass=(int)$_POST[&#39;filepass&#39;];
        $filetype=GetFiletype($_FILES[$filetf][&#39;name&#39;]);
        $pr=$empire->fetch1("select qaddtran,qaddtransize,qaddtranimgtype from {$dbtbpre}enewspublic limit 1");
        if(!$pr[&#39;qaddtran&#39;])
        {
                printerror("CloseQTranPic","",1);
        }
        if(!strstr($pr[&#39;qaddtranimgtype&#39;],"|".$filetype."|"))
        {
                printerror("NotQTranFiletype","",1);
        }
        if($_FILES[$filetf][&#39;size&#39;]>$pr[&#39;qaddtransize&#39;]*1024)
        {
                printerror("TooBigQTranFile","",1);
        }
        if(!strstr($tranpicturetype,&#39;,&#39;.$filetype.&#39;,&#39;))
        {
                printerror("NotQTranFiletype","",1);
        }
        $tfr=DoTranFile($_FILES[$filetf][&#39;tmp_name&#39;],$_FILES[$filetf][&#39;name&#39;],$_FILES[$filetf][&#39;type&#39;],$_FILES[$filetf][&#39;size&#39;],$classid);
        if($tfr[&#39;tran&#39;])
        {
                $csr=explode(&#39;,&#39;,$cs);
                $maxwidth=$csr[0];
                $maxheight=$csr[1];
                $yname=$tfr[&#39;yname&#39;];
                $name=$tfr[&#39;name&#39;];
                include_once(ECMS_PATH.&#39;e/class/gd.php&#39;);
                //生成缩图
                $filer=ResizeImage($yname,$name,$maxwidth,$maxheight,$public_r[&#39;spickill&#39;]);
                DelFiletext($yname);
                if($filer[&#39;file&#39;])
                {
                        //写入数据库
                        $type=1;
                        $filetime=date("Y-m-d H:i:s");
                        $filesize=@filesize($filer[&#39;file&#39;]);
                        $filename=GetFilename(str_replace(ECMS_PATH,&#39;&#39;,$filer[&#39;file&#39;]));
                        $adduser=&#39;[Member]&#39;.$musername;
                        $infoid=$isadd==1?0:$id;
                        $empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values(&#39;$filename&#39;,&#39;$filesize&#39;,&#39;$adduser&#39;,&#39;$tfr[filepath]&#39;,&#39;$filetime&#39;,&#39;$classid&#39;,&#39;[".$f."]".addslashes(RepPostStr($_POST[title]))."&#39;,&#39;$type&#39;,&#39;$infoid&#39;,&#39;$filepass&#39;,&#39;$public_r[fpath]&#39;);");
                        if($isadd==0)
                        {
                                $tbname=$emod_r[$mid][&#39;tbname&#39;];
                                if(strstr($emod_r[$mid][&#39;tbdataf&#39;],&#39;,&#39;.$f.&#39;,&#39;))
                                {
                                        $ir=$empire->fetch1("select stb from {$dbtbpre}ecms_".$tbname." where id=&#39;$id&#39;");
                                        $ifr=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_data_".$ir[stb]." where id=&#39;$id&#39;");
                                        $ifval=$ifr[$f];
                                }
                                else
                                {
                                        $ir=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname." where id=&#39;$id&#39;");
                                        $ifval=$ir[$f];
                                }
                                if($ifval)
                                {
                                        DelYQTranFile($classid,$id,$ifval,$f);
                                }
                        }
                        $value=str_replace($tfr[&#39;filename&#39;],$filename,$tfr[&#39;url&#39;]);
                }
        }
        else
        {
                $value=&#39;&#39;;
        }
        return $value;
}
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!