mantis 在需求查看列表中增加“最近修改人”字段

1.在mantis_bug_table中增加字段user_id:user_id int(10)         UNSIGNED         是           NULL

保证这个user_id字段值更新:

1.在core目录里面的bug_api.php中:

在function bug_create( $p_bug_data ) 函数中

增加$c_lastoperater_id =auth_get_current_user_id();

修改$query 为

$query = "INSERT INTO $t_bug_table
              ( project_id,
                reporter_id, handler_id,
                duplicate_id, priority,
                severity, reproducibility,
                status, resolution,
                projection, category,
                date_submitted, last_updated,
                eta, bug_text_id,
                os, os_build,
                platform, version,
                build,
                profile_id, summary, view_state, sponsorship_total, sticky, fixed_in_version ,user_id )
            VALUES
              ( '$c_project_id',
                '$c_reporter_id', '$c_handler_id',
                '0', '$c_priority',
                '$c_severity', '$c_reproducibility',
                '$t_status', '$t_resolution',
                10, '$c_category',
                " . db_now() . "," . db_now() . ",
                10, '$t_text_id',
                '$c_os', '$c_os_build',
                '$c_platform', '$c_version',
                '$c_build',
                '$c_profile_id', '$c_summary', '$c_view_state', '$c_sponsorship_total', '$c_sticky', '' ,$c_lastoperater_id)";

在function bug_update( $p_bug_id, $p_bug_data, $p_update_extended = false, $p_bypass_mail = false )函数中

增加$c_lastoperater_id =auth_get_current_user_id();

修改$query 为

$query = "UPDATE $t_bug_table
          SET project_id='$c_bug_data->project_id',
           reporter_id='$c_bug_data->reporter_id',
           handler_id='$c_bug_data->handler_id',
           duplicate_id='$c_bug_data->duplicate_id',
           priority='$c_bug_data->priority',
           severity='$c_bug_data->severity',
           reproducibility='$c_bug_data->reproducibility',
           status='$c_bug_data->status',
           resolution='$c_bug_data->resolution',
           projection='$c_bug_data->projection',
           category='$c_bug_data->category',
           eta='$c_bug_data->eta',
           os='$c_bug_data->os',
           os_build='$c_bug_data->os_build',
           platform='$c_bug_data->platform',
           version='$c_bug_data->version',
           build='$c_bug_data->build',
           fixed_in_version='$c_bug_data->fixed_in_version',
           view_state='$c_bug_data->view_state',
           summary='$c_bug_data->summary',
           sponsorship_total='$c_bug_data->sponsorship_total',
           sticky='$c_bug_data->sticky'
        , user_id=$c_lastoperater_id
          WHERE id='$c_bug_id'";

在function bug_assign( $p_bug_id, $p_user_id, $p_bugnote_text='', $p_bugnote_private = false )函数中

增加$c_lastoperater_id =auth_get_current_user_id();

修改$query为

$query = "UPDATE $t_bug_table
             SET handler_id='$c_user_id', status='$t_ass_val',user_id=$c_lastoperater_id
             WHERE id='$c_bug_id'";

 

增加

# --------------------
# updates the user_id field
function bug_update_user_id( $p_bug_id ) {
        $c_bug_id = db_prepare_int( $p_bug_id );
  
          $c_lastoperate_id =auth_get_current_user_id();
    
        $t_bug_table = config_get( 'mantis_bug_table' );

        $query = "UPDATE $t_bug_table
            SET user_id= " . $c_lastoperate_id . "
            WHERE id='$c_bug_id'";
  
  
        db_query( $query );

        bug_clear_cache( $p_bug_id );

        return true;
}

在function bugnote_add ( $p_bug_id, $p_bugnote_text, $p_private = false, $p_type = 0, $p_attr = '', $p_user_id = null )函数中增加

# update bug user_id updated
        bug_update_user_id( $p_bug_id );

在有出现history_log_event_special( $p_bug_id, BUGNOTE_ADDED, bugnote_format_id( $t_bugnote_id ) );的地方注意加上这句话

这样就保证了各种操作的时候都能更新这个字段值,输入字段值的问题差不多就这么搞定了。

 

解决输出问题:

1.在core目录里面的custom_function_api.php中的

function custom_function_default_get_columns_to_view( $p_columns_target = COLUMNS_TARGET_VIEW_PAGE )函数中增加$t_columns[]='user_id';//'user_id';

 

2.在 core目录里面的columns_api.php中新增

# --------------------
# $p_columns_target: see COLUMNS_TARGET_* in constant_inc.php
function print_column_title_user_id( $p_sort, $p_dir, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
        if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
         echo '<td>';
         print_view_bug_sort_link( lang_get( 'lastoperatername' ), 'user_id', $p_sort, $p_dir, $p_columns_target );
         print_sort_icon( $p_dir, $p_sort, 'user_id' );
         echo '</td>';
        } else {
         echo lang_get( 'lastoperatername' );
        }
}

# --------------------
# $p_columns_target: see COLUMNS_TARGET_* in constant_inc.php
function print_column_user_id( $p_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
        echo '<td class="center">';
        echo prepare_user_name( $p_row['user_id'] );
        echo '</td>';
}

 

3.在lang目录的strings_chinese_simplified.txt中

新增定义#
$s_lastoperatername ='最近修改人';

然后应该就大功告成了。。。。。。

 

感谢http://www.futureware.biz/blog/index.php?title=title_1&more=1&c=1&tb=1&pb=1,西西的博客的提示,还有TurboSearcher,呵呵。

 

因为没有办法做到操作人员更新状态时就会自动更新最近修改人,所以我采用了手动更新这个字段的办法,写了一个update_latest_operater.php,然后:

在代码core/html_api.php中搜索<td class="menu">

增加
# update_latest_operater
          if ( access_has_project_level( config_get( 'view_changelog_threshold' ) ) ) {
           $t_menu_options[] = '<a href="update_latest_operater.php">' . lang_get( 'update_latest_operater') . '</a>';
          }

在lang/strings_chinese_simplified.txt中搜索s_view_bugs_link

增加$s_update_latest_operater='更新最近修改人';

然后用户如果点击和“首页”超链接附近的“更新最近修改人”的超链接(界面太挤了,我把“编辑公告”这个超链接屏蔽了),即可以更新数据库里面的数据,且界面上的“最近修改人”字段就可以显示出信息了。

附:

update_latest_operater.php:

<html>
<body>
<?php
$db = mysql_connect('localhost', 用户名,密码);
mysql_select_db('mantis',$db);
$result = mysql_query("SELECT * FROM mantis_bug_table",$db);
while($r=mysql_fetch_array($result))do{
$id=$r["id"];
$result1=mysql_query("select bug_id,user_id from mantis_bug_history_table where bug_id =".$id." and field_name='status' and new_value=80 order by date_modified desc limit 0,1");
while($r1=mysql_fetch_row($result1))do{
$user_id=$r1[1];
$bug_id=$r1[0];
{
    $result2=mysql_query("update mantis_bug_table set latest_operater_id='". $user_id."' where bug_id=".$id."");
}
#print "update mantis_bug_table set latest_operater_id='". $user_id."' where bug_id=".$id."";
#print "<br>";
}while($r1=mysql_fetch_row($result1));
#print $id;
}while ($r = mysql_fetch_array($result));
print "完成了,请".'<a href="view_all_bug_page.php">'."返回</a>";
?>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值