mantisbt 增加项目级tags功能

连接到mts数据库:bugtracker

执行:alter table mantis_tag_table add column project_id int(5) default '0'

打开tag_api.php,红色为修改内容

//为tags增加参数当前项目id

function tag_create( $p_name, $p_user_id = null, $p_description = '' ) {
access_ensure_global_level( config_get( 'tag_create_threshold' ) );


tag_ensure_name_is_valid( $p_name );
tag_ensure_unique( $p_name );


if( null == $p_user_id ) {
$p_used_id = auth_get_current_user_id();
} else {
user_ensure_exists( $p_user_id );
}


$c_user_id = db_prepare_int( $p_user_id );
$c_date_created = db_now();


$t_tag_table = db_get_table( 'mantis_tag_table' );
$f_bug_id = gpc_get_int( 'bug_id' );
$t_bug_data = bug_get( $f_bug_id, true );
$t_project_id = $t_bug_data->project_id;


$query = "INSERT INTO $t_tag_table
( user_id,
 name,
 description,
 date_created,
 date_updated ,
project_id
)
VALUES
( " . db_param() . ",
 " . db_param() . ",
 " . db_param() . ",
 " . db_param() . ",
 " . db_param() . ",
  ". $t_project_id ."
)";


db_query_bound( $query, Array( $c_user_id, trim( $p_name ), trim( $p_description ), $c_date_created, $c_date_created ) );
return db_insert_id( $t_tag_table );
}
//获取tags时,根据当前project_id获取
function tag_get_candidates_for_bug( $p_bug_id ) {
$t_tag_table = db_get_table( 'mantis_tag_table' );
$t_params = array();
if ( 0 != $p_bug_id ) {
$t_bug_tag_table = db_get_table( 'mantis_bug_tag_table' );




if ( db_is_mssql() ) {
$t_params[] = $p_bug_id;
$query = "SELECT t.id FROM $t_tag_table t
LEFT JOIN $t_bug_tag_table b ON t.id=b.tag_id
WHERE b.bug_id IS NULL OR b.bug_id != " . db_param();
$result = db_query_bound( $query, $t_params );




$t_subquery_results = array();




while( $row = db_fetch_array( $result ) ) {
$t_subquery_results[] = (int)$row;
}
$query = "SELECT id, name, description FROM $t_tag_table WHERE id IN ( " . implode( ', ', $t_subquery_results ) . ')';
} else {
$t_bug_data = bug_get( $p_bug_id, true );
$t_project_id = $t_bug_data->project_id;

$query = "SELECT id, name, description FROM $t_tag_table WHERE id IN (
SELECT t.id FROM $t_tag_table t
LEFT JOIN $t_bug_tag_table b ON t.id=b.tag_id
WHERE b.bug_id IS NULL OR b.bug_id != " . db_param() .
')' ."and project_id=".$t_project_id;
}
$t_params[] = $p_bug_id;
}

//如果需要全局tags,将方法tag_get_candidates_for_bug里面的."and project_id=".$t_project_id; 改为."and project_id=".$t_project_id." or project_id=0";

//这样project_id为0的tags为全局tags

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值