zoukankan      html  css  js  c++  java
  • 织梦分类信息联动地区伪静态+apache伪静态规则

    dedecms织梦分类信息联动地区伪静态+apache伪静态规则,需要的同学可以看看,由于改动多,需要对比修改的同学可以用【Beyond Compare】软件来修改

    apache 分类信息联动地区伪静态规则

    RewriteRule ^category/list-(-[0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ /plus/list.php?channelid=$1&tid=$2&nativeplace=$3&infotype=$4
    RewriteRule ^category/list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ /plus/list.php?tid=$1&TotalResult=$2&nativeplace=$3&infotype=$4&PageNo=$5

    /include/taglib/infolink.lib.php  整个文件修改为

    <?php   if(!defined('DEDEINC')) exit('Request Error!');
    /**
     * 分类信息地区与类型快捷链接
     *
     * @version        $Id: infolink.lib.php 1 9:29 2010年7月6日Z tianya $
     * @package        DedeCMS.Taglib
     * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
     * @license        http://help.dedecms.com/usersguide/license.html
     * @link           http://www.dedecms.com
     */
     
    /*>>dede>>
    <name>分类信息地区与类型快捷链接</name>
    <type>全局标记</type>
    <for>V55,V56,V57</for>
    <description>调用分类信息地区与类型快捷链接</description>
    <demo>
    {dede:infolink /}
    </demo>
    <attributes>
    </attributes> 
    >>dede>>*/
     
    require_once(DEDEINC.'/enums.func.php');
    require_once(DEDEDATA.'/enums/nativeplace.php');
    require_once(DEDEDATA.'/enums/infotype.php');
    
    function lib_infolink(&$ctag,&$refObj)
    {
        global $cfg_rewrite,$dsql,$nativeplace,$infotype,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
        global $em_nativeplaces,$em_infotypes;
        
        //属性处理
        //$attlist="row|12,titlelen|24";
        //FillAttsDefault($ctag->CAttribute->Items,$attlist);
        //extract($ctag->CAttribute->Items, EXTR_SKIP);
        
        $cmspath = ( (empty($cfg_cmspath) || !preg_match("#/$#", $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath );
        $baseurl = preg_replace("#/$#", '', $cfg_mainsite).$cmspath;
        
        $smalltypes = '';
        if( !empty($refObj->TypeLink->TypeInfos['smalltypes']) ) {
            $smalltypes = explode(',', $refObj->TypeLink->TypeInfos['smalltypes']);
        }
        
        if(empty($refObj->Fields['typeid'])) {
            $row = $dsql->GetOne("SELECT id FROM `#@_arctype` WHERE channeltype='-8' And reid = '0' ");
            $typeid = (is_array($row) ? $row['id'] : 0);
        }
        else {
            $typeid = $refObj->Fields['typeid'];
        }
        
        $innerText = trim($ctag->GetInnerText());
        if(empty($innerText)) $innerText = GetSysTemplets("info_link.htm");
        $ctp = new DedeTagParse();
        $ctp->SetNameSpace('field','[',']');
        $ctp->LoadSource($innerText);
    
        $revalue = $seli = '';
        $channelid = ( empty($refObj->TypeLink->TypeInfos['channeltype']) ? -8 : $refObj->TypeLink->TypeInfos['channeltype'] );
        
        $fields = array('nativeplace'=>'','infotype'=>'','typeid'=>$typeid,
                        'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'');
        
        $fields['nativeplace'] = $fields['infotype'] = '';
        
    	
    	//伪静态
    	if($cfg_rewrite == 'Y')
    	{
    		$rwlinkallplace = "/category/list-".$channelid."-".$typeid."-".$infotype."-0.html";
    		$fields['linkallplace'] = "<a href='{$rwlinkallplace}'>不限</a>";
    	}
    	else
    	{
    		$fields['linkallplace'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$infotype}'>不限</a>";
    	}
    	//伪静态
    	if($cfg_rewrite == 'Y')
    	{
    		$rwlinkalltype = "/category/list-".$channelid."-".$typeid."-".$nativeplace."-0.html";
    		$fields['linkalltype'] = "<a href='{$rwlinkalltype}'>不限</a>";
    	}
    	else
    	{
    		$fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>不限</a>";
    	}
        
        //地区链接
        if(empty($nativeplace))
        {
            foreach($em_nativeplaces as $eid=>$em)
            {
                if($eid % 500 != 0) continue;
    			//伪静态
    			if($cfg_rewrite == 'Y')
    			{
    				$rwnativeplace = "/category/list-".$channelid."-".$typeid."-".$eid."-".$infotype.".html";
    				$fields['nativeplace'] .= "<a href='{$rwnativeplace}'>{$em}</a>";
    			}
    			else
    			{
    				$fields['nativeplace'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$eid}&infotype={$infotype}'>{$em}</a>
    ";
    			}
            }
        }
        else
        {
            $sontype = ( ($nativeplace % 500 != 0) ? $nativeplace : 0 );
            $toptype = ( ($nativeplace % 500 == 0) ? $nativeplace : ( $nativeplace-($nativeplace%500) ) );
    		//2011-6-21 修改地区列表的一个小空格 论坛http://bbs.dedecms.com/371492.html(by:织梦的鱼)
    		//伪静态
    		if($cfg_rewrite == 'Y')
    		{
    			$rwnativeplace = "/category/list-".$channelid."-".$typeid."-".$toptype."-".$infotype.".html";
    			$fields['nativeplace'] = "<a href='{$rwnativeplace}'> <b>{$em_nativeplaces[$toptype]}</b></a> &gt;&gt; ";
    		}
    		else
    		{
    			$fields['nativeplace'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$toptype}&infotype={$infotype}'> <b>{$em_nativeplaces[$toptype]}</b></a> &gt;&gt; ";
    		}
            foreach($em_nativeplaces as $eid=>$em)
            {
                if($eid < $toptype+1 || $eid > $toptype+499) continue;
                if($eid == $nativeplace) {
                    $fields['nativeplace'] .= " <b>{$em}</b>
    ";
                }
                else {
    				//伪静态
    				if($cfg_rewrite == 'Y')
    				{
    					$rwnativeplace = "/category/list-".$channelid."-".$typeid."-".$eid."-".$infotype.".html";
    					$fields['nativeplace'] .= "<a href='{$rwnativeplace}'>{$em}</a>
    ";
    				}
    				else
    				{
    					$fields['nativeplace'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$eid}&infotype={$infotype}'>{$em}</a>
    ";
    				}
              }
          }
        }
        //小分类链接
        if(empty($infotype) || is_array($smalltypes))
        {
            
            foreach($em_infotypes as $eid=>$em)
            {
                if(!is_array($smalltypes) && $eid % 500 != 0) continue;
                if(is_array($smalltypes) && !in_array($eid, $smalltypes)) continue;
                if($eid == $infotype) 
                {
                    $fields['infotype'] .= " <b>{$em}</b>
    ";
                }
                else {
    				//伪静态
    				if($cfg_rewrite == 'Y')
    				{
    					$rwinfotype = "/category/list-".$channelid."-".$typeid."-".$eid."-".$nativeplace.".html";
    					$fields['infotype'] .= " <a href='{$rwinfotype}'>{$em}</a>
    ";
    				}
    				else
    				{
    					$fields['infotype'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$eid}&nativeplace={$nativeplace}'>{$em}</a>
    ";
    				}
    
                }
            }
        }
        else
        {
            $sontype = ( ($infotype % 500 != 0) ? $infotype : 0 );
            $toptype = ( ($infotype % 500 == 0) ? $infotype : ( $infotype-($infotype%500) ) );
    		//伪静态
    		if($cfg_rewrite == 'Y')
    		{
    			$rwinfotype = "/category/list-".$channelid."-".$typeid."-".$toptype."-".$nativeplace.".html";
    			$fields['infotype'] .= "<a href='{$rwinfotype}'><b>{$em_infotypes[$toptype]}</b></a> &gt;&gt; ";
    		}
    		else
    		{
    			$fields['infotype'] .= "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$toptype}&nativeplace={$nativeplace}'><b>{$em_infotypes[$toptype]}</b></a> &gt;&gt; ";
    		}
            foreach($em_infotypes as $eid=>$em)
            {
                if($eid < $toptype+1 || $eid > $toptype+499) continue;
                if($eid == $infotype) {
                    $fields['infotype'] .= " <b>{$em}</b>
    ";
                }
                else {
    				//伪静态
    				if($cfg_rewrite == 'Y')
    				{
    					$rwinfotype = "/category/list-".$channelid."-".$typeid."-".$eid."-".$nativeplace.".html";
    					$fields['infotype'] .= "<a href='{$rwinfotype}'><b>{$em_infotypes[$toptype]}</b></a> &gt;&gt; ";
    				}
    				else
    				{
    					$fields['infotype'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&infotype={$eid}&nativeplace={$nativeplace}'>{$em}</a>
    ";
    				}
                    
              }
          }
        }
        
        
        if(is_array($ctp->CTags))
        {
            foreach($ctp->CTags as $tagid=>$ctag)
            {
                if(isset($fields[$ctag->GetName()])) {
                    $ctp->Assign($tagid,$fields[$ctag->GetName()]);
                }
            }
            $revalue .= $ctp->GetResult();
        }
        
        return $revalue;
    }

    打开/include/arc.sglistview.class.php 找到

    $row['ismake'] = 1;

    改成

    $row['ismake'] = -1;

    继续找到

    global $nativeplace,$infotype,$keyword;

    改成

    global $cfg_rewrite,$nativeplace,$infotype,$keyword;

    继续找到

    $geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&nativeplace=$nativeplace&infotype=$infotype&keyword=".urlencode($keyword)."&";

    改成

    // 如果开启为静态,则对规则进行替换
    if($cfg_rewrite == 'Y')
    {
        $nowurls = preg_replace("/-/", ".php?", $purl);
        $nowurls = explode("?", $nowurls);
        $purl = $nowurls[0];
    }
    $geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&nativeplace=$nativeplace&infotype=$infotype&";

    最后找到

    $plist = $indexpage.$prepage.$listdd.$nextpage.$endpage;

    改成

    $plist = $indexpage.$prepage.$listdd.$nextpage.$endpage;
    if($cfg_rewrite == 'Y')
    {
        $plist = str_replace('.php?tid=', '-', $plist);
        $plist = str_replace('&TotalResult=', '-', $plist);
        $plist = str_replace('&nativeplace=', '-', $plist);
        $plist = str_replace('&infotype=', '-', $plist);
        $plist = preg_replace("/&PageNo=(d+)/i",'-\1.html',$plist);
    }
  • 相关阅读:
    HDU-1102 Constructing Roads ( 最小生成树 )
    POJ-1287 Networking ( 最小生成树 )
    HDU-1272 小希的迷宫 ( 并查集 )
    Java基本数据类型、关键字
    观察者模式
    Android系统启动过程分析
    Activity启动过程源码分析(Android 8.0)
    Okhttp解析—Okhttp概览
    Okhttp解析—Interceptor详解
    Okhttp源码分析--基本使用流程分析
  • 原文地址:https://www.cnblogs.com/dedehtml/p/9901292.html
Copyright © 2011-2022 走看看