traits按钮

<?php
namespace app\admin\traits;
use think\facade\Session;
use think\Db;

// 按钮操作类
trait BtnTrait {
/**
* 显示删除按钮
* @param string $route 操作路径,格式:控制器/方法
* @param int $id 数据ID
*/
public function deleteButton($route, $id)
{
// 检测参数
if (empty($id) || empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<a class='btn btn-flat btn-warning btn-xs list_del del-btn' id='del-btn' data-id='".$id."'><i class='fa fa-trash-o'></i> 删除 </a>";
}


/**
* 显示查看按钮
* @param string $route 操作路径,格式:控制器/方法
* @param int $id 数据ID
*/
public function readButton($route, $id)
{
// 检测参数
if (empty($id) || empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
$url = url($route, ['id'=>$id]);
return "<a class='btn btn-flat btn-info btn-xs read-btn' href='".$url."'><i class='fa fa-edit'></i> 查看</a>";
}


public function sendButton($route, $id)
{
// 检测参数
if (empty($id) || empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
$url = url($route);
return "<a class='btn btn-flat btn-info btn-xs read-btn bg-green color-palette sendbutton' style='background-color: #1E9FFF!important;' href='".$url."' data-id='".$id."'><i class='fa fa-paper-plane'></i> 推送 </a>";
}


/**
* 批量删除按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function batchDelButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<input class='btn btn-flat btn-warning m_10 delete_select' id='delete_select' type='button' value='批量删除'>";
}

/**
* 批量推送按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function batchSendButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<input class='btn btn-flat btn-success m_10 send_select' id='send_select' type='button' value='批量推送'>";
}


/**
* 全部删除按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function clearButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<input class='btn btn-flat btn-danger m_10 delete_all' type='button' value='清空所有'>";
}


/**
* 编辑按钮
* @param string $route 操作路径,格式:控制器/方法
* @param int $id 数据ID
*/
public function editButton($route, $id)
{
// 检测参数
if (empty($id) || empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
$url = url($route, ['id'=>$id]);
return "<a class='btn btn-flat btn-info btn-xs edit-btn' href='".$url."'><i class='fa fa-edit'></i> 编辑 </a>";
}



/**
* 导入按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function importButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<input class='btn btn-flat btn-info m_10 import' id='import' type='button' value='导入'>";
}

/**
* 下载模板按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function downloadMbButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<input class='btn btn-flat btn-warning m_10 download_mb' id='download_mb' type='button' value='下载模板'>";
}

/**
* 添加按钮
* @param string $route 操作路径,格式:控制器/方法
*/
public function addButton($route)
{
// 检测参数
if (empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
return "<a class='btn btn-flat btn-success m_10 f_r' href='".url($route)."'><i class='fa fa-plus m-r-10'></i>添 加</a>";
}


/**
* 修改权限按钮
* @param string $route 操作路径,格式:控制器/方法
* @param int $id 数据ID
*/
public function authButton($route, $id)
{
// 检测参数
if (empty($id) || empty($route)) {
return '';
}
$bool = $this->getUserAuth($route);
if (!$bool) {
return '';
}
$url = url($route, ['id'=>$id]);
return "<a class='btn btn-flat btn-danger btn-xs auth' id='auth' href='".$url."'><i class='fa fa-edit'></i> 权限 </a>";
}

/**
* 隐藏列内容(检测用户是否有权限,有则显示,没有则隐藏)
* @param string $url 操作路径,格式:控制器/方法
* @return bool true表示显示列内容,false表示隐藏列内容
*/
public function isHiddenField($url)
{
// 检测参数
if (empty($url)) {
return false;
}
$bool = $this->getUserAuth($url);
if (!$bool) {
return false;
}
return true;
}

/**
* 添加按钮2
* @param string $url 操作路径,格式:控制器/方法
* @param int $id 数据ID
*/
public function addButton2($url, $id)
{
// 检测参数
if (empty($id) || empty($url)) {
return '';
}
$bool = $this->getUserAuth($url);
if (!$bool) {
return '';
}
$url = url($url, ['id' => $id]);
return "<a class='btn btn-flat btn-success btn-xs add-button2' href='".$url."'><i class='fa fa-plus'></i> 添加 </a>";
}

/**
* 排序按钮
* @param string $url 操作路径,格式:控制器/方法
* @param int $id 数据ID
* @param string $sort_value 排序值
* @return string 按钮字符串
*/
public function sortButton($url, $id, $sort_value)
{
// 检测参数
if (empty($url) || empty($id)) {
return '';
}
$bool = $this->getUserAuth($url);
if (!$bool) {
return '';
}
return "<input class='form-control input-sm w_40 m_auto sort-button' type='text' value='".$sort_value."' data-id='".$id."'>";
}

/**
* 显示或隐藏操作按钮
* @param string $url 操作路径,格式:控制器/方法
* @param int $id 数据ID
* @param string $status_value 状态值,1为显示,0为隐藏
* @param string $filed_name 选择器值,用作CSS选择器,方便获取
* @return string 按钮字符串
*/
public function showAndHiddenButton($url, $id, $status_value, $filed_name)
{
// 检测参数
if (empty($url) || empty($id) || empty($filed_name)) {
return '';
}
$bool = $this->getUserAuth($url);
if (!$bool) {
return '';
}
if ($status_value == 1) {
return "<a class='state_ok ".$filed_name."' data-id='".$id."'><i class='fa fa-fw fa-check-square'></i></a>";
} else {
return "<a class='state_no ".$filed_name."' data-id='".$id."'><i class='fa fa-fw fa-check-square'></i></a>";
}
}

/**
* 导出按钮
* @param string $url 操作路径,格式:控制器/方法
*/
public function exportButton($url)
{
// 检测参数
if (empty($url)) {
return '';
}
$bool = $this->getUserAuth($url);
if (!$bool) {
return '';
}
$url = url($url);
return "<a class='btn btn-flat btn-danger m_10 f_r export-button' id='export-button' href='".$url."'><i class='fa fa-download m-r-10'></i>导出</a>";
}



public function viewButton() {
return '<button onclick="view()">查看</button>';
}

// 检查用户是否具有权限
public function getUserAuth($route)
{
// 检测用户ID
$admin_id = Session::get('admin.id');
if (empty($admin_id)) {
return false;
}
// 检查用户所在的组
$group_id = Db::name('auth_group_access')->where('uid', $admin_id)->value('group_id');
if (empty($group_id)) {
return false;
}
// 获取操作路径(即控制器/方法)的ID
$auth_id = Db::name('auth_rule')->where('name', $route)->value('id');
if (empty($auth_id)) {
return false;
}
// 获取这个用户组所具有的权限
$auth_ids = Db::name('auth_group')->where('id', $group_id)->value('rules');
if (empty($auth_ids)) {
return false;
}
// 比较权限
$auth_ids_arr = explode(',',$auth_ids);
if (in_array($auth_id, $auth_ids_arr)) {
return true;
}
return false;
}
}


相关推荐

  • 获取指定目录下的所有图片信息

    1 获取指定目录下的所有图片信息// 获取指定目录下的所有图片信息 public function getImagesInfo($directory) { $images = []; // 创建递归目录迭代器 $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY ); // 遍历目录中的每个文件 foreach (

  • Thinkphp各版本的PHP要求

    ThinkPHP 8.0:运行环境要求PHP8.0+,兼容PHP8.3ThinkPHP 6.1:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 6.0:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 5.1:运行环境要求PHP5.6+,兼容PHP8.0ThinkPHP 5.0:运行环境要求PHP5.4+,兼容PHP7.3

  • Thinkphp5.1路径常量

    1 配置文件位置根目录/config/template.php2 配置文件内容&lt;?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reser

  • Thinkphp5.0路径常量

    1 配置文件位置根目录/application/模块名/config.php2 配置文件内容&lt;?php//配置文件return [ // 后台视图输出字符串内容替换 'view_replace_str' =&gt; [ '__PUBLIC__' =&gt; '/', '__STATIC__' =&gt; '/static', '__CONSOLE__' =&gt; '/static/console', '__CONSOLE_CSS__' =&gt; '/static/console/css', '__CONSOLE_IMAGES__' =&gt; '/static/console/ima

  • wp站点防止别人进行DDOS攻击

    1 简介wp站点防止别人进行DDOS攻击。2 配置位置位置:根目录/wp-config.php3 配置内容在【根目录/wp-config.php】文件的开头添加如下代码:if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){ $protocol = $_SERVER['SERVER_PROTOCOL'] ?? ''; if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){ $protocol = 'HTTP/1.0'; } hea

  • 只读属性

    1 只读属性简介只读属性的声明方式类似于普通属性,但需要使用 readonly 关键字。2 只读属性例子class Point { public readonly float $x; public readonly float $y; public function __construct(float $x, float $y) { $this-&gt;x = $x; $this-&gt;y = $y; }}$point = new Point(3.5, 2.8);echo $point-&gt;x; // 输出: 3.5echo $point-&gt;y; // 输出: 2.8// 下面的尝