From 9752c88c66b438078b6bc1b26352077f08933a42 Mon Sep 17 00:00:00 2001 From: petarpetkovic Date: Mon, 6 Nov 2017 20:03:12 +0100 Subject: [PATCH] Provide personal tools getter - Add public function to get user's personal tools. - Add new level of abstraction to the creation on personal tools list items, by enabling user to provide list of personal tools. Change-Id: I549376af6f7380dbadfb5f3f7f7171bbe64cccd7 --- includes/skins/SkinTemplate.php | 37 +++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index 532ee518a5..badd7a2ead 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -524,15 +524,48 @@ class SkinTemplate extends Skin { * @return string */ public function getPersonalToolsList() { + return $this->makePersonalToolsList(); + } + + /** + * Get the HTML for the personal tools list + * + * @since 1.31 + * + * @param array $personalTools + * @param array $options + * @return string + */ + public function makePersonalToolsList( $personalTools = null, $options = [] ) { $tpl = $this->setupTemplateForOutput(); $tpl->set( 'personal_urls', $this->buildPersonalUrls() ); $html = ''; - foreach ( $tpl->getPersonalTools() as $key => $item ) { - $html .= $tpl->makeListItem( $key, $item ); + + if ( $personalTools === null ) { + $personalTools = $tpl->getPersonalTools(); + } + + foreach ( $personalTools as $key => $item ) { + $html .= $tpl->makeListItem( $key, $item, $options ); } + return $html; } + /** + * Get personal tools for the user + * + * @since 1.31 + * + * @return array Array of personal tools + */ + public function getStructuredPersonalTools() { + $tpl = $this->setupTemplateForOutput(); + $tpl->set( 'personal_urls', $this->buildPersonalUrls() ); + + return $tpl->getPersonalTools(); + } + /** * Format language name for use in sidebar interlanguage links list. * By default it is capitalized. -- 2.20.1