源码技术 发表于 2024-8-24 10:38:40

了解server.php 方法储存模块基本结构乐众主机

了解server.php 方法储存模块基本结构乐众主机
【开发者帮助】5、了解server.php 方法储存模块基本结构
该文件主要用于开通、管理、续费等功
每个方法前缀必须改成插件目录名称_方法名称如插件目录是 xingwai 则:检测通讯的方法名称为 xingwai_status_vhost
下面请看示例代码:
/**
* 检测接口通讯
*/
function xingwai_status_vhost($plugin) {
    $status = array('status' => true, 'msg' => "渠道通信成功", 'data' => array());
    // 如果要返回失败 则把status值改为 false   msg值改成失败的原因 具体是成功还是失败,请根据请求接口后的数据判断
    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 启动资产
*/
function lzsys_server_start_vhost($plugin) {
    $asset_data = $plugin->asset_data(); // 请求过来的数据里面包含了 用户请求的数据信息可通过打印数组查看全部
    $api_config = $plugin->api_config(); // 渠道数据   里面包含了渠道相关的数据在 remark数组下面 可自行输出数组查看
    $status = array('status' => true, 'msg' => "启动成功", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 暂停资产
*/
function lzsys_server_stop_vhost($plugin) {
    $asset_data = $plugin->asset_data(); // 请求过来的数据里面包含了 用户请求的数据信息可通过打印数组查看全部
    $api_config = $plugin->api_config(); // 渠道数据   里面包含了渠道相关的数据在 remark数组下面 可自行输出数组查看
    $status = array('status' => true, 'msg' => "暂停成功", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 续费资产
*/
function lzsys_server_renew_vhost($plugin) {
    $asset_data = $plugin->asset_data(); // 请求过来的数据里面包含了 用户请求的数据信息可通过打印数组查看全部
    $api_config = $plugin->api_config(); // 渠道数据   里面包含了渠道相关的数据在 remark数组下面 可自行输出数组查看
      $status = array('status' => true,
            'msg' => '续费资产',
            'data' => array(

                ),

            );

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status)); // 将开通结果写入系统通知   

}
/**
* 资产改密
*/
function xingwai_pass_vhost($plugin) {
    $api_config = $plugin->api_config();
    $asset_data = $plugin->asset_data();
    $post = $asset_data['post'];
    if (!$post['newpass']) {
      $post['newpass'] = $plugin->ide->php->post("newpass");
    }
    $asset_data['remark']['secret'] = $post['newpass'];

    if (strtotime($asset_data['remark']['begin_time'])) {
      $asset_data['remark']['begin_time'] = strtotime($asset_data['remark']['begin_time']);
    }
    if (strtotime($asset_data['remark']['end_time'])) {
      $asset_data['remark']['end_time'] = strtotime($asset_data['remark']['end_time']);
    }

    if (!preg_match('/(?=.*)(?=.*)(?=.*){8,20}/', $post['newpass'])) {
      exit("密码至少8位数且包含大写、小写、数字");
    }

      unset($asset_data['post']);
      $updata = $plugin->ide->lzsys_system->json($asset_data['remark']);
      $plugin->ide->mysql->up_db("secret='" . $post['newpass'] . "',remark='" . $updata . "'", "user_asset", "app_id='" . $plugin->ide->lzsys_system->app_id() . "' and user_asset_id='" . $asset_data['user_asset_id'] . "'");

      $status = array('status' => true, 'msg' => "操作成功", 'data' => array());
   

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 同步资产数据该方法可忽略
*/
function xingwai_get_vhost($plugin) {
    $status = array('status' => false, 'msg' => "渠道不支持同步", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 批量创建资产 该方法可忽略
*/
function xingwai_creates_vhost($plugin) {
    $status = array('status' => false, 'msg' => "渠道不支持批量添加", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 单个创建资产
*/
function xingwai_create_vhost($plugin) {
    $asset_data = $plugin->asset_data(); // 请求过来的数据里面包含了 用户请求的数据信息可通过打印数组查看全部$asset_data['shop_product']数组中包含了商品数据
    $api_config = $plugin->api_config(); // 渠道数据   里面包含了渠道相关的数据在 remark数组下面 可自行输出数组查看
    $get_data= "ok"; // 假设这是请求接口后返回的数据

    if ($get_data == "ok") {
      $status = array('status' => true,
            'msg' => '创建资产成功',
            'data' => array(// 这里可以根据插件返回需要的参数,会自动保存,然后其他地方可调用
                'vhost_describe' => "无", // 资产描述信息
                ),

            );
    } else {

      $status = array('status' => false,
            'msg' => '创建资产失败,错误数据:' . get_data ,
            'data' => $plugin->ide->lzsys_system->json($get_data ),

            );
    }

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status)); // 将开通结果写入系统通知
}
/**
* 编辑资产
*/
function xingwai_edit_vhost($plugin) {
    $api_config = $plugin->api_config();
    $asset_data = $plugin->asset_data();

    $get_status['status'] = true;
    if ($get_status['status'] == true) {
      $status = array('status' => true, 'msg' => "编辑成功", 'data' => array());
    } else {
      $status = array('status' => false, 'msg' => $get_status['msg'], 'data' => array());
    }
    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}

/**
* 同步删除资产(由于平台是删除到回收站,所以这里只暂停站点,不删除)
*/
function xingwai_dell_vhost($plugin) {
    $asset_data = $plugin->asset_data();
    foreach ($asset_data as $id) {
      if ($id) {
            $stop['status'] = false; // 这里是直接返回失败
            if ($stop['status'] == true) {
                $data = $data . "操作成功:" . $id['remark']['account'] . "";
            } else {
                $data = $data . "操作失败:" . $id['remark']['account'] . " 该资产不支持同步删除";
            }
      }
    }

    $status = array('status' => true, 'msg' => "暂停成功", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}

/**
* 同步删除资产(由于平台是回收站删除资产,所以这里也进行删除操作)
*/
function xingwai_dells_vhost($plugin) {
    $asset_data = $plugin->asset_data();
    foreach ($asset_data as $id) {
      if ($id) {
            $stop['status'] = false; // 这里是直接返回失败
            if ($stop['status'] == true) {
                $data = $data . "操作成功:" . $id['remark']['account'] . "";
            } else {
                $data = $data . "操作失败:" . $id['remark']['account'] . " 该资产不支持同步删除";
            }
      }
    }

    $status = array('status' => true, 'msg' => "删除站点成功", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 同步恢复资产(由于平台是从回收站恢复资产,这里对暂停的资产进行启动)
*/
function xingwai_redu_vhost($plugin) {
    $asset_data = $plugin->asset_data();
    foreach ($asset_data as $id) {
      if ($id) {
            $stop['status'] = false; // 这里是直接返回失败
            if ($stop['status'] == true) {
                $data = $data . "操作成功:" . $id['remark']['account'] . "";
            } else {
                $data = $data . "操作失败:" . $id['remark']['account'] . " 该资产不支持同步恢复";
            }
      }
    }

    $status = array('status' => true, 'msg' => "启动站点成功", 'data' => array("msg" => $data));

    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}

/**
* 一键登录渠道管理 相对于是登录到接口方的网站,而不是控制面板,比如 乐众同系统插件支持一键登录到上级的网站用户中心,登录代码写在这里
*/
function xingwai_login_vhost($plugin) {
    $api_config = $plugin->api_config();

    $status = array('status' => false, 'msg' => "该渠道不支持一键登录", 'data' => array());
    return $plugin->system("status", $plugin->ide->lzsys_system->json($status));
}
/**
* 资产管理客户购买产品后,点击管理面板 将调用此处的方法
*/
function xingwai_admin_vhost($plugin) {
    $asset_data = $plugin->asset_data();
    $api_config = $plugin->api_config();
    $addons_config = $plugin->addons_config();
    $get = $plugin->ide->php->get();
    if ($get['view_file'] == "") {
      $get['view_file'] = "index.html";
    }

    if (!file_exists($plugin->ide->views->template_dir . $get['view_file'])) {
      $plugin->views->display("notice.html");
      exit;
    }

    $modular = "modular/" . str_replace(".html", ".php", $get['view_file']);;

    require($modular);

    $plugin->ide->views->assign("plugins_config", $plugins_config, true); // 应用配置文件
    $plugin->ide->views->assign("addons_config", $addons_config, true); // 应用信息 api_type
    $plugin->ide->views->assign("api_config", $api_config, true); // 渠道信息 api
    $plugin->ide->views->assign("asset_data", $asset_data, true); // 资产信息 user_asset
    $plugin->views->display($get['view_file']);
    exit;
}
/**
* 渠道管理管理员后台点击管理渠道时 将调用此处方法
*/
function xingwai_admin_panel($plugin) {
    $asset_data = $plugin->asset_data();
    $api_config = $plugin->api_config();
    $addons_config = $plugin->addons_config();
    $get = $plugin->ide->php->get();
    if ($get['view_file'] == "") {
      $url = "?view_file=index.html";
      header("location: $url");
      $get['view_file'] = "index.html";
    }

    if (!file_exists($plugin->ide->views->template_dir . $get['view_file'])) {
      $plugin->views->display("notice.html");
      exit;
    }

    $modular = "modular_admin/" . str_replace(".html", ".php", $get['view_file']);

    require($modular);
    $plugin->ide->views->assign("plugins_config", $plugins_config, true); // 应用配置文件
    $plugin->ide->views->assign("addons_config", $addons_config, true); // 应用信息 api_type
    $plugin->ide->views->assign("api_config", $api_config, true); // 渠道信息 api
    $plugin->ide->views->assign("asset_data", $asset_data, true); // 资产信息 user_asset
    $plugin->views->display($get['view_file']);
    exit;
}

页: [1]
查看完整版本: 了解server.php 方法储存模块基本结构乐众主机