帝国论坛帝国网站管理系统交流区帝国CMS使用交流[分享]帝国CMS结合项伪静态方法分享 【本版专题贴子】  
 1/8     1 2 3 4 5 6 7 8 ›› ›|
主题:[分享]帝国CMS结合项伪静态方法分享 [加入收藏夹]   

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[分享]帝国CMS结合项伪静态方法分享
我一向都是伸手党的。看到论坛上面有几个人做出来了确没分享,搜索遍了也没有结合项伪静态方法,所以只能靠自己了。参考了某人发的地址格式。
演示如下地址 域名刚刚做的解析可能有些地方还不能访问。吃饭先,整理好了晚上再发布吧。我想说有好东西大家别都藏着掖着,别发出来让人眼馋,给我们这些菜鸟一些捷径走走啊。
跟我一样菜的朋友帮忙顶顶帖子。。。
http://www.haoxixi.com/mainland/




2013-05-09 18:56:51 已设置保密 顶部 回复 引用 报告 编辑 删除

tkf88
用户头衔:探花

精华贴   :0
发贴数   :6911
经验值   :17376
注册时间:2007-05-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]





2013-05-09 19:31:05 已设置保密 顶部 回复 引用 报告 编辑 删除

being
用户头衔:进士

精华贴   :0
发贴数   :247
经验值   :1835
注册时间:2007-09-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

顶你,放出来才是真!



www.yiyao35.com www.yixuer.comwww.daifu8.com
2013-05-09 20:24:34 已设置保密 顶部 回复 引用 报告 编辑 删除

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

我编辑了半天点回复居然该页无法显示,我去。。。。。。




2013-05-09 21:39:31 已设置保密 顶部 回复 引用 报告 编辑 删除

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

修改前请先做好备份,由于修改而造成的损失本人概不负责。
1、下载并安装好官方结合项插件:http://bbs.phome.net/ShowThread/?threadid=201928&forumid=31
2、修改官方插件使URL格式固定。
修改方法:
打开\e\class\userfun.php
找到
global $public_r;
替换为
global $public_r,$navclassid;
找到
$fieldandvar='myarea,sex,age';

        //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
        $fieldandval=array();
        $fieldandval['myarea']='<b>地区:</b>|==|不限,##东城,东城区##朝阳,朝阳区##崇文,崇文区##宣武,宣武区##海淀,海淀区##丰台,丰台区';
        $fieldandval['sex']='<b>性别:</b>|==|不限,##男,男##女,女##人妖,人妖';
        $fieldandval['age']='<b>年龄:</b>|==|不限,##1-10,1__10##11-20,11__20##21-30,21__30##31-40,31__40##41-50,41__50##50岁以上,51__200';
替换为(根据自已要求修改)
$fieldandvar='myarea,sex,age';

        //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
        $fieldandval=array();
        $fieldandval['myarea']='<b>地区:</b>|==|不限,0##东城,1##朝阳,2##崇文,3##宣武,4##海淀,5##丰台,6';//我这里将值改为数字你可以改任何内容
        $fieldandval['sex']='<b>性别:</b>|==|不限,0##男,1##女,2##人妖,3';
        $fieldandval['age']='<b>年龄:</b>|==|不限,0##1-10,1##11-20,2##21-30,3##31-40,4##41-50,5##50岁以上,6';
找到
if($_GET['classid'])
        {
                $classid=RepPostVar($_GET['classid']);
                $urlcs.='&classid='.$classid;
        }
替换为
if($_GET['classid'])
        {
                $classid=RepPostVar($_GET['classid']);
                $urlcs.=$classid;
        }
        else
        {
        $urlcs.=$navclassid;
        }
找到
$valallstr.=$valexpr[0].'<a href="'.$public_r['newsurl'].'e/action/ListInfo.php?'.$urlcs.'&ph=1<!--url.add-->&'.$field.'='.urlencode($vtr[1]).'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
替换为
$myarea_value=news_value('myarea',$i,0,$vtr[1]);
$sex_value=news_value('sex',$i,1,$vtr[1]);
$age_value=news_value('age',$i,2,$vtr[1]);
// 以上每个加一个字段都需定义
$valallstr.=$valexpr[0].'<a href="http://localhost/EmpireCMS7/list/0-'.$urlcs.$myarea_value.$sex_value.$age_value.'.html'.'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
// http://localhost/EmpireCMS7/list这句根据自己情况修改

找到
?>
在上面加
function news_value($field,$ii,$iii,$vrtss)//新增函数
  {
                if($_GET[$field])
                {
                        $getval=htmlspecialchars($_GET[$field],ENT_QUOTES);
                        $news_values='-'.urlencode($getval);
                }
                else
                {
                $news_values='-0';
                }
                if($ii==$iii)
                {
                $news_values='-'.$vrtss;
                }
  return $news_values;
  }

这样修改后出来的链接地址就固定了。




2013-05-09 21:49:38 已设置保密 顶部 回复 引用 报告 编辑 删除

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

3、打开\e\action\ListInfo.php
找到
$search.='&ph=1&andor='.$andor;
替换为
$search.='&ph=1&andor='.$andor;
$search2.='-'.$classid;
找到
for($i=1;$i<$count;$i++)
        {
                $andval=$_GET[$andr[$i]];
                if(!empty($andval))
                {
                        $andval=RepPostVar2($andval);
                        $doandor=empty($listandf)?'':' '.$andor.' ';
                        if(strstr($andval,'__'))
                        {
                                $andbtr=explode('__',$andval);
                                $andbtr[0]=(float)$andbtr[0];
                                $andbtr[1]=(float)$andbtr[1];
                                if($andbtr[0]&&$andbtr[1])
                                {
                                        $listandf.=$doandor.$andr[$i]." BETWEEN '".$andbtr[0]."' and '".$andbtr[1]."'";
                                }
                        }
                        elseif(empty($emod_r[$mid]['setandf']))
                        {
                                $listandf.=$doandor.$andr[$i]."='".$andval."'";
                        }
                        else
                        {
                                $listandf.=$doandor.$andr[$i]." like '%".$andval."%'";
                        }
                        $search.="&".$andr[$i]."=$andval";
                }
        }
替换为
        for($i=1;$i<$count;$i++)
        {
                $andval=$_GET[$andr[$i]];
                if(strlen($andval)>0)//变量有0所以改为strlen;
                {
                        $fieldandval=array(//对应userfun.php里数组 注意顺序须
                                'myarea' =>array(0=>'',1=>"东城区",2=>"朝阳区",3=>"崇文区",4=>"宣武区",5=>"海淀区",6=>"丰台区"),
                                'sex'=>array(0=>'',1=>"男",2=>"女",3=>"人妖"),
                                'age'=>array(0=>'',1=>"1__10",2=>"11__20",3=>"21__30",4=>"31__40",5=>"41__50",6=>"51__200"),
                                );
                        $andval2=RepPostVar2($andval);
                        $andval=$fieldandval[$andr[$i]][$andval2];
                        //修改过的内容尾
                        $doandor=empty($listandf)?'':' '.$andor.' ';
                        if(strstr($andval,'__'))
                        {
                                $andbtr=explode('__',$andval);
                                $andbtr[0]=(float)$andbtr[0];
                                $andbtr[1]=(float)$andbtr[1];
                                if($andbtr[0]&&$andbtr[1])
                                {
                                        $listandf.=$doandor.$andr[$i]." BETWEEN '".$andbtr[0]."' and '".$andbtr[1]."'";
                                }
                        }
                        elseif(empty($emod_r[$mid]['setandf']))
                        {
                                $listandf.=$doandor.$andr[$i]."='".$andval."'";


                        }
                        else
                        {
                                $listandf.=$doandor.$andr[$i]." like '%".$andval."%'";
                                if(!empty($andval))
                                {
                                $modekey.=$andval." - ";
                                }
                        }
       
                        $search2.="-$andval2";
                }
        }
找到
$listpage=page1($num,$line,$page_line,$start,$page,$search);
替换为
$listpage=page1($num,$line,$page_line,$start,$page,$search2);

这样修改后链接就能正常访问了。





2013-05-09 21:56:48 已设置保密 顶部 回复 引用 报告 编辑 删除

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

4、打开\e\class\connect.php
找到 function page1 函数
修改为(根据自己要求修改)
function page1($num,$line,$page_line,$start,$page,$search){
        global $fun_r;
        if($num<=$line)
        {
                return '';
        }
        $search=RepPostStr($search,1);
        //$url=eReturnSelfPage(0);
        $url='http://localhost/videolist/';//需重定义
        $snum=2;//最小页数
        $totalpage=ceil($num/$line);//取得总页数
        $firststr='<span>共'.$num.'条数据 页次:'.($page+1).'/'.$totalpage.'页</span>';
        //上一页
        if($page<>0)
        {
                $toppage='<a href="'.$url.'0'.$search.'.html">'.$fun_r['startpage'].'</a>';
                $pagepr=$page-1;
                $prepage='<a href="'.$url.''.$pagepr.$search.'.html">'.$fun_r['pripage'].'</a>';
        }
        //下一页
        if($page!=$totalpage-1)
        {
                $pagenex=$page+1;
                $nextpage='<a href="'.$url.$pagenex.$search.'.html">'.$fun_r['nextpage'].'</a>';
                $lastpage='<a href="'.$url.($totalpage-1).$search.'.html">'.$fun_r['lastpage'].'</a>';
        }
        $starti=$page-$snum<0?0:$page-$snum;
        $no=0;
        for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
        {
                $no++;
                if($page==$i)
                {
                        $is_1="<em>";
                        $is_2="</em>";
                }
                else
                {
                        $is_1='<a href="'.$url.$i.$search.'.html">';
                        $is_2="</a>";
                }
                $pagenum=$i+1;
                $returnstr.=$is_1.$pagenum.$is_2;
        }
        $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
        return $returnstr;
}


好了,修改完成。
apache 规则

RewriteEngine on
RewriteBase /EmpireCMS7
RewriteRule ^list/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ e/action/ListInfo.php?page=$1&classid=$2&ph=1&myarea=$3&sex=$4&age=$5

nginx规则

location / {
                        rewrite ^(.*)list/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ $1e/action/ListInfo.php?page=$1&classid=$2&ph=1&myarea=$3&sex=$4&age=$5 last;
                   }

修改后搜索分页会打不开我就不弄弄了意义不大,加一条规则就不会404

                        rewrite ^(.*)list/([0-9]+)&searchid=([0-9]+).html$ $1e/search/result/index.php?page=$2&searchid=$3 last;




2013-05-09 22:04:44 已设置保密 顶部 回复 引用 报告 编辑 删除

lx66
用户头衔:书生

精华贴   :0
发贴数   :56
经验值   :288
注册时间:2012-09-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

比较复杂,有问题的可回复,我有时间会解答下。弄了半天,版主来射个精呗
传上文件供参考

上传以下附件:
[下载 *.rar](文件大小:24.71 KB,下载次数:305)




2013-05-09 22:13:27 已设置保密 顶部 回复 引用 报告 编辑 删除

zizhuxuaner
用户头衔:进士

精华贴   :0
发贴数   :394
经验值   :2065
注册时间:2008-06-19
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

好复杂 看的好累 先回复个




2013-05-09 22:45:55 已设置保密 顶部 回复 引用 报告 编辑 删除

cnefi
用户头衔:举人

精华贴   :0
发贴数   :194
经验值   :950
注册时间:2007-05-08
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

谢谢楼主分享

感觉挺复杂的。。




2013-05-09 23:15:39 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/8     1 2 3 4 5 6 7 8 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1