該變量是當(dāng)前欄目id,可以用 $navclassid 或 $GLOBALS[navclassid] 都可以。
10年積累的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有涪城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
$GLOBALS 是 php 中的超全局變量,你在頁(yè)面中 var_dump 輸出看看就知道了。
$class_r[$nid]就很明顯了,$class_r存著所有欄目的數(shù)據(jù),通過(guò)欄目id(也就是問(wèn)題中的$nid)拿到當(dāng)前欄目的所有的值。
幾種方式:
1、直接在帝國(guó)定義的userfun.php中擴(kuò)充你自己定義的函數(shù),然后在相應(yīng)的程序頁(yè)面中直接引用函數(shù)即可;
2、在列表模版可以勾選“使用程序代碼”,然后寫(xiě)入PHP代碼;
3、在相應(yīng)的頁(yè)面模版中直接嵌入PHP代碼;
4、單獨(dú)寫(xiě)PHP程序,放在某個(gè)目錄下作為擴(kuò)展,然后在帝國(guó)相應(yīng)程序頁(yè)面中引用。
帝國(guó)CMS 6.6版新增自定義擴(kuò)展變量功能,用戶(hù)可以自定義公共的程序使用變量,為用戶(hù)擴(kuò)展系統(tǒng)帶來(lái)便利。比如可以增加像系統(tǒng)$public_r[newsurl]這樣的變量,還比如擴(kuò)展了某個(gè)系統(tǒng)模型,需要增加設(shè)置項(xiàng)都可以用擴(kuò)展變量來(lái)實(shí)現(xiàn)...等等。
自定義擴(kuò)展變量功能介紹:
(1)、擴(kuò)展變量支持按分類(lèi)歸類(lèi)及顯示。刪除相應(yīng)分類(lèi)會(huì)刪除分類(lèi)下的變量。
(2)、變量支持是否寫(xiě)入緩存,如果寫(xiě)入緩存,在任意php或模板中用$public_addr['add_變量名']可取得變量?jī)?nèi)容。
(3)、內(nèi)置變量返回函數(shù)(數(shù)據(jù)庫(kù)讀取變量?jī)?nèi)容):ReturnPublicAddVar(變量名)。取多個(gè)變量?jī)?nèi)容可用逗號(hào)隔開(kāi),例子:
取得單變量?jī)?nèi)容:$value=ReturnPublicAddVar('myvar'); //$value就是變量?jī)?nèi)容。
取得多個(gè)變量?jī)?nèi)容:$value=ReturnPublicAddVar('myvar1,myvar2,myvar3'); //$value['myvar1']才是變量?jī)?nèi)容。
自定義擴(kuò)展變量功能的強(qiáng)大在于為二次開(kāi)發(fā)和插件開(kāi)發(fā)提供了便利,再6.5及其以前想要設(shè)置類(lèi)似于$public_r[newsurl](網(wǎng)站地址)這樣的的全局變量,我們就必須要更改系統(tǒng)源文件和修改數(shù)據(jù)表,從而造成升級(jí)不不方便。
備注:
1.后臺(tái)-系統(tǒng)設(shè)置-系統(tǒng)參數(shù)設(shè)置 所有設(shè)置記錄在數(shù)據(jù)表phome_enewspublic
2.$public_r緩存數(shù)組記錄的是數(shù)據(jù)表phome_enewspublic大部分設(shè)置(6.5及其以前) 6.6應(yīng)該有個(gè)分表記錄用戶(hù)設(shè)置(猜測(cè))
3.$public_r緩存記錄在e/class/config.php中
4.e/class/connect.php包含了e/class/config.php (包含就是require() 或者 include())
5.所有的控制器均包含/引用了e/class/connect.php (控制器就像e/enews/index.php e/DoInfo/ecms.php 這樣的文件,根據(jù)對(duì)應(yīng)的表單使用對(duì)應(yīng)的函數(shù)和引用對(duì)應(yīng)的文件)
6.非控制器比如e/class/functions.php 或者是是e/data/下的木板緩存文件 默認(rèn)包含他們的文件都包含了e/class/connect.php存在了,所以$public_r成了全局變量();使用如上圖
7.除了$public_r還有e/class/config.php文件里你能看到的 e/class/connect.php function db_connect()上方的 比如$navinfor,是不是很熟系在內(nèi)容也里$navinfor[title] $navinfor['字段']
自定義擴(kuò)展變量可以不用到應(yīng)用擴(kuò)展上,來(lái)簡(jiǎn)單點(diǎn)的
1.來(lái)個(gè)SEOtitle
2.來(lái)個(gè)備案號(hào)(我朝特色,備案號(hào)命名統(tǒng)一的話分享模板都不用改備案號(hào)了)
3.來(lái)個(gè)統(tǒng)計(jì)代碼(大眾公共效應(yīng)之后也不用該模板板了)
n.....
當(dāng)然這些模板公共變量也可以做到
首先global $public_r;首先定義一個(gè)全局變量$public_r,這個(gè)變量是一個(gè)數(shù)組,里面存了一些系統(tǒng)設(shè)置,如網(wǎng)站域名等,在這里$public_r['canposturl']是系統(tǒng)設(shè)置里面的“前臺(tái)允許提交的來(lái)源地址”,每一列是一個(gè)地址,比如
讓我們一行一行分析:
if($public_r['canposturl']){ //如果設(shè)置了前臺(tái)允許提交的來(lái)源地址
$r=explode("\r\n",$public_r['canposturl']); //按照換行\(zhòng)r\n切分為一個(gè)數(shù)組$r,結(jié)果應(yīng)該是
$r = array('', '');
$count=count($r);//使用數(shù)組的count方法統(tǒng)計(jì)有多少條地址
$b = 0; //這個(gè)變量是當(dāng)作一個(gè)標(biāo)志,用來(lái)判斷
for($i=0;$i$count;$i++) //
$_SERVER['HTTP_REFERER'] //這個(gè)得到的是頁(yè)面的來(lái)源地址,比如我從點(diǎn)擊一個(gè)鏈接到,那么使用$_SERVER['HTTP_REFERER'] 得到的就是
for($i=0;$i$count;$i++)
if(strstr($_SERVER['HTTP_REFERER'],$r[$i]))
這個(gè)將頁(yè)面的來(lái)源地址循環(huán)和“前臺(tái)允許提交的來(lái)源地址”數(shù)組$r里面的每一條對(duì)比,如果存在就跳出循環(huán)并設(shè)置$b=1,如果不存在就繼續(xù)循環(huán),循環(huán)結(jié)束看$b的值,只有在存在的情況下才會(huì)得到$b=1,否則$b=0,當(dāng)$b=0的時(shí)候,使用錯(cuò)誤跳轉(zhuǎn)函數(shù)printerror,'NotCanPostUrl'是一個(gè)錯(cuò)誤常量,在e\data\language\gb\pub\q_message.php中,表示'請(qǐng)從網(wǎng)站提交數(shù)據(jù)'。
這個(gè)函數(shù)就是用來(lái)判斷前臺(tái)提交的表單是不是從指定的網(wǎng)站發(fā)來(lái)的,防止有人修改表單惡意注冊(cè)等等之類(lèi)的。