1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-02 19:52:44 +01:00
phorge-phorge/src/applications/transactions/engineextension/PhabricatorEditEngineExtension.php

60 lines
1.4 KiB
PHP
Raw Normal View History

<?php
abstract class PhabricatorEditEngineExtension extends Phobject {
private $viewer;
final public function getExtensionKey() {
return $this->getPhobjectClassConstant('EXTENSIONKEY');
}
final public function setViewer($viewer) {
$this->viewer = $viewer;
return $this;
}
final public function getViewer() {
return $this->viewer;
}
public function getExtensionPriority() {
return 1000;
}
abstract public function isExtensionEnabled();
abstract public function getExtensionName();
abstract public function supportsObject(
PhabricatorEditEngine $engine,
PhabricatorApplicationTransactionInterface $object);
abstract public function buildCustomEditFields(
PhabricatorEditEngine $engine,
PhabricatorApplicationTransactionInterface $object);
public function newBulkEditGroups(PhabricatorEditEngine $engine) {
return array();
}
final public static function getAllExtensions() {
return id(new PhutilClassMapQuery())
->setAncestorClass(__CLASS__)
->setUniqueMethod('getExtensionKey')
->setSortMethod('getExtensionPriority')
->execute();
}
final public static function getAllEnabledExtensions() {
$extensions = self::getAllExtensions();
foreach ($extensions as $key => $extension) {
if (!$extension->isExtensionEnabled()) {
unset($extensions[$key]);
}
}
return $extensions;
}
}