织梦分类信息模型增加自定义联动模型选择!

其实也比较简单!

先在模型下增加联动模型字段,

image.png

没有联动模型选项,可以在本站教程内找到!

然后需要改动文件

  • include/arc.sglistview.class.php

  • include/taglib/infolink.lib.php

  • list.php

首先我们调用方法为

 {dede:infolinks}
<dl>
                <dt>视频分类:</dt>
                <dd>
                    <span>[field:linkallshiping/]</span>
                   [field:shiping /]
                </dd>
            </dl>
                  <dl>
                <dt>课程分类:</dt>
                <dd>
                    <span>[field:linkallkecheng/]</span>
                  [field:kecheng /]
                </dd>
            </dl>
            {/dede:infolinks}

我的只调用了一级,没有二级

image.png

1、打开/plus/list.php

这个文件是传递参数的,我们需要修改把联动模型选中后的参数传递过去

找到

if($tinfos['issystem']==-1)
{
    $nativeplace = ( (empty($nativeplace) || !is_numeric($nativeplace)) ? 0 : $nativeplace );
    $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );
    if(!empty($keyword)) $keyword = FilterSearch($keyword);
    $cArr = array();
    if(!empty($nativeplace)) $cArr['nativeplace'] = $nativeplace;
    if(!empty($infotype)) $cArr['infotype'] = $infotype;

复制下  

 if(!empty($infotype)) $cArr['infotype'] = $infotype;

改成自己的联动模型名字即可

image.png


2、打开include/arc.sglistview.class.php

首先我们要明白这个文件是生成列表的,那么我们只需要在他的sql查询语句内加入我们自定义的联动模型即可

很简单

找到

$naddQuery = '';
        //地区与信息类型条件
        if(count($this->searchArr) > 0)
        {

image.png

就是把

if(!empty($this->searchArr['nativeplace']))
            {
                if($this->searchArr['nativeplace'] % 500 ==0 )
                {
                    $naddQuery .= " AND arc.nativeplace >= '{$this->searchArr['nativeplace']}' AND arc.nativeplace < '".($this->searchArr['nativeplace']+54)."'";
                }
                else
                {
                    $naddQuery .= "AND arc.nativeplace = '{$this->searchArr['nativeplace']}'";
                }
            }

复制一遍,把名字改成自己需要的模型组名即可

3、打开include/taglib/infolink.lib.php 

这个是生成选项框的连接和名字的,默认其实是假如选了免费视频,视频分类下就变成免费视频下分类了,但是我的不需要,所以取消掉了!

image.png

首先引入php文件 联动模型都缓存在/data/enums/文件夹内,需要引入

image.png

增加全部按钮,复制上面的改下就行了,

  $fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&nativeplace={$nativeplace}'>全部</a>";
    $fields['linkallshiping'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&kecheng={$kecheng}'>全部</a>";
    $fields['linkallkecheng'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$shiping}'>全部</a>";

这里需要注意的是如果是linkallkecheng 那么就在后面连接不要加这个参数,而非加这个参数

然后复制一遍

image.png

地区的就行了,我的需要了显示子集,只显示一级,选了一级后不选2级,如果你需要二级 就复制if(empty($nativeplace)){...} 即可,不需要二级就复制我的,批量替换shiping即可!

 if(empty($shiping))
    {
        foreach($em_shipings as $eid=>$em)
        {
            if($eid % 500 != 0) continue;
            $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&kecheng={$kecheng}'>{$em}</a>\r\n";
        }
    }
    else
    {
        $sontype = ( ($shiping % 500 != 0) ? $shiping : 0 );
        $toptype = ( ($shiping % 500 == 0) ? $shiping : ( $shiping-($shiping%500) ) );
        //取消默认的第一个
       // $fields['shiping'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$toptype}&infotype={$infotype}'> <b>{$em_shipings[$toptype]}</b></a> &gt;&gt; ";
          foreach($em_shipings as $eid=>$em)
        {
            if($eid % 500 != 0) continue;
            if($eid == $shiping) {
                $fields['shiping'] .= " <b>{$em}</b>\r\n";
            
            }else{
            $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&kecheng={$kecheng}'>{$em}</a>\r\n";}
        }
        /*取消子集
        foreach($em_shipings as $eid=>$em)
        {
            if($eid < $toptype+1 || $eid > $toptype+499) continue;
            if($eid == $shiping) {
                $fields['shiping'] .= " <b>{$em}</b>\r\n";
            }
            else {
                $fields['shiping'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&shiping={$eid}&infotype={$infotype}'>{$em}</a>\r\n";
          }
      }
      */
    }


相关内容

发表评论

验证码:
点击我更换图片

最新评论