侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130560 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

帝国CMS无限联动插件优化解决方案

2022-06-11 星期六 / 0 评论 / 0 点赞 / 110 阅读 / 3412 字

今天来跟大家谈谈轩儿出品的帝国CMS无限联动插件。这个插件虽然他已经发布很久了,可是因为开发项目一直没用到,所以之前一直没怎么关注,然后最后在开发房产网的时候,很频繁的使

今天来跟大家谈谈轩儿出品的帝国CMS无限联动插件。这个插件虽然他已经发布很久了,可是因为开发项目一直没用到,所以之前一直没怎么关注,然后最后在开发房产网的时候,很频繁的使用联动功能,所以就尝试下载了来用用,感觉确实不错。可是研究源代码发现,插件有待优化,下面我们来看看具体的问题。

联动插件效果图.jpg

联动插件效果图

这个插件有个很好的功能就是可以生成缓存文件,这样可以提高速度,我们再看看他的调用方式,代码大致如下:

<script>    var opt_pro = {        ajax: '/e/extend/yl_linkage/get.php?type=1&parentid=1',//联动类型和起始ID        select:  ['#pro','#city'],//下拉框ID        head:'请选择',//下拉框提示语        level:2,//联动级别        defVal: [<?=$pro?>,<?=$city?>]//初始值    };    new LinkageSel(opt_pro);</script>
从代码看,我们知道,它是通过AJAX技术去获取数据源,链接地址是:/e/extend/yl_linkage/get.php,接着我们去看看这个文件的源代码,
获取联动源代码.jpg

我们看到他这个是重新再次读取一遍数据库,那么缓存的功能就使用不上了,所以对此我做了小小改动,代码如下:

//如果有缓存文件,直接使用缓存文件if(file_exists(ECMS_PATH.'e/extend/yl_linkage/data/linkage_cache_'.$type.'.php')) {    require(ECMS_PATH.'e/extend/yl_linkage/data/linkage_cache_'.$type.'.php');    $arrstr = 'linkage_'.$type;    $trueArr = $$arrstr;    $sonids = $trueArr[$parentid]['zfl'];    $son_r = explode(',',$sonids);    foreach($son_r as $v){        $arr[$v] = array('name'=> $trueArr[$v]['name']);    }}else{ //没有缓存文件,只能从数据库读取了    $where = 'WHERE parentid = '.$parentid.'  and type = '.$type;    $query="select * from {$dbtbpre}extend_linkage $where order by myorder,id";    $sql=$empire->query($query);    while($row=$empire->fetch($sql)){        $arr[$row['id']] = array('name'=> $row['name']);    }}

红色字体就是修改优化过的代码,虽然简单,但还是挺有用的。大家如果觉得有用,那么就到 下载 我都整理好了。

广告 广告

评论区