protected final function buildEditFields($object) { $viewer = $this->getViewer(); $fields = $this->buildCustomEditFields($object); foreach ($fields as $field) { $field->setViewer($viewer)->setObject($object); } $fields = mpull($fields, null, 'getKey'); $this->didBuildCustomEditFields($object, $fields); $extensions = PhabricatorEditEngineExtension::getAllEnabledExtensions(); foreach ($extensions as $extension) { $extension->setViewer($viewer); if (!$extension->supportsObject($this, $object)) { continue; } $extension_fields = $extension->buildCustomEditFields($this, $object); // TODO: Validate this in more detail with a more tailored error. assert_instances_of($extension_fields, 'PhabricatorEditField'); foreach ($extension_fields as $field) { $field->setViewer($viewer)->setObject($object); } $extension_fields = mpull($extension_fields, null, 'getKey'); $extension->didBuildCustomEditFields($this, $object, $extension_fields); foreach ($extension_fields as $key => $field) { $fields[$key] = $field; } } $config = $this->getEditEngineConfiguration(); $fields = $config->applyConfigurationToFields($this, $object, $fields); return $fields; }
public function renderModuleStatus(AphrontRequest $request) { $viewer = $request->getViewer(); $extensions = PhabricatorEditEngineExtension::getAllExtensions(); $rows = array(); foreach ($extensions as $extension) { $rows[] = array($extension->getExtensionPriority(), get_class($extension), $extension->getExtensionName(), $extension->isExtensionEnabled() ? pht('Yes') : pht('No')); } return id(new AphrontTableView($rows))->setHeaders(array(pht('Priority'), pht('Class'), pht('Name'), pht('Enabled')))->setColumnClasses(array(null, null, 'wide pri', null)); }