Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] 自定义模型频道伪静态方案

[复制链接]
aiview 发表于 2009-6-22 17:55:50 | 显示全部楼层 |阅读模式
本帖最后由 aiview 于 2009-6-23 14:27 编辑

修改地方很少,主要靠改模版。
URL开启简短通用模式后的模型连接如下:
模型首页:http://ss.433200.com/?action-model-name-food.html
模型分类页:http://ss.433200.com/?action-model-name-food-catid-1.html
模型内页:http://ss.433200.com/?action-model-name-food-itemid-1.html

下面简单描述修改步骤:
找到
  1. //自定义模型
  2. if($_SGET['action'] == 'model') {
  3.         $_SGET['name'] = empty($_SGET['name'])?'':trim(preg_replace("/[^a-z0-9\-\_]/i", '', trim($_SGET['name'])));
  4.         if(!empty($_SGET['name'])) {
  5.                 if(!empty($_SGET['itemid'])) {
  6.                         $scriptfile = S_ROOT.'./modelview.php';
  7.                 } else {
  8.                         $scriptfile = S_ROOT.'./modelindex.php';
  9.                 }
  10.                 if(file_exists($scriptfile)) {
  11.                         include_once($scriptfile);
  12.                         exit();
  13.                 }
  14.         }
  15. }
复制代码
可以看源代码中已经做好了modeindex.php,只是没有这个文件罢了。

我们就来添加这个文件。

首先我们先处理模型的默认连接
修改为common.func.php 中
  1. //处理默认链接和名称
  2.                 if(empty($value['url'])) {
  3.                         if($value['type'] == 'user') {
  4.                                 $value['url'] = geturl("action/channel/name/$value[nameid]");
  5.                         } elseif ($value['type'] == 'model') {
  6.                                 //$value['url'] = S_URL.'/m.php?name='.$value['nameid'];
  7.                                 $value['url'] = geturl("action/model/name/$value[nameid]");
  8.                         } else {
  9.                                 $value['url'] = geturl("action/$value[nameid]");
  10.                         }
  11.                 }
复制代码

评分

1

查看全部评分

 楼主| aiview 发表于 2009-6-22 17:56:32 | 显示全部楼层
本帖最后由 aiview 于 2009-6-23 14:49 编辑

下一部就把目录下的m.php内容复制到modelindex.php中即可。
当然还要修改两处地方:
  1. $_GET['name'] = !empty($_GET['name']) ? trim($_GET['name']) : $_SGET['name'];
  2. $_GET['mo_catid'] = !empty($_GET['mo_catid']) ? intval($_GET['mo_catid']) : $_SGET['catid'];
复制代码
但是如果遇到搜索不确定字段,这个方法就不是很好处理了。
下一步将解决这个问题。
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-22 17:56:48 | 显示全部楼层
本帖最后由 aiview 于 2009-6-23 14:31 编辑

主要是模版中URL要通过geturl函数转换。
如原来是
  1. {S_URL}/m.php?name=$modelsinfoarr['modelname']&mo_catid=$key
复制代码
现在要修改成:
  1. <!--{eval $url=geturl('action/model/name/'.$modelsinfoarr[modelname].'/catid/'.$key);}-->
复制代码
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-22 17:57:10 | 显示全部楼层
本帖最后由 aiview 于 2009-6-23 14:40 编辑

这样转换后$_GET得不到mo_参数了。
解决方法:
modelindex.php 加入以下代码
  1. /*
  2. * 从_SGET中自动获取并初始化$_GET数组
  3. */
  4. foreach ($_SGET as $tmpkey => $tmpvalue) {
  5.         if ($tmpkey != "action" && $tmpkey != "name"){
  6.                 $_GET['mo_'.$tmpkey] = !empty($_GET['mo_'.$tmpkey]) ? trim($_GET['mo_'.$tmpkey]) : $tmpvalue;
  7.         }else{
  8.                 $_GET[$tmpkey] = !empty($_GET[$tmpkey]) ? trim($_GET[$tmpkey]) : $tmpvalue;
  9.         }
  10. }
  11. /*
  12. * modified by aiview 2009/6/23 2:14
  13. */
复制代码
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-23 14:35:14 | 显示全部楼层
本帖最后由 aiview 于 2009-6-23 14:41 编辑

请对照修改后的文件,先备份。
直接传修改好的文件。
覆盖后模型重新选择下default模版就可以了。如果你原来修改模型模版了请备份好,以免丢失。
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-23 14:38:50 | 显示全部楼层
系统设置:
站点链接URL方式:简短通用模式或者简短Apache,只要是简短模式。
站点链接URL后缀:.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

回复

使用道具 举报

 楼主| aiview 发表于 2009-6-23 14:46:16 | 显示全部楼层
本帖最后由 aiview 于 2009-6-23 14:47 编辑

下一个教程将解决模型字段连贯搜索。
何谓连贯搜索:如价格:10~50 50~100  推荐:是  否
点击搜索价格“10~50” 同时点击推荐为“是”的内容。依次内推,连贯的过滤搜索即简称连贯搜索。
请期待!
回复

使用道具 举报

antdk 发表于 2009-6-23 15:29:16 | 显示全部楼层
经测试可行,加分鼓励。
回复

使用道具 举报

sunj85 发表于 2009-6-23 15:37:21 | 显示全部楼层
本帖最后由 sunj85 于 2009-6-23 15:39 编辑

非常感谢,支持楼主!~~

---------------------
能否整个模型自定义搜索的教程,现在的模型的系统字段自由度太低,不能参与排序和定义。
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-23 17:38:18 | 显示全部楼层
  谢谢鼓励。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 03:34 , Processed in 0.044759 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表