DedeCMS系統(tǒng)配置參數(shù)功能和運(yùn)行分析,織夢(mèng)文章
導(dǎo)讀:織夢(mèng)文章織夢(mèng)文章本教程主要分析講解dedecms系統(tǒng)基本參數(shù)功能是如何實(shí)現(xiàn)的,如何存在到數(shù)據(jù),程序是如何執(zhí)行,具體某個(gè)配置這里不講,因?yàn)楸容^簡(jiǎn)單,在其它教程里講解。簡(jiǎn)言之,這個(gè)織夢(mèng)模板修改dede下瓻模板下載。
本教程主要分析講解dedecms系統(tǒng)基本參數(shù)功能是如何實(shí)現(xiàn)的,如何存在到數(shù)據(jù),程序是如何執(zhí)行,具體某個(gè)配置這里不講,因?yàn)楸容^簡(jiǎn)單,在其它教程里講解。簡(jiǎn)言之,這個(gè)教程以分析DedeCMS系統(tǒng)配置參數(shù)功能的php程序、模板運(yùn)用等內(nèi)容。
進(jìn)入到Dedecms系統(tǒng)配置參數(shù)界面,如下圖所示,這個(gè)圖只截取基本一部分。
這個(gè)界面所對(duì)應(yīng)的php程序文件是http://www.dedebase.com/dede/sys_info.php,即sys_info.php,這個(gè)php文件,對(duì)應(yīng)的模板文件是sys_info.htm,以后我們分析某一功能首先要找出,那一功能對(duì)應(yīng)原php程序和模板。今天就分析織夢(mèng)系統(tǒng)配置參數(shù)下面每個(gè)功能的實(shí)現(xiàn)和運(yùn)行,這樣說(shuō)有可能不是清夢(mèng),我們一個(gè)功能一個(gè)功能的分析。
首先,我們目標(biāo)是實(shí)現(xiàn)在“添加新變量”前面加上一個(gè)對(duì)應(yīng)的欄目選項(xiàng),即如下圖所示位置。
要實(shí)現(xiàn)這個(gè)功能,首先就要找到這個(gè)欄目,我們打開(kāi)文件sys_info.htm,在這個(gè)模板文件中好像沒(méi)有明顯的這一行信息,我們仔細(xì)找一下,找到如下一段php代碼。
<tr>
<td height="24" bgcolor="#ffffff" align="center">
<?php
$ds = file(DEDEADMIN.'/inc/configgroup.txt');//每行作為一個(gè)單元存放在數(shù)組中。
$totalGroup = count($ds);//統(tǒng)計(jì)數(shù)組個(gè)數(shù)。
$i = 0;
foreach($ds as $dl)
{
$dl = trim($dl);
if(empty($dl)) continue;
$dls = explode(',',$dl);//用逗號(hào)分隔字符串,分隔后存放在數(shù)組$dls里面。
$i++;
if($i>1) echo " | <a href='javascript:ShowConfig($i,$totalGroup)'>{$dls[1]}</a> ";
else{
echo " <a href='javascript:ShowConfig($i,$totalGroup)'>{$dls[1]}</a> ";
}
}
?>
| <a href="#" onClick="ShowHide('addvar')">添加新變量</a></td>
</tr>
這好像與我們平時(shí)看到的織夢(mèng)前臺(tái)模板有點(diǎn)矛盾,一般的前臺(tái)模板(路徑是templets/default)文件不一樣,不一樣在在前臺(tái)模板文件里面,看不到php程序,只有標(biāo)簽,沒(méi)有錯(cuò),實(shí)際上在前臺(tái)模板里面可以應(yīng)用php文件,但不是直接應(yīng)用,而是用織夢(mèng)標(biāo)簽開(kāi)始與結(jié)束,例如下面這個(gè)代碼。
[field:global runphp='yes' name=autoindex]
if (@me < 9) @me = '0'.@me;
else @me = @me;
[/field:global]
但是像在模板sys_info.htm中這樣直接應(yīng)用php程序沒(méi)有,織夢(mèng)也不允許,那為什么在sys_info.htm模板文件能用呢?因?yàn)椋@個(gè)模板文件被包含引用在了sys_info.php文件,這是php程序中的規(guī)定,只要在php程序中包括有其它文件如模板,那么,在它所包括的文件中就可以直接使用php程序與htm嵌套使用,這是一個(gè)重要的知識(shí)點(diǎn),如果不理解這一點(diǎn),就會(huì)給我們帶來(lái)困惑。
回過(guò)頭來(lái)我們?cè)俜治鲆幌律厦?lt;tr>與</tr>之間的這段php代碼。現(xiàn)在我們?cè)敿?xì)分析一下這段代碼,如何添加一個(gè)欄目,例如我們添加“織夢(mèng)基地”這樣一個(gè)欄目。這一小段代碼用到比較多的知識(shí),我們?cè)敿?xì)分析一下。這段代碼用到了四個(gè)php函數(shù),分別是file(),count(),trim(),explode(),一個(gè)數(shù)組遍歷語(yǔ)句foreach,還用到了一個(gè)js函數(shù)ShowConfig()這個(gè)函數(shù)就是一個(gè)選擇卡功能。
函數(shù)file()的作用是把每行作為一個(gè)單元存放在數(shù)組中,我們直接打印出$ds = file(DEDEADMIN.'/inc/configgroup.txt'),顯示的結(jié)果是:Array ( [0] => 1,站點(diǎn)設(shè)置 [1] => 2,核心設(shè)置 [2] => 3,附件設(shè)置 [3] => 4,會(huì)員設(shè)置[4] => 5,互動(dòng)設(shè)置 [5] => 6,性能選項(xiàng) [6] => 7,其它選項(xiàng) [7] => 8,模塊設(shè)置 ) 。很明顯這個(gè)結(jié)果是一個(gè)數(shù)組,我們打開(kāi)文件confinggroup.txt文件發(fā)現(xiàn),每一行對(duì)應(yīng)數(shù)組中的一個(gè)單元,這正是這個(gè)file()函數(shù)的強(qiáng)大之處。
我們?cè)倏匆幌耤ount()函數(shù),函數(shù)是用來(lái)計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù),我們打印一下count($ds),結(jié)果是8,說(shuō)明文件上面的$ds數(shù)組有8個(gè)單元。數(shù)組$ds是一個(gè)一組數(shù)組,如果是多維,函數(shù)會(huì)一直向下執(zhí)行,這是一個(gè)計(jì)算
多維數(shù)組的好方法工具。在數(shù)據(jù)庫(kù)語(yǔ)言中也有這個(gè)名稱完全相同的函數(shù),經(jīng)常用來(lái)計(jì)算查詢出來(lái)的記錄條數(shù)或字段數(shù),等講到數(shù)據(jù)庫(kù)知識(shí)我們?cè)敿?xì)講解,注意區(qū)別。
函數(shù)trim()是去除字符串首尾處的空白字符(或者其他字符),刪除左邊、右邊空白字符(或其他字符)的函數(shù)分別是ltrim(),rtrim(),就是在函數(shù)trim()前面加上左右英文第一個(gè)字母即可。去除的字符包括如下五大類(lèi):
" " (ASCII 32 (0x20)),普通空格符。
"\t" (ASCII 9 (0x09)),制表符。
"\n" (ASCII 10 (0x0A)),換行符。
"\r" (ASCII 13 (0x0D)),回車(chē)符。
"\0" (ASCII 0 (0x00)),空字節(jié)符。
"\x0B" (ASCII 11 (0x0B)),垂直制表符。
這里為什么要去除空白字符呢,如果不這樣,那么,當(dāng)程序執(zhí)行到if(empty($ds)) continue;時(shí),程序下面的代碼就執(zhí)行不了了,那么,文件configgroup.txt內(nèi)容就循環(huán)不出來(lái)了。
第四個(gè)函數(shù)explode()這個(gè)函數(shù)非常重要,它的作用就是一個(gè)字符串分割另一個(gè)字符串,返回一個(gè)字符串組成的數(shù)組。在這段代碼中$dls = explode(',',$dl),explode把字符串$dl分割成一個(gè)數(shù)組,例如當(dāng)循環(huán)到第一個(gè)即“1,站點(diǎn)設(shè)置”,這個(gè)函數(shù)會(huì)把這個(gè)字符串他割成[0]=1;[1]="站點(diǎn)設(shè)置"這樣的數(shù)組。與它相反的一個(gè)函數(shù)implode()是把數(shù)組連接成一個(gè)字符串。
在循環(huán)里面的if($i>1)這個(gè)判斷是作什么用的呢?他是用來(lái)處理每個(gè)欄目選項(xiàng)的“豎線”當(dāng)?shù)谝粋€(gè)的時(shí)候,是沒(méi)有豎線的,這也為我們提供了一種思路,例如,我們網(wǎng)站導(dǎo)航有很多站都有豎線,當(dāng)然,導(dǎo)航用的是css或js知識(shí)。
最后,有一個(gè)js函數(shù)ShowConfig($i,$totalGroup),這個(gè)函數(shù)是用來(lái)實(shí)現(xiàn)欄目選項(xiàng)卡功能的,這里暫時(shí)不作多解釋,以后,會(huì)有專題詳細(xì)講解選項(xiàng)卡功能。
為了方便大家對(duì)這段程序的理解,制作這段程序的運(yùn)行流程圖如下所示。
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-07-20 ,文章DedeCMS系統(tǒng)配置參數(shù)功能和運(yùn)行分析,織夢(mèng)文章主要講述參數(shù),標(biāo)簽,CMS網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_31503.html
為你推薦與DedeCMS系統(tǒng)配置參數(shù)功能和運(yùn)行分析,織夢(mèng)文章相關(guān)的文章
-
DedeCMS站點(diǎn)高級(jí)安全策略(Linux篇),織夢(mèng)教程
(105)人喜歡 2023-07-20 -
織夢(mèng)DEDECMS中讓近三天發(fā)布的文章顯示紅色
(194)人喜歡 2023-07-20 -
dedecms網(wǎng)站搬家需要的備份的文件,dedecms
(51)人喜歡 2023-07-20 -
織夢(mèng)(dedecms)導(dǎo)航條dropdown.js的改進(jìn)(附演示
(98)人喜歡 2023-07-20 -
解決Dedecms生成RSS地圖地址出錯(cuò)全都多了一
(139)人喜歡 2023-07-20 -
dede調(diào)用指定欄目下相關(guān)文章的實(shí)現(xiàn)方法
(123)人喜歡 2023-07-20