@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorOwnersConfigOptions
4 extends PhabricatorApplicationConfigOptions {
5
6 public function getName() {
7 return pht('Owners');
8 }
9
10 public function getDescription() {
11 return pht('Configure Owners.');
12 }
13
14 public function getIcon() {
15 return 'fa-gift';
16 }
17
18 public function getGroup() {
19 return 'apps';
20 }
21
22 public function getApplicationClassName() {
23 return PhabricatorOwnersApplication::class;
24 }
25
26 public function getOptions() {
27 $custom_field_type = 'custom:PhabricatorCustomFieldConfigOptionType';
28 $default_fields = array();
29
30 $field_base_class = id(new PhabricatorOwnersPackage())
31 ->getCustomFieldBaseClass();
32
33 $fields_example = array(
34 'mycompany:lore' => array(
35 'name' => pht('Package Lore'),
36 'type' => 'remarkup',
37 'caption' => pht('Tales of adventure for this package.'),
38 ),
39 );
40 $fields_example = id(new PhutilJSON())->encodeFormatted($fields_example);
41
42 return array(
43 $this->newOption('owners.fields', $custom_field_type, $default_fields)
44 ->setCustomData($field_base_class)
45 ->setDescription(pht('Select and reorder package fields.')),
46 $this->newOption('owners.custom-field-definitions', 'wild', array())
47 ->setSummary(pht('Custom Owners fields.'))
48 ->setDescription(
49 pht(
50 'Map of custom fields for Owners packages. For details on '.
51 'adding custom fields to Owners, see "Configuring Custom '.
52 'Fields" in the documentation.'))
53 ->addExample($fields_example, pht('Valid Setting')),
54 );
55 }
56
57}