我正在定制 Mantis bugtracker 1.2.8 版的安装,以在错误报告页面上包含一个动态自定义枚举字段。我能够弄清楚如何设置动态枚举并创建相应的函数来生成它的可能值。这是我到目前为止所拥有的:
管理 -> 管理自定义字段 -> “旧作业编号”
名称:“旧作业编号”
类型:枚举
可能的值:=legacy_job_number
默认值:0
读写访问权限:查看器
最小。长度:
最大1 长度:0
添加到过滤器:选中
创建作业时
显示:选中 更新作业时显示:选中
custom_functions_inc.php
function custom_function_override_enum_legacy_job_number() {
$t_project_name = project_get_name( helper_get_current_project() );
$t_job_time_code = htmlentities(trim(substr(date('U'), 6, 9)));
$t_project_description = project_get_field( helper_get_current_project(), 'description', '' );
$t_project_description = "$t_project_description";
$t_job_code = $t_project_description . "2012" . $t_job_time_code;
$t_possible_values_array = array("", "$t_job_code");
$t_possible_values = implode( '|', $t_possible_values_array );
return $t_possible_values;
}
我遇到的问题是,每次我尝试提交新工作或更新现有工作并按原样附加“旧作业编号”字段时,我都会收到应用程序错误 #1303,“字段值无效”旧作业数字”。'
我已将问题追溯到 $t_job_time_code = htmlentities(trim(substr(date('U'), 6, 9))); 生成的时间戳值。-- 如果我删除它,错误报告会很好地提交。(如您所见,我只是在 $t_job_code 中硬编码日期,这并不理想,但可以。)
我最终想要做的是将一个四位数的数字附加到“遗留作业编号”字符串中,该字符串有 99.99% 的可能性是唯一的,因为它将用于识别特定的错误。我认为使用时间戳会很好地解决这个问题,因为它会不断增加,但显然 Mantis 不喜欢这样。我已经尝试了许多变体,并且真的不想使用由 rand() 或 mt_rand() 生成的随机数,因为这仍然可能导致重复。
任何人都可以帮助解释(1)为什么会发生这种情况,以及(2)我可能会尝试解决什么问题?
非常感谢您的考虑和帮助。
最好的,彼得