本帖最后由 hikelive 于 2010-6-26 17:54 编辑
效果展示:
频道页路径:http://www.92jianshen.cn/news/
分类路径:http://www.92jianshen.cn/news/xxrl
文章路径:http://www.92jianshen.cn/news/xxrl/20100529/1776.html
第一步我们需要开启系统默认没有开放的一个功能,自定义静态页面文件夹。
在后面添加一行代码这时候到supesite后台编辑“资讯分类”的是,你会发现多了两个选填项“分类存放HTML的路径”和“二级域名绑定(以http://开头)”
我们这里只需要填写“分类存放HTML的路径”这个项目,比如“科技世界”这个分类,我可以这样命名“KJSJ”;
我们可以给每一个分类添加一个有意义的名字。
第二步,我们需要调整一下”系统设置“里面的”本地路径设置“,具体参考贴图
第三步,重中之重,我们需要修改一段代码。找到function/common.func.php
大概在125行有一个function gethtmlfile($parray) 函数,我们需要修改这个函数,他的功能是生成URL静态页面路径。
将function gethtmlfile($parray) 函数- function gethtmlfile($parray) {
- $htmlarr = array();
- $dirarr = array();
- $id = 0;
- if(empty($parray['page'])) {
- unset($parray['page']);
- } elseif($parray['page'] < 2) {
- unset($parray['page']);
- }
- .......
- return $htmlarr;
- }
复制代码 替换成:- function gethtmlfile($parray) {
- global $_SGLOBAL;
- $htmlarr = array();
- $dirarr = array();
- $id = 0;
- if(empty($parray['page'])) {
- unset($parray['page']);
- } elseif($parray['page'] < 2) {
- unset($parray['page']);
- }
- if(!empty($parray['uid'])) {
- $id = $parray['uid'];
- if(!empty($parray['action'])) {
- if($parray['action'] == 'space' || $parray['action'] == 'spacelist') {
- unset($parray['action']);
- } elseif ($parray['action'] == 'viewspace') {
- unset($parray['action']);
- }
- }
- } elseif(!empty($parray['itemid'])) {
- $id = $parray['itemid'];
- } elseif(!empty($parray['tid'])) {
- $id = $parray['tid'];
- } elseif(!empty($parray['tagid'])) {
- $id = $parray['tagid'];
- } elseif(!empty($parray['catid'])) {
- $id = $parray['catid'];
- } elseif(!empty($parray['fid'])) {
- $id = $parray['fid'];
- }
- $htmlfilename = str_replace(array('action-', 'uid-', 'itemid-'), array('', '', ''), arraytostring($parray, '-'));
- if(!empty($id)) {
- if(!empty($parray['action'])) {
- if($parray['action'] == 'viewnews') { //文章系统
- $query = $_SGLOBAL['db']->query('SELECT i.type,i.dateline,c.htmlpath,c.catid FROM '.tname('spaceitems').' i left join '.tname('categories').' c on i.catid=c.catid WHERE i.itemid=\''.$id.'\'');
- $news = $_SGLOBAL['db']->fetch_array($query);
- $time=date('Ymd', $news['dateline']);
- $htmlpath=empty($news['htmlpath'])?$news['catid']:$news['htmlpath'];
- $thedir =$news['type'].'/'.$htmlpath.'/'.$time;
- $htmlfilename = "{$id}";
- if(!empty($parray['page'])) $htmlfilename .= '-'.$parray['page'];
- } elseif($parray['action'] == 'viewthread') { //BBS
- $thedir ="other";
- $htmlfilename = "t-{$id}";
- }
- elseif($parray['action'] == 'category')
- {
- $query = $_SGLOBAL['db']->query('SELECT i.type,i.htmlpath,i.catid FROM '.tname('categories').' i WHERE i.catid=\''.$id.'\'');
- $news = $_SGLOBAL['db']->fetch_array($query);
- $htmlpath=empty($news['htmlpath'])?$news['catid']:$news['htmlpath'];
- $thedir = $news['type'].'/'.$htmlpath;
- $htmlfilename ="index";
- if(!empty($parray['page'])) $htmlfilename = "list-page".'-'.$parray['page'];
- }
- }
- }
-
- if(is_dir(H_DIR) || (!is_dir(H_DIR) && @mkdir(H_DIR))) {
- if(empty($id)) {
- $htmlarr['path'] = H_DIR.'/'.$htmlfilename.'/'.'index.html';
- $htmlarr['url'] = H_URL.'/'.$htmlfilename;
- } else {
- $htmldir = H_DIR.'/'.$thedir;
- if(is_dir(H_DIR.'/'.$news['type']) || (!is_dir(H_DIR.'/'.$news['type']) && @mkdir(H_DIR.'/'.$news['type']))){}
- if(is_dir($htmldir) || (!is_dir($htmldir) && @mkdir($htmldir))) {
- $htmlarr['path'] = H_DIR.'/'.$thedir.'/'.$htmlfilename.'.html';
- $htmlarr['url'] = H_URL.'/'.$thedir.'/'.$htmlfilename.'.html';
- if($parray['action'] == 'category'&&empty($parray['page'])){
- $htmlarr['path'] = H_DIR.'/'.$thedir.'/'.$htmlfilename.'.html';
- $htmlarr['url'] = H_URL.'/'.$thedir;
- }
- } else {
- $htmlarr['path'] = H_DIR.'/'.$htmlfilename.'.html';
- $htmlarr['url'] = H_URL.'/'.$htmlfilename.'.html';
- }
- }
- } else {
- $htmlarr['path'] = S_ROOT.'./'.$htmlfilename.'.html';
- $htmlarr['url'] = S_URL.'/'.$htmlfilename.'.html';
- }
- return $htmlarr;
- }
复制代码 第四步,我们到后台开启静态配置就OK了。
我自己是琢磨了两天两晚才弄出来的,希望对大家有点用。
附上GBK源码文件:
|