You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不修改源码在Mantis的manage_user_page.php添加Org列

解决方案:无需修改Mantis源码新增用户Org列

核心思路:利用Mantis插件系统与原生事件钩子

Mantis自带完整的插件扩展机制,通过注册特定事件钩子,就能在不改动核心源码的前提下,实现用户管理页面的列新增与数据展示。

步骤1:创建插件结构

新建一个名为OrgColumnPlugin的插件目录,包含以下两个核心文件:

1.1 plugin.php(插件核心逻辑)

<?php
class OrgColumnPlugin extends MantisPlugin {
    function register() {
        $this->name = '用户组织列插件';
        $this->description = '在用户管理页面新增组织列';
        $this->version = '1.0';
        $this->author = '自定义作者名';
        $this->contact = '自定义联系方式';
        $this->url = '';
    }

    function hooks() {
        return array(
            // 钩子:渲染用户列表的表头列
            'EVENT_MANAGE_USER_COLUMNS' => 'add_org_column_header',
            // 钩子:渲染每行用户的Org数据
            'EVENT_MANAGE_USER_ROW' => 'add_org_column_data',
            // 钩子:让用户查询语句包含Org字段
            'EVENT_USER_GET_SELECT_COLUMNS' => 'add_org_select_column',
        );
    }

    // 添加新列的表头
    function add_org_column_header( $p_event ) {
        echo '<th>' . lang_get( 'org_field_label' ) . '</th>';
    }

    // 填充每行的Org数据
    function add_org_column_data( $p_event, $p_user_id ) {
        $t_user = user_get_row( $p_user_id );
        $t_org = isset( $t_user['Org'] ) ? $t_user['Org'] : '';
        echo '<td>' . htmlspecialchars( $t_org ) . '</td>';
    }

    // 追加Org字段到用户查询语句
    function add_org_select_column( $p_event ) {
        return ', Org';
    }
}

1.2 lang/strings_zh_CN.txt(中文语言包,可选)

如果需要中文显示表头,添加语言文件:

org_field_label = 所属组织

步骤2:安装启用插件

  • 将OrgColumnPlugin目录上传到Mantis的plugins目录下
  • 登录管理员账号,进入管理 > 插件管理
  • 找到“用户组织列插件”,点击启用即可

关键说明

  • 用到的三个事件均为Mantis原生支持的钩子,完全无需修改核心源码:
    • EVENT_MANAGE_USER_COLUMNS:负责在用户列表表头插入新列
    • EVENT_MANAGE_USER_ROW:为每个用户行填充你新增的Org字段数据
    • EVENT_USER_GET_SELECT_COLUMNS:确保查询用户数据时包含自定义的Org列
  • 数据直接读取你已添加的mantis_user_table.Org字段,无需额外数据库操作

内容的提问来源于stack exchange,提问作者Sara Bourgogne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 13:42:06