GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — master (#5)
by mw
13:19
created

ToolbarHorizontal::addLanguageLinks()   B

Complexity

Conditions 4
Paths 2

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 4.25

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 22
ccs 3
cts 4
cp 0.75
rs 8.9197
cc 4
eloc 13
nc 2
nop 1
crap 4.25
1
<?php
2
/**
3
 * File containing the ToolbarHorizontal class
4
 *
5
 * This file is part of the MediaWiki skin Chameleon.
6
 *
7
 * @copyright 2013 - 2015, Stephan Gambke
8
 * @license   GNU General Public License, version 3 (or any later version)
9
 *
10
 * The Chameleon skin is free software: you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by the Free
12
 * Software Foundation, either version 3 of the License, or (at your option) any
13
 * later version.
14
 *
15
 * The Chameleon skin is distributed in the hope that it will be useful, but
16
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
18
 * details.
19
 *
20
 * You should have received a copy of the GNU General Public License along
21
 * with this program. If not, see <http://www.gnu.org/licenses/>.
22
 *
23
 * @file
24
 * @ingroup   Skins
25
 */
26
27
namespace Skins\Chameleon\Components;
28
29
use Hooks;
30
use Linker;
31
32
/**
33
 * ToolbarHorizontal class
34
 *
35
 * A horizontal toolbar containing standard sidebar items (toolbox, language links).
36
 *
37
 * The toolbar is an unordered list in a nav element: <nav role="navigation" id="p-tb" >
38
 *
39
 * @author Stephan Gambke
40
 * @since 1.0
41
 * @ingroup Skins
42
 */
43
class ToolbarHorizontal extends Component {
44
45
	/**
46
	 * Builds the HTML code for this component
47
	 *
48
	 * @return String the HTML code
49
	 */
50 7
	public function getHtml() {
51
52 7
		$skinTemplate = $this->getSkinTemplate();
53
54 7
		$ret = $this->indent() . '<!-- ' . htmlspecialchars( $skinTemplate->getMsg( 'toolbox' )->text() ) . '-->' .
55 7
			   $this->indent() . '<nav class="navbar navbar-default p-tb ' . $this->getClassString() . '" id="p-tb" ' . Linker::tooltip( 'p-tb' ) . ' >' .
56 7
			   $this->indent( 1 ) . '<ul class="nav navbar-nav small">';
57
58
		// insert toolbox items
59
		// TODO: Do we need to care of dropdown menus here? E.g. RSS feeds? See SkinTemplateToolboxEnd.php:1485
60 7
		$this->indent( 1 );
61 7
		foreach ( $skinTemplate->getToolbox() as $key => $tbitem ) {
62
			$ret .= $this->indent() . $skinTemplate->makeListItem( $key, $tbitem );
63 7
		}
64
65 7
		ob_start();
66
		// We pass an extra 'true' at the end so extensions using BaseTemplateToolbox
67
		// can abort and avoid outputting double toolbox links
68 7
		Hooks::run( 'SkinTemplateToolboxEnd', array( &$skinTemplate, true ) );
69 7
		$ret .= $this->indent() . ob_get_contents();
70 7
		ob_end_clean();
71
72
		// insert language links
73 7
		if ( !$this->hasLanguageLinksSidebarIndicator() ) {
74
			$ret .= $this->addLanguageLinks( $skinTemplate );
75
		}
76
77
		$ret .= $this->indent( -1 ) . '</ul>' .
78
				$this->indent( -1 ) . '</nav>' . "\n";
79
80
		return $ret;
81
	}
82
83
	private function hasLanguageLinksSidebarIndicator() {
84
		return array_search( 'languages', array_keys( $this->getSkinTemplate()->getSidebar() ) ) !== false;
85
	}
86
87
	private function addLanguageLinks( $skinTemplate ) {
88
89 7
		$ret = '';
90 7
91
		if ( array_key_exists( 'language_urls', $skinTemplate->data ) && $skinTemplate->data[ 'language_urls' ] ) {
92 7
93
			$ret .= $this->indent() . '<li class="dropdown dropup p-lang" id="p-lang" ' . Linker::tooltip( 'p-lang' ) . ' >' .
94
					$this->indent( 1 ) . '<a href="#" data-target="#" class="dropdown-toggle" data-toggle="dropdown">' .
95
					htmlspecialchars( $skinTemplate->getMsg( 'otherlanguages' )->text() ) . ' <b class="caret"></b>' . '</a>' .
96
					$this->indent() . '<ul class="dropdown-menu" >';
97
98
			$this->indent( 1 );
99
			foreach ( $skinTemplate->data[ 'language_urls' ] as $key => $langlink ) {
100
				$ret .= $this->indent() . $skinTemplate->makeListItem( $key, $langlink, array( 'link-class' => 'small' ) );
101
			}
102
103
			$ret .= $this->indent( -1 ) . '</ul>' .
104
					$this->indent( -1 ) . '</li>';
105
		}
106
107
		return $ret;
108
	}
109
110
}
111