Completed
Push — add/admin-page-package ( b95118 )
by
unknown
26:28 queued 19:26
created

Footer::render()   B

Complexity

Conditions 7
Paths 16

Size

Total Lines 83

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
nc 16
nop 0
dl 0
loc 83
rs 7.4375
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Automattic\Jetpack\AdminPage;
4
5
/**
6
 * Create and Render the Jetpack Footer
7
 */
8
class Footer {
9
10
	/**
11
	 * Build and render the Jetpack page Footer
12
	 *
13
	 * @return string
14
	 */
15
	public function render() {
16
17
		$jetpack_admin_url = admin_url( 'admin.php?page=jetpack' );
18
		$jetpack_about_url = ( apply_filters( 'jetpack_in_dev_mode', false ) )
19
			? admin_url( 'admin.php?page=jetpack_about' )
20
			: 'https://jetpack.com';
21
		ob_start();
22
23
		$links = array(
24
			array(
25
				'title' => __( 'Jetpack version', 'jetpack' ),
26
				'name'  => 'Jetpack  ' . JETPACK__VERSION,
27
				'url'   => 'https://jetpack.com',
28
			),
29
			array(
30
				'title' => __( 'About Jetpack', 'jetpack' ),
31
				'name'  => __( 'About', 'jetpack' ),
32
				'url'   => $jetpack_about_url,
33
			),
34
			array(
35
				'title' => __( 'WordPress.com Terms of Service', 'jetpack' ),
36
				'name'  => _x( 'Terms', 'Navigation item', 'jetpack' ),
37
				'url'   => 'https://wordpress.com/tos/',
38
			),
39
			array(
40
				'title' => __( "Automattic's Privacy Policy", 'jetpack' ),
41
				'name'  => _x( 'Privacy', 'Navigation item', 'jetpack' ),
42
				'url'   => $jetpack_admin_url . '#/privacy',
43
			),
44
		);
45
46
		if ( is_multisite() && current_user_can( 'jetpack_network_settings_page' ) ) {
47
			$links[] = array(
48
				'title' => __( "Manage your network's Jetpack Sites.", 'jetpack' ),
49
				'name'  => _x( 'Network Sites', 'Navigation item', 'jetpack' ),
50
				'url'   => network_admin_url( 'admin.php?page=jetpack' ),
51
			);
52
			$links[] = array(
53
				'title' => __( 'Jetpack version', 'jetpack' ),
54
				'name'  => 'Jetpack  {JETPACK__VERSION}',
55
				'url'   => network_admin_url( 'admin.php?page=jetpack-settings' ),
56
			);
57
		}
58
59
		if ( current_user_can( 'manage_options' ) ) {
60
			$links[]           = array(
61
				'title' => __( 'Access the full list of Jetpack modules available on your site.', 'jetpack' ),
62
				'name'  => _x( 'Modules', 'Navigation item', 'jetpack' ),
63
				'url'   => admin_url( 'admin.php?page=jetpack_modules' ),
64
			);
65
			$links['debugger'] = array(
66
				'title' => __( "Test your site's compatibility with Jetpack.", 'jetpack' ),
67
				'name'  => _x( 'Debug', 'Navigation item', 'jetpack' ),
68
				'url'   => admin_url( 'admin.php?page=jetpack-debugger' ),
69
			);
70
		}
71
		/**
72
		 * Filter the links present in the footer.
73
		 *
74
		 * @since 7.5.0
75
		 */
76
		$links = apply_filters( 'jetpack-admin-page-footter-links', $links );
77
		?>
78
		<div class="jetpack-admin-page__footer">
79
			<div class="jp-footer__a8c-attr-container">
80
				<a href="<?php echo esc_url( $jetpack_about_url ); ?>">
81
					<svg role="img" class="jp-footer__a8c-attr" x="0" y="0" viewBox="0 0 935 38.2" enable-background="new 0 0 935 38.2" aria-labelledby="a8c-svg-title"><title id="a8c-svg-title">An Automattic Airline</title><path d="M317.1 38.2c-12.6 0-20.7-9.1-20.7-18.5v-1.2c0-9.6 8.2-18.5 20.7-18.5 12.6 0 20.8 8.9 20.8 18.5v1.2C337.9 29.1 329.7 38.2 317.1 38.2zM331.2 18.6c0-6.9-5-13-14.1-13s-14 6.1-14 13v0.9c0 6.9 5 13.1 14 13.1s14.1-6.2 14.1-13.1V18.6zM175 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7L157 1.3h5.5L182 36.8H175zM159.7 8.2L152 23.1h15.7L159.7 8.2zM212.4 38.2c-12.7 0-18.7-6.9-18.7-16.2V1.3h6.6v20.9c0 6.6 4.3 10.5 12.5 10.5 8.4 0 11.9-3.9 11.9-10.5V1.3h6.7V22C231.4 30.8 225.8 38.2 212.4 38.2zM268.6 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H268.6zM397.3 36.8V8.7l-1.8 3.1 -14.9 25h-3.3l-14.7-25 -1.8-3.1v28.1h-6.5V1.3h9.2l14 24.4 1.7 3 1.7-3 13.9-24.4h9.1v35.5H397.3zM454.4 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7l19.2-35.5h5.5l19.5 35.5H454.4zM439.1 8.2l-7.7 14.9h15.7L439.1 8.2zM488.4 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H488.4zM537.3 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H537.3zM569.3 36.8V4.6c2.7 0 3.7-1.4 3.7-3.4h2.8v35.5L569.3 36.8 569.3 36.8zM628 11.3c-3.2-2.9-7.9-5.7-14.2-5.7 -9.5 0-14.8 6.5-14.8 13.3v0.7c0 6.7 5.4 13 15.3 13 5.9 0 10.8-2.8 13.9-5.7l4 4.2c-3.9 3.8-10.5 7.1-18.3 7.1 -13.4 0-21.6-8.7-21.6-18.3v-1.2c0-9.6 8.9-18.7 21.9-18.7 7.5 0 14.3 3.1 18 7.1L628 11.3zM321.5 12.4c1.2 0.8 1.5 2.4 0.8 3.6l-6.1 9.4c-0.8 1.2-2.4 1.6-3.6 0.8l0 0c-1.2-0.8-1.5-2.4-0.8-3.6l6.1-9.4C318.7 11.9 320.3 11.6 321.5 12.4L321.5 12.4z"></path><path d="M37.5 36.7l-4.7-8.9H11.7l-4.6 8.9H0L19.4 0.8H25l19.7 35.9H37.5zM22 7.8l-7.8 15.1h15.9L22 7.8zM82.8 36.7l-23.3-24 -2.3-2.5v26.6h-6.7v-36H57l22.6 24 2.3 2.6V0.8h6.7v35.9H82.8z"></path><path d="M719.9 37l-4.8-8.9H694l-4.6 8.9h-7.1l19.5-36h5.6l19.8 36H719.9zM704.4 8l-7.8 15.1h15.9L704.4 8zM733 37V1h6.8v36H733zM781 37c-1.8 0-2.6-2.5-2.9-5.8l-0.2-3.7c-0.2-3.6-1.7-5.1-8.4-5.1h-12.8V37H750V1h19.6c10.8 0 15.7 4.3 15.7 9.9 0 3.9-2 7.7-9 9 7 0.5 8.5 3.7 8.6 7.9l0.1 3c0.1 2.5 0.5 4.3 2.2 6.1V37H781zM778.5 11.8c0-2.6-2.1-5.1-7.9-5.1h-13.8v10.8h14.4c5 0 7.3-2.4 7.3-5.2V11.8zM794.8 37V1h6.8v30.4h28.2V37H794.8zM836.7 37V1h6.8v36H836.7zM886.2 37l-23.4-24.1 -2.3-2.5V37h-6.8V1h6.5l22.7 24.1 2.3 2.6V1h6.8v36H886.2zM902.3 37V1H935v5.6h-26v9.2h20v5.5h-20v10.1h26V37H902.3z"></path></svg>
82
				</a>
83
			</div>
84
			<?php if ( $links ) : ?>
85
				<ul class="jetpack-admin-page__footer-links">
86
					<?php foreach ( $links as $link ) : ?>
87
						<li class="jetpack-admin-page__footer-link-item">
88
							<a href="<?php echo esc_url( $link['url'] ); ?>" target="_blank" rel="noopener noreferrer" class="jetpack-admin-page__footer-link" title="<?php echo esc_attr( $link['title'] ); ?>"><?php echo esc_html( $link['name'] ); ?></a>
89
						</li>
90
					<?php endforeach; ?>
91
				</ul>
92
			<?php endif; ?>
93
		</div>
94
		<?php
95
96
		return ob_get_clean();
97
	}
98
}
99