1在模型中添加多选或者单选后生成搜索选项
/* * 获取搜索项 */ public function getsearch($modelid){ import(‘Field‘,INCLUDE_PATH); if($modelid == 2 || $modelid ==3){ $_mField = D(‘ModelField‘); $search_data = $_mField->field(‘field,name,formtype,setting‘)->where("`modelid`=‘{$modelid}‘ AND (`field`=‘proroom‘ OR `field`=‘protype‘ OR `field`=‘prostyle‘) AND `systype`<>‘2‘ AND `status`=‘1‘ ")->order(‘ `sort` ASC‘)->findAll(); if($search_data){ foreach ($search_data as $k=>$v){ $search_data[$k][‘setting‘] = eval ( "return {$v[‘setting‘]};" ); $search_data[$k][‘setting‘][‘option‘] = explode("\n",$search_data[$k][‘setting‘][‘option‘]); foreach($search_data[$k][‘setting‘][‘option‘] as $opk=>$opv){ $search_data[$k][‘setting‘][‘option‘][$opk] = substr($opv,strpos($opv,"|")+1); } } $this->assign(‘search_data‘,$search_data); } } }
2在IIS下的路径重写
iis地址重写需要把front/common/common.php中的以下函数替换成:
/** * 分析当前的访问地址,查找出对应的栏目以及控制器 * @param */ function parse_module () { $var_module = C(‘VAR_MODULE‘); $var_action = C(‘VAR_ACTION‘); //去掉 "/xxx/index.php/" $php_self = safe_replace($_SERVER[‘PHP_SELF‘]); //$query_script = substr($php_self,strlen(__ROOT__) + 11); //修改时间 2011-11-1 mark ,用于url带参数效果。 $query_script = substr($_SERVER[‘REQUEST_URI‘],strlen(__ROOT__)+1); $query_script = str_replace(‘index.php/‘,‘‘,$query_script); //$query_script = str_replace(__ROOT__.‘/‘,‘‘,$query_script); $query_script = str_replace(‘//‘,‘/‘,$query_script); $url_suffix = C(‘URL_HTML_SUFFIX‘); if (!empty($query_script) && $query_script!=(‘index‘.$url_suffix) ) { if (strpos($query_script,‘/‘)) { //分析url取得栏目文件夹名称,根据文件夹文件查找所属分类 $param = explode(‘/‘,$query_script); } else { $param[0] = $query_script; } array_remove_empty($param); $_category = D (‘Category‘); //$param[0] 为栏目文件夹名称 if (substr($param[0],-strlen($url_suffix)) == $url_suffix) { //根据$param查找栏目ID(单页) //检查 $param[0]中是否有分页分隔符 "_",如果有,则去掉分页数字以及前面的 ‘_‘ ,得到栏目的正确url if (strpos($param[0],‘_‘)) { $page_param = explode(‘_‘,$param[0]); $page = str_replace($url_suffix,‘‘,array_pop($page_param)); if (is_numeric($page) && $page>0) { $caturl = str_replace(‘_‘.$page,‘‘,$param[0]); } } else { $caturl = &$param[0]; } $category_data = $_category->field("`catid`")->where("`url`=‘{$caturl}‘ AND `type`<>‘link‘")->find(); $param = ‘‘; $request_file = $query_script; //请求的文件地址 } else { //根据catdir查找栏目ID $category_data = $_category->field("`catid`")->where("`catdir`=‘{$param[0]}‘")->find(); array_shift($param); if (strpos($query_script,$url_suffix)) { if (__ROOT__ == ‘‘) { //根目录 $request_file = substr($_SERVER[‘REQUEST_URI‘] ,1); //请求的文件地址 } else { //非根目录 $request_file = substr($_SERVER[‘REQUEST_URI‘],strlen(__ROOT__)+1); //请求的文件地址 } } else { $request_file = rtrim(substr($_SERVER[‘REQUEST_URI‘],strlen(__ROOT__)+1),‘/‘). ‘/index‘ . $url_suffix; //请求的文件地址 } } $request_file = str_replace(‘index.php/‘,‘‘,$request_file); define(‘CATID‘,$category_data[‘catid‘] ? $category_data[‘catid‘] : 0); $category_data = F (‘category_‘.$category_data[‘catid‘]); if ($category_data[‘controller‘]) { $_POST[$var_module] = $category_data[‘controller‘]; $_GET[$var_module] = $category_data[‘controller‘]; } else { //栏目不存在,载入路由设置进行分析 Dispatcher::dispatch(); } C(‘CREATE_HTML‘,(boolean)$category_data[‘ishtml‘]); } else { $_POST[$var_module] = ‘Findex‘; $_GET[$var_module] = ‘Findex‘; $request_file = ‘index‘ . $url_suffix; //请求的文件地址 ,首页 } $request_file = str_replace(‘//‘,‘/‘,$request_file); define(‘REQUEST_FILE‘,$request_file); return ; }
原文:http://my.oschina.net/jiangchike/blog/295139