zoukankan      html  css  js  c++  java
  • 织梦联动筛选伪静态[单链接形式]

    伪静态URL

    网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值呈现,让筛选URL与静态保持一致。

    如:

    静态栏目页

    http://www.dedehtml.com/juji/

    静态栏目页分页

    http://www.dedehtml.com/juji/list_1_2.html

    伪静态筛选页

    http://www.dedehtml.com/juji/list_1_area_0.html

    伪静态筛选分页

    http://www.dedehtml.com/juji/list_1_area_0_2.html

    【警告】
    操作之前先备份你的程序这2个文件。
    /include/arc.listview.class.php
    /include/extend.func.php

    织梦联动筛选伪静态[单链接形式]+伪静态规则 打包下载

    链接: https://pan.baidu.com/s/1649Ww8iRSO1nKv1hopsiWw 密码: acna

    使用说明

    Ps:如果你的网站已经做了筛选功能的,请对比一下我的文件来修改再使用。

    1. 选择对应的编码,把文件夹文件全部覆盖到对应目录;

    2. 后台-系统配置 添加变量
        变量名称:cfg_rewritea
        变量类型:布尔(Y/N)
        参数说明:筛选伪静态
        变量值:Y
        所属组:站点设置

    3. .htaccess 为apache伪静态,放在网站根目录,用于筛选伪静态使用,iis和nginx用户自行转换。

    4. 设置网站整站为静态,生成,浏览网站带筛选的栏目,看效果。

    内容页输出所属筛选值+链接(支持动态/伪静态)

    打开 /nclude/extend.func.php 在最下面加入

    /**
     *  内容页输出所属筛选值+链接
     *
     * @access    public
     * @param     string  $id	文档id
     * @param     string  $fieldsnamef	单个筛选字段
     * @return    string
     */
    function GetFilterUrl($id,$fieldsnamef)
    {
    	global $dsql,$cfg_cmspath,$cfg_rewritea;
    	if (!isset($id) && !is_numeric($id))
    	{
    		return '';
    	}
    	else
    	{
    		$arcrow = $dsql->GetOne(" Select typeid,channel From `#@_archives` where id='$id' ");
    		$channelid = $arcrow['channel'];
    		$tid = $arcrow['typeid'];
    		$typerow = $dsql->GetOne(" Select typedir From `#@_arctype` where id='$tid' ");
    		$typedir = MfTypedir($typerow["typedir"]);
    		
    		$channelrow = $dsql->GetOne("SELECT addtable FROM #@_channeltype where id='$channelid'");
    		$addtable = trim($channelrow['addtable']);
    
    		$fieldrow = $dsql->GetOne("SELECT $fieldsnamef FROM `$addtable` WHERE aid=$id");
    	}
    	$plist = $_SERVER['HTTP_X_REWRITE_URL'] ? string_filter($_SERVER['HTTP_X_REWRITE_URL']) : string_filter($_SERVER['REQUEST_URI']);
    	if($cfg_rewritea == 'Y')
    	{
    		$plist = stripos($plist, "makehtml_list_action.php") ? $cfg_cmspath.$typedir.'/' : $plist;
    		$filterarr = string_filter(stripos($plist, ".html") ? str_replace(".html", "", $plist) : $cfg_cmspath.$typedir.'/');
    	}
    	else
    	{
    		$nofilter = (isset($_REQUEST['TotalResult']) ? "&TotalResult=".$_REQUEST['TotalResult'] : '').(isset($_REQUEST['PageNo']) ? "&PageNo=".$_REQUEST['PageNo'] : '');
    		$filterarr = string_filter(stripos($plist, "list.php?tid=") ? str_replace($nofilter, '', $plist) : $GLOBALS['cfg_cmsurl']."/plus/list.php?tid=".$tid);
    	}
    
    	$cInfos = $dsql->GetOne(" Select * From  `#@_channeltype` where id='$channelid' ");
    	$fieldset = $cInfos['fieldset'];
    	$dtp = new DedeTagParse();
        $dtp->SetNameSpace('field','<','>');
        $dtp->LoadSource($fieldset);
        $result = '';
        if(is_array($dtp->CTags))
        {
    		foreach($dtp->CTags as $tida=>$ctag)
            {
                $field_name = $ctag->GetName();
    			$fieldsname = $fieldsnamef ? explode(",", $fieldsnamef) : explode(",", $field_name);
    			if( in_array($field_name, $fieldsname))
    			{
    				if($cfg_rewritea == 'Y')
    				{
    					$href = "";
    					$addonfields_items = explode(",",$ctag->GetAtt('default'));
    
    					$i = array_search($fieldrow[$fieldsnamef],explode(",",$ctag->GetAtt('default')));
    					$filterarr1 = explode("list_", $filterarr);
    					$href = $filterarr1[0]."list_".$tid.'_'.$field_name.'_'.$i;
    
    					$href .= ".html";
    					$href = str_replace(array("_".$field_name.".",".","_".$_REQUEST['TotalResult']."_".$_REQUEST['PageNo']),array(".",".",""),$href);
    					
    					$result .= '<a href="'.$href.'">'.$addonfields_items[$i].'</a>';
    
    				}
    				else
    				{
    					$addonfields_items = explode(",",$ctag->GetAtt('default'));
    					
    					$i = array_search($fieldrow[$fieldsnamef],explode(",",$ctag->GetAtt('default')));
    					
    					$href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);
    					$href = str_replace("&TotalResult=".$_REQUEST['TotalResult']."&PageNo=".$_REQUEST['PageNo'], "", $href);
    					
    					$result .= '<a title="'.$addonfields_items[$i].'" href="'.$href.'">'.$addonfields_items[$i].'</a>';
    				}
    			}
            }
        }
    	return $result;
    }

    内容页模板中调用标签

    <small>区域:</small>{dede:field.id function=GetFilterUrl(@me,'area')/}
    <small>地铁:</small>{dede:field.id function=GetFilterUrl(@me,'subway')/}

    标红的地方是你的筛选字段名

    首页/列表页调用标签

    区域:[field:id function=function=GetFilterUrl(@me,'area')/]

    地铁:[field:id function=function=GetFilterUrl(@me,'subway')/]

  • 相关阅读:
    What Apache ZooKeeper is and when should it be used?
    基于Apache Curator框架的ZooKeeper使用详解
    Curator典型应用场景之Master选举
    Curator典型应用场景之事件监听
    Curator典型应用场景之分布式锁
    Zookeeper原生Java API、ZKClient和Apache Curator 区别对比
    IntelliJ IDEA oneline function formatting
    Converting a List to String in Java
    UNIAPP 微信小程序做H5 PDF预览
    Git 常用命令,持续更新
  • 原文地址:https://www.cnblogs.com/dedehtml/p/9913822.html
Copyright © 2011-2022 走看看