管理員
積分信息:
威望:6005
金錢:9076056
貢獻:6116
儲蓄:2146643647
|
基於代碼X3,其它版本源碼,請自行驗證。
Discuz後台的偽靜態配置不包含門戶頻道頁的偽靜態配置。應該是考慮到頻道頁的URL地址變化太多的原因。下面,我們就來開發源碼,加上這個功能。
第一步:加上語言包中的記錄:
根目錄下:source\language\lang_admincp.php ,找到setting_seo_rewritestatus_portal_article 這一行,大概在1500行左右,搜索一下吧。
在這句下面加上一句:'setting_seo_rewritestatus_portal_list' => '門戶頻道頁',
第二步:在後台加上設置項
根目錄下:source\function\function_admincp.php ,找到rewritedata函數,在if語句的,兩個大括號中,加上下面兩段程序
上面一段加上
- if (in_array('portal_list', $_G['setting']['rewritestatus'])) {
- $data['search']['portal_list'] = "/" . $_G['domain']['pregxprw']['portal'] . "\?mod\=list&(amp;)?catid\=(\d+)(&page\=(\d+))?"([^\>]*)\>/e";
- $data['replace']['portal_list'] = "rewriteoutput('portal_list', 0, '\\1', '\\3', '\\5', '\\6')";
- }
複製代碼
下面一段加上
- $data['rulesearch']['portal_list'] = 'list-{catid}-{page}.html';
- $data['rulereplace']['portal_list'] = 'portal.php?mod=list&catid={catid}&page={page}';
- $data['rulevars']['portal_list']['{catid}'] = '([0-9]+)';
- $data['rulevars']['portal_list']['{page}'] = '([0-9]+)';
複製代碼
第三步:兼容欄目頁URL地址設置
找到文件:
根目錄source\function\function_portal.php 下的函數getportalcategoryurl
重新寫成下面的代碼:
- function getportalcategoryurl($catid) {
- if (empty($catid))
- return '';
- loadcache('portalcategory');
- $portalcategory = getglobal('cache/portalcategory');
- if ($portalcategory[$catid]) {
- $url = str_replace('&', '&', $portalcategory[$catid]['caturl']);
- $url = str_replace('&', '&', $url);
- $url = str_replace('http://'.$_SERVER['HTTP_HOST'].'/', '', $url);
- return $url;
- } else {
- return '';
- }
- }
複製代碼
第四步:設置前台頁面URL地址切換
根目錄00php\source\function\function_core.php 這個文件中找到:函數rewriteoutput
在一串的if ... else if中加上一段
至此,大功告成。 |
|