首页 >

织梦DedeCMS图片联动筛选教程

这标题起的好像不太好理解,什么是使用图片联动筛选?正常织梦的联动筛选是如下图所示:

织梦DedeCMS图片联动筛选教程

织梦DedeCMS图片联动筛选教程

现在要实现的目标是把第一行筛选变成用图片代替文本的筛选

若不会织梦DedeCMS筛选,请看教程:https://www.liuzhongwei.com/a/dedejq/9143.html

思路:

思路1:可不可以在添加字段时直接使用作为筛选的字段值?这是一个网友问题这个问题时,第一时间想到的,但是,经过测试这样不可以。

思路2:可不可以根据生成的筛选链接直接在模板里面添加,代码如下所示:

织梦DedeCMS图片联动筛选教程

复制代码

这样看上去就可以了,但是,要注意这样就把筛选写死了,而筛选是动态的,也就是选择不同的颜色就会有不同的内容,而且,还与下面的”类型”筛选是联动的,所以,固定好只能筛选一次,这种方法行不通。

思路3:上面两种方法试了以后,那接下来唯一要做的就是要修改php代码了,在include目录里面找到文件extend.func.php(这个文件是已经二次开发过的具体的代码请看上面给的教程连接),找到函数AddFilter($channelid, $type=1, $fieldsnamef, $defaulttid, $loadtype=’autofield’)

在前网页前台看到的筛选连接就是这个函数生成的,所以,只要改这个函数就可以了。

找到代码:switch ($type)

把这个switch里面的代码全部替换成如下代码:

switch ($type) {                    case 1:                        $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? 'GetName()."=".$fields_value,"",$filterarr).'">全部' : '全部').' ';                                            $addonfields_items = explode(",",$ctag->GetAtt('default'));                        for ($i=0; $iGetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);//echo $href;                            $dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '织梦DedeCMS图片联动筛选教程' : '织梦DedeCMS图片联动筛选教程')." ";                        }                        $dede_addonfields .= '
'; break; case 2: $dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? 'GetName()."=".$fields_value,"",$filterarr).'">全部' : '全部').' '; $addonfields_items = explode(",",$ctag->GetAtt('default')); for ($i=0; $iGetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]);//echo $href; $dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? ''.$addonfields_items[$i].'' : ''.$addonfields_items[$i].'')." "; } $dede_addonfields .= '
'; break; }

已经成功实现了,上面的”全部”和第一张图片不显示,不是因为不对,而是没有添加上图片,只加了三张图片,NI可以找到相应的图片,直接放到根目录即可。

“全部”可以在上面的代码把全部替换成即可,可以参考上面替换好的:

织梦DedeCMS图片联动筛选教程

注意:

NI的图片必须以00.jpg,01.jpg这样的顺序起名;

图片请放在根目录里面,如果NI想放到根目录里面其它目录里面,请修改上面的图片路径。

模板调用请使用如下方式:

{dede:php} AddFilter(1,1,’yanse’); {/dede:php}

{dede:php} AddFilter(1,2,’leixing’); {/dede:php}

其中,AddFileter(1,1,’yanse’)这里面的第二个数值代表不同的筛选链接,1表示使用图片,2表示文本链接,可以根据需要进行设置。

如果都使用图片怎么设置,也不难,只需要把上面的case 1:复制一份放到case 2下面并起名为case3,然后,调用方式为:

{dede:php} AddFilter(1,3,’leixing’); {/dede:php}

复制代码

这样就二个筛选就可以使用图片了。



织梦DedeCMS图片联动筛选教程
  • 织梦DedeCMS后台文章无法编辑显示空白的搞定方式
  • 织梦DedeCMS后台文章无法编辑显示空白的搞定方式 | 织梦DedeCMS后台文章无法编辑显示空白的搞定方式 ...

    织梦DedeCMS图片联动筛选教程
  • 解决织梦DedeCMS调用问答、会员模版头部调用
  • 解决织梦DedeCMS调用问答、会员模版头部调用 | 解决织梦DedeCMS调用问答、会员模版头部调用 ...

    织梦DedeCMS图片联动筛选教程
  • dedecms路径,实际上却很厉害的软件 - dedeCMS - 前端|
  • dedecms路径,实际上却很厉害的软件 - dedeCMS - 前端| | dedecms路径,实际上却很厉害的软件 - dedeCMS - 前端| ...