From b68fdb473d03878911b0874a75564c8a7f08d03d Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 16 May 2017 01:40:36 +0200 Subject: Extend interfaces Signed-off-by: Arthur Schiwon --- lib/private/Settings/Manager.php | 36 ++++++++++++++++++++++++++++++++++++ lib/public/Settings/IManager.php | 17 +++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index d40dfd1e417..a307261c83f 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -337,6 +337,24 @@ class Manager implements IManager { return $forms; } + /** + * @param string $section + * @return ISection[] + */ + private function getBuiltInPersonalSettings($section) { + $forms = []; + try { + if ($section === 'personal-info') { + /** @var ISettings $form */ + $form = new Personal\PersonalInfo(); + $forms[$form->getPriority()] = [$form]; + } + } catch (QueryException $e) { + // skip + } + return $forms; + } + /** * @inheritdoc */ @@ -358,4 +376,22 @@ class Manager implements IManager { ksort($settings); return $settings; } + + /** + * @inheritdoc + */ + public function getPersonalSections() { + $sections = [ + 0 => [new Section('personal-info', $this->l->t('Personal info'), 0, $this->url->imagePath('core', 'actions/info.svg'))], + ]; + return $sections; + } + + /** + * @inheritdoc + */ + public function getPersonalSettings($section) { + $settings = $this->getBuiltInPersonalSettings($section); + return $settings; + } } diff --git a/lib/public/Settings/IManager.php b/lib/public/Settings/IManager.php index a406915ad09..2c992399267 100644 --- a/lib/public/Settings/IManager.php +++ b/lib/public/Settings/IManager.php @@ -87,6 +87,14 @@ interface IManager { */ public function getAdminSections(); + /** + * returns a list of the personal sections + * + * @return array array of ISection[] where key is the priority + * @since 12.0.0 + */ + public function getPersonalSections(); + /** * returns a list of the admin settings * @@ -95,4 +103,13 @@ interface IManager { * @since 9.1.0 */ public function getAdminSettings($section); + + /** + * returns a list of the personal settings + * + * @param string $section the section id for which to load the settings + * @return array array of IPersonal[] where key is the priority + * @since 12.0.0 + */ + public function getPersonalSettings($section); } -- cgit v1.2.3