织梦DedeCms联动筛选[伪静态版 – 单链接形式]
DedeCms织梦联动筛选[伪静态版 - 单链接形式],网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值呈现,让筛选URL与静态保持一致
演示效果
DedeCms的织梦联动筛选[伪静态版],网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值呈现,让筛选URL与静态保持一致。如:
静态栏目页
http://www.123.com/juji/
静态栏目页分页
http://www.123.com/juji/list_1_ 2.html
伪静态筛选页
http://www.123.com/juji/list_1_ AREA_ 0.html
伪静态筛选分页
http://www.123.com/juji/list_1_ area_ 0_ 2.html
【警告】
操作之前先备份你的程序这2个文件。
\ include \ arc.listview.class.php
\ include \ extend.func.php
edecms织梦联动筛选[伪静态版 - 单链接形式]打包下载
密码: dbm3
安装说明
1.选择对应的编码,把文件夹文件全部覆盖到对应目录;
2.后台 - 系统配置添加变量
变量名称:cfg_rewritea
变量类型:布尔(Y / N)
参数说明:筛选a静态
变量值:Y
所属组:站点设置
3.后台 - 系统 - 系统设置 - 系统基本参数 - 其他选项 - 禁用模板标签,把php删除后保存;
4.后台 - 核心 - 频道模型 - 内容模型管理
找到您要设置筛选的模型,这里以“普通文章”为例,点击右边的编辑按钮,在出来的页面中切换到“字段管理”,点击“添加新字段”,填写的时候注意“数据类型”选择【使用选项框下拉】;
5.添加文档,选择对应的筛选,已经添加的文档需要重新编辑,选择对应的筛选;
6.htaccess为apache伪静态,放在网站根目录,用于筛选伪静态使用,iis和nginx用户自行转换。
7.设置网站整站为静态,生成,浏览网站带筛选的栏目,看效果。
调用说明
在需要显示筛选的地方加入(手机版也一样)
{dede:php}AddFilter(模型ID号,类型,"字段1");{/dede:php}
例:
{dede:php}AddFilter(1,1,"area");{/dede:php}
多个字段用半角逗号分隔
{dede:php}AddFilter(模型ID号,类型,"字段1,字段2,字段3");{/dede:php}
例:
{dede:php}AddFilter(1,1,"area,type,time");{/dede:php}
title标题添加筛选文字进去
<title>{dede:field.time/} {dede:field.area/} {dede:field.type/} - {dede:field.title/} - {dede:global.cfg_webname/}</title>
内容页输出所属筛选值+链接(支持动态/伪静态)
实现教程
打开 \include\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 `SzsFox_archives` where id='$id' ");
$channelid = $arcrow['channel'];
$tid = $arcrow['typeid'];
$typerow = $dsql->GetOne(" Select typedir From `SzsFox_arctype` where id='$tid' ");
$typedir = MfTypedir($typerow["typedir"]);
$channelrow = $dsql->GetOne("SELECT addtable FROM SzsFox_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 `SzsFox_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')/]
1.本站主要是为了记录工作、学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。