首頁 CMS教程 帝國CMS 關於帝國CMS6.0功能解密之字段處理函數

關於帝國CMS6.0功能解密之字段處理函數

Jun 12, 2020 pm 03:07 PM

下面由帝國cms教學專欄為大家介紹國CMS6.0功能解密之字段處理函數,希望對需要的朋友有幫助!

關於帝國CMS6.0功能解密之字段處理函數

前言:

#增加/修改欄位時可以設定「後台增加資訊處理函數」、「後台修改資訊處理函數」、「前台增加訊息處理函數”、“前台修改資訊處理函數”,可以分別設定對字段內容處理的函數,對於對字段內容存放格式有特殊要求的模型用得比較多。今天我們再簡單講解下處理函數製作格式。

關於帝國CMS6.0功能解密之字段處理函數

基本設定步驟:

1、寫處理函數;

2、將函數複製到e/class/userfun.php文件內容裡;

3、修改欄位設定處理函數名稱。

欄位處理函數格式:

function user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){
        return $value;
}
登入後複製

參數說明:

user_FieldFun:函數名稱

$mid:系統模型ID

#$ f:欄位名稱

$isadd:值為1時是增加資訊;值為0時是修改訊息

$isq:值為0時是後台處理;值為1時是前台處理

$value:欄位原始內容

$cs:欄位附加參數,欄位處理函數處設定的參數內容

欄位處理函數範例:

範例1:自動在標題前面加上「[EmpireCMS]」字樣

後台欄位函數設定:user_AddTitle

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

範例2:標題內容由writer和befrom欄位的組合

後台欄位函數設定:user_TogTitle

標題欄位顯示HTML程式碼:

(說明:因為標題是必填項,所以要給初始值才不會提示內容空)

function user_TogTitle($mid,$f,$isadd,$isq,$value,$cs){
        $value=$_POST['writer'].$_POST['befrom'];
        return $value;
}
登入後複製

範例3:上傳圖片並自動產生縮圖

後台欄位函數設定:user_TranImgAuto## 170,120

(說明:後台的參數170表示縮圖寬度,120為縮圖高度)

上傳圖片欄位顯示HTML程式碼:

(說明:變數名稱用「欄位名稱」 imgrs,也就是跟函數中的「$filetf」變數對應)

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;
}
登入後複製

處理函數可以實作很多非常複雜的欄位內容存放格式需求,上面只是舉了幾個簡單的例子,更多需要使用者去實作。

更多帝國cms技術文章,請造訪帝國cms二次開發#欄位!

以上是關於帝國CMS6.0功能解密之字段處理函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)