PHPCMS 利用联动菜单实现分类筛选功能

第一次发,当然功能也是不全,各位看情况学习吧。
PHPCMS 利用联动菜单实现分类筛选功能_第1张图片
扩展-》联动菜单内添加前台分类联动菜单
PHPCMS 利用联动菜单实现分类筛选功能_第2张图片
添加二级菜单栏,确定栏目ID。以此ID来判断文章来源
PHPCMS 利用联动菜单实现分类筛选功能_第3张图片
在模型内添加字段,即联动菜单分类。
PHPCMS 利用联动菜单实现分类筛选功能_第4张图片
定义字段,添加指定的联动菜单选项。
PHPCMS 利用联动菜单实现分类筛选功能_第5张图片
在设定模型后,添加文章页时,选择联动菜单选项,即分类。

以上为后台操作部分。
根据你提供的文件分别将CSS/JS/IMAGES放到\statics下的CSS/JS/IMAGES文件下,并命名文件以区分。
PHPCMS 利用联动菜单实现分类筛选功能_第6张图片
以上放置好后,即可以修改list_bank.html文件(我将文件放置在\phpcms\templates\default\content\list_bank.html,即模型列表页这个可以在config.php内添加修改)
具体内容可以参考文件修改JS/CSS/IMAGE路径

以上是准备工作后面就是代码修改的部分

首先思路是在前台页面用PHPCMS内置SQL语句检索linkage表内的分类栏目
PHPCMS 利用联动菜单实现分类筛选功能_第7张图片
并渲染在前台上,并利用栏目的ID:linkageid来检索后面的文章内容详情

    
            {pc:get sql="SELECT * FROM  `dp_linkage` WHERE keyid=0 AND linkageid!=1 ORDER BY listorder ASC" num="30" return="smenu" }
            {loop $smenu $n $m}
            <div id="yh-licai-cp">
                <div class="bank-product-type">
                    <div>
                        <strong>{$m['name']}:strong>
                        
                        {pc:get sql="SELECT * FROM  `dp_linkage` WHERE keyid=$m[linkageid]  ORDER BY listorder ASC" num="100" return="tmenu" }
                        {loop $tmenu $n $r}
                        <a href="javascript:;" id="{$r['linkageid']}" class="">{$r['name']}a>
                        {/loop}
                        {/pc}
                    div>
                div>
            div>
            {/loop}
            {/pc}

数据渲染后开始JS部分。其中思路是首先获取栏目ID利用AJAX将参数传至后台进行操作

$(document).ready(function(){
    $(".bank-product-type a").click(function(){
        var index =$(this).attr("id");
        /*注意:这儿应该是设置(attr)样式,而不是添加样式(addClass),
         不然后面通过$("#filter a[class='seled']")访问不到class样式为seled的a标签。*/
        var src = $(this).find('img').attr('src');
        var str = '';//选中后图片显示路径

        if(src == undefined){//点击、取消事件
            $(this).parent().find('a').removeClass('selected').find('img').remove();
            $(this).addClass('selected').append(str);
        }else{
            $(this).removeClass('selected').find('img').remove();
        }
        var ajaxurl = '/zdemophpcms/index.php?m=content&c=index&a=public_linkage';
        var query = {'aclass':RetSelecteds()};//获取点击标签内ID集合
        $.ajax({
            url: ajaxurl,
            data: query,
            type: 'get',
            contentType: 'application/json;charset=utf-8',
            success: function(data) {
                if (data) {
                    alert(data);
                    for(var x in data){
                        html_str += '
  • '+ x.content+'
  • '
    ; html_str += '
  • '+ x.ptmc+'
  • '
    ; } $(".hot-bank-product ul :eq(1)").html(html_str); }else{ //alert('提交失败'); } } }); }); //点击展开全部平台 $("#platform_all").click(function(){ var str = $(".platform_two").css('display'); var style = str == 'none' ? 'block' : 'none'; $(".platform_two").css('display',style); }); //点击取消 $(".bank-product-type a.selected img").click(function(){ var index = $(this).parent().index(); //这个index是想知道,用户点的是哪一个筛选栏目 $(this).remove(); }); //获取标签ID值 function RetSelecteds() { var result = ""; $("a[class='selected']").each(function () { result += $(this).attr('id')+","; }); return result; } });

    这里是将参数传至\phpcms\modules\content\index.php方法

       //联动菜单 JSON 输出
        public function public_linkage() {
            if($_GET['aclass']) {
                $aclass['id'] = explode(',',rtrim($_GET['aclass'],','));//分割参数为数组
                if(!empty($aclass)){
                    $sql = "SELECT * FROM dp_tiaoshi_data t LEFT JOIN dp_tiaoshi s ON t.id=s.id WHERE ptmc IN(".rtrim($_GET['aclass'],',').")";
                    $this->db->query($sql);
                    $arr = $this->db->fetch_array();
                    if(!empty($arr)){
                        foreach($arr as $key => $val){
                            $new_class[] = $val;
                        }
                    }
                    echo json_encode($new_class);
                }
            }else{
                exit('0');
            }
        }

    在文件最添加这个方法,最后测试后前台得到JSON格式数据结果集。
    以上就是实现功能,当然结果并没有完善但整个的思路已经很清楚了,方便各位参考学习!

    你可能感兴趣的:(PHPCMS)