任何人将自定义字段添加到任务列表中显示到仪表板(Phabricator)
Anyone Added Custom Field in to Task List Show into Dashboard (Phabricator)
我已将 due_date 添加到清单自定义字段中。现在我希望任务列表显示给用户,然后到期日期也显示在那里。
我知道它在代码库中的变化非常小,但我无法对其进行调试。
好的,这不是解决方案,而是一个起点...
要改变这个你需要编辑
ManiphestTaskListView.php 在
phabricator/src/applications/maniphest/view
你想放截止日期的地方就是放"Assigned:"的地方
if ($task->getOwnerPHID()) {
$owner = $handles[$task->getOwnerPHID()];
$item->addByline(pht('Assigned: %s', $owner->renderLink()));
}
拉入自定义字段可能需要更多研究,我认为您可以通过以下方式获取任务自定义字段
$fields = PhabricatorCustomField::getObjectFields(
$task,PhabricatorCustomField::ROLE_VIEW);
如果必须的话,你可以像这样拉出你想要的字段,我怀疑有更好的方法...所以你只需要特定的字段
if ($fields){
foreach ($fields->getFields() as $field){
if ($field->getModernFieldKey()=='custom.mycustomfield'){
// in theory you might be able to add it like this
$item->addByline(pht('%s', $field->getXXXX()));
}
}
我不确定你需要做什么来获取自定义字段值,我正在使用 getXXXX() 来表示你可能需要做的事情,我认为自定义字段通常有一个渲染() 方法,但我还是不完全确定你是如何让它在你的列表视图中呈现的
我错过了你需要的步骤 我想调用 $fields->readFieldsFromStoage($task)
然后我使用了 $field->getValueForStorage()
我不能说它有多正确或合法,甚至效率如何,但它可以满足我的需求
$fields = PhabricatorCustomField::getObjectFields(
$task,PhabricatorCustomField::ROLE_VIEW);
if ($fields){
$fields->readFieldsFromStorage($task);
foreach ($fields->getFields() as $field){
if ($field->getModernFieldKey()=='custom.mycustomfield'){
// in theory you might be able to add it like this
$item->addByline(pht('Due Date:%s', $field->getValueForStorage()));
$item->addByline(pht('Assigned: %s', $owner->renderLink()));
}
}
希望对您有所帮助
我已将 due_date 添加到清单自定义字段中。现在我希望任务列表显示给用户,然后到期日期也显示在那里。 我知道它在代码库中的变化非常小,但我无法对其进行调试。
好的,这不是解决方案,而是一个起点...
要改变这个你需要编辑
ManiphestTaskListView.php 在
phabricator/src/applications/maniphest/view
你想放截止日期的地方就是放"Assigned:"的地方
if ($task->getOwnerPHID()) {
$owner = $handles[$task->getOwnerPHID()];
$item->addByline(pht('Assigned: %s', $owner->renderLink()));
}
拉入自定义字段可能需要更多研究,我认为您可以通过以下方式获取任务自定义字段
$fields = PhabricatorCustomField::getObjectFields(
$task,PhabricatorCustomField::ROLE_VIEW);
如果必须的话,你可以像这样拉出你想要的字段,我怀疑有更好的方法...所以你只需要特定的字段
if ($fields){
foreach ($fields->getFields() as $field){
if ($field->getModernFieldKey()=='custom.mycustomfield'){
// in theory you might be able to add it like this
$item->addByline(pht('%s', $field->getXXXX()));
}
}
我不确定你需要做什么来获取自定义字段值,我正在使用 getXXXX() 来表示你可能需要做的事情,我认为自定义字段通常有一个渲染() 方法,但我还是不完全确定你是如何让它在你的列表视图中呈现的
我错过了你需要的步骤 我想调用 $fields->readFieldsFromStoage($task)
然后我使用了 $field->getValueForStorage()
我不能说它有多正确或合法,甚至效率如何,但它可以满足我的需求
$fields = PhabricatorCustomField::getObjectFields(
$task,PhabricatorCustomField::ROLE_VIEW);
if ($fields){
$fields->readFieldsFromStorage($task);
foreach ($fields->getFields() as $field){
if ($field->getModernFieldKey()=='custom.mycustomfield'){
// in theory you might be able to add it like this
$item->addByline(pht('Due Date:%s', $field->getValueForStorage()));
$item->addByline(pht('Assigned: %s', $owner->renderLink()));
}
}
希望对您有所帮助