public static final function getAllPanelGroupsWithPanels()
 {
     $groups = self::getAllPanelGroups();
     $panels = PhabricatorSettingsPanel::getAllPanels();
     $panels = mgroup($panels, 'getPanelGroupKey');
     foreach ($groups as $key => $group) {
         $group->panels = idx($panels, $key, array());
     }
     return $groups;
 }
 protected function newPages($object)
 {
     $viewer = $this->getViewer();
     $user = $object->getUser();
     $panels = PhabricatorSettingsPanel::getAllPanels();
     foreach ($panels as $key => $panel) {
         if (!$panel instanceof PhabricatorEditEngineSettingsPanel) {
             unset($panels[$key]);
             continue;
         }
         $panel->setViewer($viewer);
         if ($user) {
             $panel->setUser($user);
         }
     }
     $pages = array();
     $uris = array();
     foreach ($panels as $key => $panel) {
         $uris[$key] = $panel->getPanelURI();
         $page = $panel->newEditEnginePage();
         if (!$page) {
             continue;
         }
         $pages[] = $page;
     }
     $more_pages = array(id(new PhabricatorEditPage())->setKey('extra')->setLabel(pht('Extra Settings'))->setIsDefault(true));
     foreach ($more_pages as $page) {
         $pages[] = $page;
     }
     return $pages;
 }