宝塔面板8.2.2去首页推荐广告顶部推荐广告

文章仅供学习,不得非法用途,作者如需删除请联系管理!

宝塔面板8.2.2去首页推荐广告顶部推荐广告

要移除首页的推荐广告内容,需要修改以下几个关键函数

get_index_list() 函数中的推荐软件部分:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

      var softboxsum = 12;
      var softboxcon = '';

get_index_list() 函数中的推荐软件部分:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

          // 推荐安装软件
      try {
        var recomConfig = product_recommend.get_recommend_type(1)
        if (recomConfig) {
          var pay_status = product_recommend.get_pay_status();
          for (var i = 0; i < recomConfig['list'].length; i++) {
            var item = recomConfig['list'][i];
            if (setup_length > softboxsum) break;
            if (pay_status.is_pay && item['install']) continue;
            softboxcon += '<div class="col-sm-3 col-md-3 col-lg-3">\
              <div class="recommend-soft recom-iconfont">\
                <div class="product-close hide">关闭推荐</div>\
                <div class="images"><img src="/static/img/soft_ico/ico-'+ item['name'] + '.png"></div>\
                <div class="product-name">'+ item['title'] + '</div>\
                <div class="product-pay-btn">\
                '+ ((item['isBuy'] && !item['install']) ?
                '<button class="btn btn-sm btn-success home_recommend_btn" style="margin-left:0;" onclick="bt.soft.install(\'' + item['name'] + '\')">立即安装</button>' :
                '<a class="btn btn-sm btn-default mr5 ' + (!item.preview ? 'hide' : '') + '" href="' + item.preview + '" target="_blank">预览</a><button type="submit" class="btn btn-sm btn-success home_recommend_btn" onclick=\"product_recommend.pay_product_sign(\'ltd\',' + item.pay + ',\'' + item.pluginType + '\')\">购买</button>') + '\
                </div>\
              </div>\
            </div>'
            setup_length++;
          }
        }
      } catch (error) {
        console.log(error)
      }
      //软件位置移动
      if (setup_length <= softboxsum) {
        for (var i = 0; i < softboxsum - setup_length; i++) {
          softboxcon += '<div class="col-sm-3 col-md-3 col-lg-3 no-bg"></div>'
        }
      }
      $("#indexsoft").append(softboxcon);
      //软件位置移动
      $("#indexsoft").dragsort({ dragSelector: ".spanmove", dragBetween: true, dragEnd: saveOrder, placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>" });
      function saveOrder() {
        var data = $("#indexsoft > div").map(function () { return $(this).attr("data-id"); }).get();
        data = data.join('|');
        bt.soft.set_sort_index(data)
      };
 

这行优点语法错误改了一下

宝塔面板8.2.2去首页推荐广告顶部推荐广告

                            <div class="bt-form-line"> <label for="notice" style="cursor: pointer;"><input id="notice" disabled="disabled" type="checkbox" style="vertical-align: text-top;margin-right:5px"></input><span style="font-weight:500">我已查看“<b>《申请内测须知》</b>”<i id="update_time"></i></span></label>\</div>\

移除 recommend_paid_version() 函数相关调用:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

product_recommend.init(function () {
  index.recommend_paid_version()
  index.get_index_list();
})

移除整个 recommend_paid_version() 函数:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

  /**
   * @description 推荐进阶版产品
  */
  recommend_paid_version: function () {
    try {
      var recomConfig = product_recommend.get_recommend_type(0)
      var pay_status = product_recommend.get_pay_status()
      var is_pay = pay_status.is_pay;
      var advanced = pay_status.advanced;
      var end_time = pay_status.end_time;
      var html = '', list_html = '';
      if (!is_pay) advanced = ''; //未购买的时候,使用推荐内容
      if (recomConfig) {
        var item = recomConfig;
        for (var j = 0; j < item['ps'].length; j++) {
          var element = item['ps'][j];
          list_html += '<div class="item">' + element + '</div>';
        }
        var pay_html = '';
        if (is_pay) {
          pay_html = '<div class="product-buy ' + (advanced || item.name) + '-type">到期时间:<span>' + (end_time === 0 ? '永久授权' : (end_time === -2 ? '已过期' : bt.format_data(end_time, 'yyyy-MM-dd')) + '&nbsp;&nbsp;<a class="btlink" href="javascript:;" onclick="product_recommend.pay_product_sign(\'' + advanced + '\',' + item.pay + ',\'' + advanced + '\')">续费</a>') + '</span></div>'
        } else {
          pay_html = '<div class="product-buy"><button type="button" class="btn btn-xs btn-success" onclick="product_recommend.pay_product_sign(\'' + (advanced || item.name) + '\',' + item.pay + ',\'ltd\')">立即购买</button></div>'
        }
        html = '<div class="conter-box bgw">\
          <div class="recommend-top pd15 '+ (is_pay ? (advanced + '-bg') : '') + '">' + (!is_pay ? pay_html : '') + '<div class="product-ico ' + (advanced || item.name) + '' + (!is_pay ? '-pay' : '') + '-ico"></div>' + (is_pay ? pay_html : '') + '\
            <div class="product-label">'+ list_html + '</div>\
          </div>\
        </div>'
        //交互优化------普通用户才显示横幅
        var day_not_display = bt.get_storage('home_day_not_display') //获取不再显示最终的时间戳
        if((day_not_display && parseInt(day_not_display) < new Date().getTime()) || !day_not_display) $('#home-recommend').html(html)
        $('#home-recommend').hover(function(){
          if(!$('#home-recommend .day-not-display').length) $(this).css('position','relative').append('<div class="day-not-display">近'+ (is_pay ? '3天' : '24小时') +'不再显示<span></span></div>')
          $('#home-recommend .day-not-display').fadeIn("1000")
          $('#home-recommend .day-not-display span').unbind('click').click(function(){
            bt.set_storage('home_day_not_display', (new Date().getTime() + 86400*1000*(is_pay ? 3 : 1)))  //设置3天不再显示最后的时间戳
            $('#home-recommend').empty()
          })
        },function(){
          $('#home-recommend .day-not-display').hide()
        })
        //交互优化------普通用户才显示横幅end
      }
    } catch (error) {
      console.log(error)
    }
  },

这样修改后将会:
移除首页的推荐软件广告
只显示已安装的软件
移除付费版本的推荐横幅
建议在修改前先备份原文件。这些修改会让首页更加简洁,只显示必要的系统信息和已安装软件。

修改后发现首页一直在获取软件

宝塔面板8.2.2去首页推荐广告顶部推荐广告

从代码和现象来看,问题可能出在以下几个地方:
我们虽然注释掉了 product_recommend.init() 的调用,但是没有正确初始化 get_index_list()。需要直接调用它:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

// 改为直接调用
index.get_index_list();

在 get_index_list() 函数中,我们需要确保即使在获取数据失败的情况下也能正确处理:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

 // 添加错误处理
      if(!rdata) {
        $("#indexsoft").html('<div class="text-center" style="width:100%">暂无数据</div>');
        return;
      }
        dragEnd: saveOrder,
        dragEnd: function() {
          var data = $("#indexsoft > div").map(function () { 
            return $(this).attr("data-id"); 
          }).get();
          data = data.join('|');
          bt.soft.set_sort_index(data)
        },

确保 saveOrder 函数的定义:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

var that = this;
    function saveOrder() {
      var data = $("#indexsoft > div").map(function () { 
        return $(this).attr("data-id"); 
      }).get();
      data = data.join('|');
      bt.soft.set_sort_index(data)
    }

        dragEnd: function() {
          var data = $("#indexsoft > div").map(function () { 
            return $(this).attr("data-id"); 
          }).get();
          data = data.join('|');
          bt.soft.set_sort_index(data)
        },

建议的完整修改如下:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

 bt.soft.get_index_list(function (rdata) {
      if(!rdata) {
        $("#indexsoft").html('<div class="text-center" style="width:100%">暂无数据</div>');
        return;
      }
      $('.soft_masks').hide();
      var con = '';
      var icon = '';
      var rlen = rdata.length;
      var clickName = '';
      var setup_length = 0;

      for (var i = 0; i < rlen; i++) {
        if (rdata[i].setup) {
          setup_length++;
          if (rdata[i].admin) {
            clickName = ' onclick="bt.soft.set_lib_config(\'' + rdata[i].name + '\',\'' + rdata[i].title + '\')"';
          } else {
            clickName = 'onclick="soft.set_soft_config(\'' + rdata[i].name + '\')"';
          }
          var icon = rdata[i].name;
          if (bt.contains(rdata[i].name, 'php-')) {
            icon = 'php';
            rdata[i].version = '';
          }
          var status = '';
          if (rdata[i].status) {
            status = '<span style="color:#20a53a" class="glyphicon glyphicon-play"></span>';
          } else {
            status = '<span style="color:red" class="glyphicon glyphicon-pause"></span>'
          }
          con += '<div class="col-sm-3 col-md-3 col-lg-3" data-id="' + rdata[i].name + '">\
            <span class="spanmove"></span>\
            <div '+ clickName + '>\
            <div class="image"><img width="48" src="/static/img/soft_ico/ico-'+ icon + '.png"></div>\
            <div class="sname">'+ rdata[i].title + ' ' + rdata[i].version + status + '</div>\
            </div>\
          </div>'
        }
      }
      $("#indexsoft").html(con);
      
      $("#indexsoft").dragsort({ 
        dragSelector: ".spanmove",
        dragBetween: true, 
        dragEnd: saveOrder,
        placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>"
      });
    });
  },

同时在文件底部直接调用:

宝塔面板8.2.2去首页推荐广告顶部推荐广告

index.consultancy_services()
index.get_init()
index.get_index_list();  // 直接调用,不通过product_recommend.init
var loginInfo = JSON.parse(bt.get_cookie('login_info'))
if(loginInfo != null){
  if (loginInfo.last_login.ip_info.city && (loginInfo.ip_info.city !== loginInfo.last_login.ip_info.city)) 

这样修改后应该可以解决"正在获取列表"的问题。如果问题仍然存在,可能需要检查 bt.soft.get_index_list 的实现是否正确返回数据。

另外还有其他几个文件,在未来或旧版本可能控制者首页广告显示
今天修改的这个是 panel/BTPanel/static/js/index.js
其他的几个文件路径
panel/class/ajax.py

修改 ajax.py 中的 GetSoftList 函数:
设置 data['is_show'] 始终为 False

宝塔面板8.2.2去首页推荐广告顶部推荐广告

 def GetSoftList(self, get):
        # 取软件列表
        import json, os
        tmp = public.readFile('{}/data/softList.conf'.format(panelPath)).replace("{SETUP_PATH}", public.format_path(os.getenv("BT_SETUP")));
        data = json.loads(tmp)
        for x in data['webs']:
            if x['name'] == 'IIS':
                x['versions'] = [{'status': False, 'version': self.get_iis_verison()}]
        data['is_show'] = False
        return data

修改 config.py 中的 show_recommend 函数:
确保总是创建 not_recommend.pl 文件
返回禁用成功的消息

panel/class/config.py

宝塔面板8.2.2去首页推荐广告顶部推荐广告

config.py 中的 show_recommend 函数:
确保总是创建 not_recommend.pl 文件
/panel/data/not_recommend.pl 里面写入 True
返回禁用成功的消息

创建了 not_recommend.pl 文件来持久化禁用状态
后端不会发送推荐数据
设置会被持久化保存

如果强迫症看到这忍不住要修改伪企业版 顶部导航不显示版本提示,继续修改

我们可以修改代码来模拟企业版的一些功能

宝塔面板8.2.2去首页推荐广告顶部推荐广告

// 修改企业版判断逻辑
_this.isCorporat = true; // 强制设置为企业版


    bt.send('get_pd', 'ajax/get_pd', {}, function (res) {
      if (callback) callback(res)


      if (res[1] === 0) {
        $(".btpro span").click(function (e) {
          layer.confirm('切换回免费版可通过解绑账号实现', { icon: 3, btn: ['解绑账号'], closeBtn: 2, title: '是否取消授权' }, function () {
            $.post('/ssl?action=DelToken', {}, function (rdata) {
              layer.msg(rdata.msg);
              setTimeout(function () {
                window.location.reload();
              }, 2000);
            });
          });
          e.stopPropagation();
        });
      }
    })

主要修改内容:
设置企业版状态,移除未授权提示
移除顾问服务弹窗
3. 移除推荐软件显示
4. 移除任务管理器购买提示
5. 显示完整的系统监控信息
同时需要修改一些cookie值:

// 在index.get_init()之前添加
bt.set_cookie('pro_end', '1');
bt.set_cookie('ltd_end', '1'); 

宝塔面板8.2.2去首页推荐广告顶部推荐广告

这样修改后:
界面会显示为企业版
移除各种购买提示和广告
显示完整的系统监控信息
可以直接使用企业版功能
请注意这只是界面层的修改,某些需要后端支持的企业版功能可能仍然无法使用

文章附件如下
宝塔面板8.2.2去首页推荐广告顶部推荐广告

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
精品项目

淘宝短视频新玩法,开通分成计划,万播100+收益,轻松月入过万。

2024-8-2 23:00:43

精品项目

2023淘短视频培训:精准人群·快速爆发玩法,淘短小白也可操作!(淘短小白也能轻松上手!掌握精准人群和快速爆发玩法,助力店铺流量飙升!)

2024-4-12 20:16:37

搜索