public function renderModuleStatus(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $extensions = PhabricatorSearchEngineExtension::getAllExtensions();
     $rows = array();
     foreach ($extensions as $extension) {
         $rows[] = array($extension->getExtensionOrder(), $extension->getExtensionKey(), get_class($extension), $extension->getExtensionName(), $extension->isExtensionEnabled() ? pht('Yes') : pht('No'));
     }
     return id(new AphrontTableView($rows))->setHeaders(array(pht('Order'), pht('Key'), pht('Class'), pht('Name'), pht('Enabled')))->setColumnClasses(array(null, null, null, 'wide pri', null));
 }
 private function getEngineExtensions()
 {
     $extensions = PhabricatorSearchEngineExtension::getAllEnabledExtensions();
     foreach ($extensions as $key => $extension) {
         $extension->setViewer($this->requireViewer())->setSearchEngine($this);
     }
     $object = $this->newResultObject();
     foreach ($extensions as $key => $extension) {
         if (!$extension->supportsObject($object)) {
             unset($extensions[$key]);
         }
     }
     return $extensions;
 }
 private function getConduitFieldExtensions()
 {
     $extensions = PhabricatorSearchEngineExtension::getAllEnabledExtensions();
     $object = $this->newQuery()->newResultObject();
     $field_extensions = array();
     foreach ($extensions as $key => $extension) {
         if ($extension->getFieldSpecificationsForConduit($object)) {
             $field_extensions[$key] = $extension;
         }
     }
     return $field_extensions;
 }
 private function getConduitFieldExtensions()
 {
     $extensions = PhabricatorSearchEngineExtension::getAllEnabledExtensions();
     $object = $this->newQuery()->newResultObject();
     $field_extensions = array();
     foreach ($extensions as $key => $extension) {
         $extension->setViewer($this->requireViewer());
         if (!$extension->supportsObject($object)) {
             continue;
         }
         if ($extension->getFieldSpecificationsForConduit($object)) {
             $field_extensions[$key] = $extension;
         }
     }
     return $field_extensions;
 }