PbootCMS内容关联,可任意关联模型下的内容

PbootCMS内容关联,可任意关联模型下的内容。因客户的需求这次二开了 {pboot:list} 内容列表调用标签,经过调整实现内容关联,你可以想怎么关联就怎么关联,如果想还是关联栏目下的全部,直接把所有ID输入进去,如果想单独关联栏目下的某及几个,也直接输入ID号,并可以通过ID号先后进行排序。

第一步:在后台 全局配置 -> 模型字段 -> 扩展字段新增 添加一个用来输入多个ID的单行文本字段。   第二步:在 {pboot:list proid=”} 新增 proid 属性用来调用本产品所关联指定相关产品,相关代码如下:

<div class="row">
    {pboot:list scode=5 num=4 proid={content:ext_pro_id}}
        <div class="col-12 col-sm-6 col-lg-3 wow zoomIn" data-wow-delay="[list:i]00ms" data-wow-duration="1s">
            <div class="card">
                <div class="card-img-150">
                    <a href="[list:link]"><img class="card-img-top" src="[list:ico]" alt="[list:title]"></a>
                </div>
                <div class="card-body">
                    <h5 class="card-title"><a href="[list:link]">[list:title lencn=12]</a></h5>
                    <p class="card-text">
                        {pboot:if([list:istop]==1)}
                            <span class="badge badge-danger">置顶</span>
                        {/pboot:if}
                        {pboot:if([list:isrecommend]==1)}
                            <span class="badge badge-warning">推荐</span>
                        {/pboot:if}
                        {pboot:if([list:isheadline]==1)}
                            <span class="badge badge-info">头条</span>
                        {/pboot:if}
                        [list:content drophtml=1 dropblank=1 len=50]
                    </p>
                </div>
            </div>
        </div>
    {/pboot:list}
</div>

其中 scode=5  数字 5 代表的是所以调用关联产品所在的栏目ID,如果有多个可以用英文的逗号分割。 第三步:修改文件 apps -> home -> controller -> ParserController.php 中的 parserListLabel 解析内容列表标签函数。在 1146 行定义 $proid = ”; // ID关联 在 1229 行加入代码如下:

case 'proid':
    $proid = $value;

在 1322 行,// 判断多图调节参数 位置之上加入代码如下:

// proid ID关联
$where4 = array();
if ($proid) {
    $proid_arr = explode(',', $proid);
    foreach ($proid_arr as $value) {
        if ($value) {
            if ($fuzzy) {
                $where4[] = "a.id like '%" . $value . "%'";
            } else {
                $where4[] = "a.id='" . $value . "'";
            }
        }
    }
}

在 1392 行和 1395 行修改成如下代码:

if ($page) {
    if (isset($paging)) {
        error('请不要在一个页面使用多个具有分页的列表,您可将多余的使用page=0关闭分页!');
    } else {
        $paging = true;
        $data = $this->model->getLists($scode, $num, $order, $where1, $where2, $where3, $where4, $fuzzy, $start, $lfield);
    }
} else {
    $data = $this->model->getList($scode, $num, $order, $where1, $where2, $where3, $where4, $fuzzy, $start, $lfield);
}

第四步:修改两个函数 getLists() 和 getList(),修改文件 apps -> home -> model -> ParserModel.php ,大概在 260 行和 375 行,修改如下:

getLists 函数修改
// 未修改
public function getLists($scode, $num, $order, $filter = array(), $tags = array(), $select = array(), $fuzzy = true, $start = 1, $lfield = null, $lg = null)

// 已修改
public function getLists($scode, $num, $order, $filter = array(), $tags = array(), $select = array(), $proid = array(), $fuzzy = true, $start = 1, $lfield = null, $lg = null)


getList 函数修改
// 未修改
public function getList($scode, $num, $order, $filter = array(), $tags = array(), $select = array(), $fuzzy = true, $start = 1, $lfield = null, $lg = null)

// 已修改
public function getList($scode, $num, $order, $filter = array(), $tags = array(), $select = array(), $proid = array(), $fuzzy = true, $start = 1, $lfield = null, $lg = null)

在 365 行和 480 行处分别加入 ->where($proid, ‘OR’) 代码如下:

// 筛选条件支持模糊匹配
return parent::table('ay_content a')->field($fields)
      ->where($scode_arr, 'OR')
      ->where($where)
      ->where($select, 'AND', 'AND', $fuzzy)
      ->where($filter, 'OR')
      ->where($proid, 'OR') //关联内容条件查询
      ->where($tags, 'OR')
      ->join($join)
      ->order($order)
      ->page(1, $num, $start)
      ->decode()
      ->select();


// 筛选条件支持模糊匹配
return parent::table('ay_content a')->field($fields)
      ->where($scode_arr, 'OR')
      ->where($where)
      ->where($select, 'AND', 'AND', $fuzzy)
      ->where($filter, 'OR')
      ->where($proid, 'OR') //关联内容条件查询
      ->where($tags, 'OR')
      ->join($join)
      ->order($order)
      ->limit($start - 1, $num)
      ->decode()
      ->select();

相关说明:

1、终身VIP会员无限制任意下载,免积分。即前往开通>>

2、下载积分可通过日常 签到 以及 积分兑换 等途径获得!

3、本站资源无解压密码.

4、本站资源大多存储在云盘,如出现链接失效请评论反馈。

5、本站提供的免费源码、模板、软件工具等其他资源,均不包含技术服务,请大家谅解!资源仅供参考学习只用,请勿用于任何商业用途,请支持正版。

6、源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。

本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
南方小强 » PbootCMS内容关联,可任意关联模型下的内容

发表评论