Completed
Push — add/sso-analytics ( 683a91...e67d7d )
by
unknown
162:06 queued 152:34
created

Jetpack_Sync_Functions::file_system_write_access()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 21
Code Lines 13

Duplication

Lines 20
Ratio 95.24 %
Metric Value
cc 4
eloc 13
nc 6
nop 0
dl 20
loc 21
rs 9.0534
1
<?php
2
3
/*
4
 * Utility functions to generate data synced to wpcom
5
 */
6
7
class Jetpack_Sync_Functions {
8
9
	public static function get_modules() {
10
		$modules        = array();
11
		$active_modules = Jetpack::get_active_modules();
12
		foreach ( Jetpack::get_available_modules() as $available_module ) {
13
			$modules[ $available_module ] = in_array( $available_module, $active_modules );
14
		}
15
		$modules['vaultpress'] = class_exists( 'VaultPress' ) || function_exists( 'vaultpress_contact_service' );
16
17
		return $modules;
18
	}
19
20
	public static function get_taxonomies() {
21
		global $wp_taxonomies;
22
23
		return $wp_taxonomies;
24
	}
25
26
	public static function get_post_types() {
27
		global $wp_post_types;
28
29
		return $wp_post_types;
30
	}
31
32
	/**
33
	 * Finds out if a site is using a version control system.
34
	 * @return string ( '1' | '0' )
35
	 **/
36 View Code Duplication
	public static function is_version_controlled() {
37
38
		if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
39
			require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
40
		}
41
		$updater               = new WP_Automatic_Updater();
42
		$is_version_controlled = strval( $updater->is_vcs_checkout( $context = ABSPATH ) );
43
		// transients should not be empty
44
		if ( empty( $is_version_controlled ) ) {
45
			$is_version_controlled = '0';
46
		}
47
48
		return $is_version_controlled;
49
	}
50
51
	/**
52
	 * Returns true if the site has file write access false otherwise.
53
	 * @return string ( '1' | '0' )
54
	 **/
55 View Code Duplication
	public static function file_system_write_access() {
56
		if ( ! function_exists( 'get_filesystem_method' ) ) {
57
			require_once( ABSPATH . 'wp-admin/includes/file.php' );
58
		}
59
60
		require_once( ABSPATH . 'wp-admin/includes/template.php' );
61
62
		$filesystem_method = get_filesystem_method();
63
		if ( $filesystem_method === 'direct' ) {
64
			return 1;
65
		}
66
67
		ob_start();
68
		$filesystem_credentials_are_stored = request_filesystem_credentials( self_admin_url() );
69
		ob_end_clean();
70
		if ( $filesystem_credentials_are_stored ) {
71
			return 1;
72
		}
73
74
		return 0;
75
	}
76
}