一、DEDE 修改默認(rèn)文章命名規(guī)則
1、單獨(dú)添加分類默認(rèn)修改,修改文件:include/common.inc.php。
查找代碼:
//文檔的默認(rèn)命名規(guī)則
$art_shortname = $cfg_df_ext = '.html';
$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}'.$cfg_df_ext;
更改為:
$art_shortname = $cfg_df_ext = '.html';
$cfg_df_namerule = '{typedir}/{pinyin}'.$cfg_df_ext;
2、批量添加分類默認(rèn)修改,修改文件:dede/templets/catalog_add_quick.htm
查找代碼:
<tr>
<td height="26" class='bline'>文章命名規(guī)則:</td>
<td class='bline'><input name="namerule" type="text" id="namerule" value="{typedir}/{Y}{M}{D}/{aid}.html" size="40" class="pubinputs" />
<img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar2')" /> </td> </tr>
更改為:
<tr>
<td height="26" class='bline'>文章命名規(guī)則:</td>
<td class='bline'><input name="namerule" type="text" id="namerule" value="{typedir}/{pinyin}.html" size="40" class="pubinputs" />
<img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar2')" /> </td> </tr>
二、DEDE 修改默認(rèn)列表命名規(guī)則
1、單獨(dú)添加分類默認(rèn)修改,修改文件:dede/templets/catalog_add.htm
查找代碼:
<tr>
<td height="26">列表命名規(guī)則:</td>
<td>
<input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" class="pubinputs" style="width:250px" /> <img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/>
</td>
</tr>
更改為:
<tr>
<td height="26">列表命名規(guī)則:</td>
<td>
<input name="namerule2" type="text" id="namerule2" value="{typedir}/{typedir}-{page}.html" class="pubinputs" style="width:250px" /> <img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/>
</td>
</tr>
去除后面的文章ID
修改include/helpers/channelunit.helper.php中的:
$articleRule = str_replace('{pinyin}',GetPinyin($title).'_'.$aid,$articleRule);
$articleRule = str_replace('{py}',GetPinyin($title,1).'_'.$aid,$articleRule);
兩行為:
$articleRule = str_replace('{pinyin}',GetPinyin($title),$articleRule);
$articleRule = str_replace('{py}',GetPinyin($title,1),$articleRule);
保存OK
2、批量添加分類默認(rèn)修改,修改文件:dede/templets/catalog_add_quick.htm
查找代碼:
<tr>
<td height="26">列表命名規(guī)則:</td>
<td><input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" size="40" class="pubinputs" />
<img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')" />
</td>
</tr>
更改為:
<tr>
<td height="26">列表命名規(guī)則:</td>
<td><input name="namerule2" type="text" id="namerule2" value="{typedir}/{typedir}-{page}.html" size="40" class="pubinputs" />
<img src="img/help.gif" alt="幫助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')" />
</td>
</tr>
3、對于列表命名規(guī)則更改之后,子級欄目生成列表文件的時(shí)候會出錯(cuò),不能創(chuàng)建文件,原因是{typedir}-{page}.html文件名里面重復(fù)了{(lán)typedir}的父目錄
生成文件的路徑就像 /parent/parent/sub-1.html,名字里面包含了一個(gè)“/”所以會出錯(cuò),解決辦法是:
打開include/arc.listview.class.php,找到323行代碼:
$makeFile = str_replace("{page}", $this->PageNo, $makeFile);這里的$makeFile就是要生成的文件路徑,處理一下就可以了。
在此行代碼下面添加以下代碼:
/*****自己添加的處理以{typedir}為列表命名規(guī)則時(shí),去除生成列表文件名中重復(fù)了父目錄的程序****/
if(strpos($makeFile,"//")>0){
$tmpArr = explode("//",$makeFile);
$makeFile = $tmpArr[0];
if(strpos($tmpArr[1],"/")>0){
$tmpArr1 = explode("/",$tmpArr[1]);
$makeFile .= "/".$tmpArr1[1];
}else{
$makeFile .= "/".$tmpArr[1];
}
}
/*****處理程序結(jié)束*****/
然后找到下面的:$list_1 = $this->GetTruePath().$onlyrule;代碼,這個(gè)是要復(fù)制第一個(gè)列表文件為index的路徑
同樣在下面添加代碼:
/*****自己添加的處理以{typedir}為列表命名規(guī)則時(shí),去除生成列表文件名中重復(fù)了父目錄的程序****/
if(strpos($list_1,"//")>0){
$tmpArr = explode("//",$list_1);
$list_1 = $tmpArr[0];
if(strpos($tmpArr[1],"/")>0){
$tmpArr1 = explode("/",$tmpArr[1]);
$list_1 .= "/".$tmpArr1[1];
}else{
$list_1 .= "/".$tmpArr[1];
}
}
/*****處理程序結(jié)束*****/
保存就OK。
列表頁和文章頁都采用拼音的URL形式了,
不是原來的list_1.html的形式,更有利于SEO優(yōu)化搜索
主要是說明這個(gè)修改和處理的位置,可以根據(jù)自己需求進(jìn)一步更改完善。
有時(shí)dede后臺生成欄目列表頁太多了時(shí),沒有生成完就退出循環(huán),顯示一片空白了。
原因是有可能代碼執(zhí)行時(shí)間不夠,也有可能會是代碼執(zhí)行分配的內(nèi)存不足。
修改方法是在代碼開始執(zhí)行前設(shè)置執(zhí)行最大時(shí)間和內(nèi)存:
set_time_limit(0); //設(shè)置代碼執(zhí)行最大時(shí)間為不限制
ini_set("memory_limit", 1048576000); //設(shè)置內(nèi)存限制為1G
以上設(shè)置只對本次程序運(yùn)行有效。