Completed
Pull Request — master (#139)
by
unknown
06:22
created

helpers.php ➔ get_the_github_view_url()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
ccs 2
cts 2
cp 1
crap 1
rs 9.4285
c 2
b 0
f 1
1
<?php
2
/**
3
 * Theme helper functions.
4
 *
5
 * @package WordPress_GitHub_SYnc
6
 */
7
8
/**
9
 * Returns the HTML markup to view the current post on GitHub.
10
 *
11
 * @return string
12
 */
13
function get_the_github_view_link() {
14 1
	return '<a href="' . get_the_github_view_url() . '">' . apply_filters( 'wpghs_view_link_text', 'View this post on GitHub.' ) . '</a>';
15
}
16
add_shortcode( 'get_the_github_view_link', 'get_the_github_view_link' );
17
18
/**
19
 * Returns the URL to view the current post on GitHub.
20
 *
21
 * @return string
22
 */
23 2
function get_the_github_view_url() {
24
	$wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() );
25 2
26
	return $wpghs_post->github_view_url();
27
}
28
add_shortcode( 'get_the_github_view_url', 'get_the_github_view_url' );
29
30
/**
31
 * Returns the HTML markup to edit the current post on GitHub.
32
 *
33
 * @return string
34 1
 */
35
function get_the_github_edit_link() {
36
	return '<a href="' . get_the_github_edit_url() . '">' . apply_filters( 'wpghs_edit_link_text', 'Edit this post on GitHub.' ) . '</a>';
37
}
38
add_shortcode( 'get_the_github_edit_link', 'get_the_github_edit_link' );
39
40
/**
41
 * Returns the URL to edit the current post on GitHub.
42
 *
43 2
 * @return string
44
 */
45 2
function get_the_github_edit_url() {
46
	$wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() );
47
48
	return $wpghs_post->github_edit_url();
49
}
50
add_shortcode( 'get_the_github_edit_url', 'get_the_github_edit_url' );
51
52
53
/**
54
 * EXAMPLE FROM https://codex.wordpress.org/Shortcode_API
55
 * // [bartag foo="foo-value"]
56
 * function bartag_func( $atts ) {
57
 *	 $a = shortcode_atts( array(
58
 *		 'foo' => 'something',
59
 *		 'bar' => 'something else',
60
 *	 ), $atts );
61
 * 
62
 *	 return "foo = {$a['foo']}";
63
 * }
64
 * add_shortcode( 'bartag', 'bartag_func' );
65
 */
66
67
/**
68
 * Function with attributes
69
 *   - type: 'link' (default) to return a HTML anchor tag with text, or 'url' for bare URL.
70
 *   - target: 'view' (default) or 'edit' to return the respective link/url.
71
 *   - text: text to be included in the link. Ignored if type='url'.
72
 * 
73
 * Returns either a HTML formatted anchor tag or the bare URL of the current post on GitHub.
74
 *
75
 * @return string
76
 */
77
function write_wpghs_link( $atts ) { 
78
79
	$args = shortcode_atts(
80
		array(
81
			'type'   => 'link',
82
			'target' => 'view',
83
			'text'   => '',
84
		),
85
		$atts
86
	);
87
	$type   = esc_attr( $args['type'] );
88
	$target = esc_attr( $args['target'] );
89
	$text   = esc_attr( $args['text'] );
90
91
	$output = '';
92
93
	switch( $target ) { 
0 ignored issues
show
introduced by
Space after opening control structure is required
Loading history...
introduced by
No space before opening parenthesis is prohibited
Loading history...
94
		case 'view': { 
95
			$getter = get_the_github_view_url();
96
			if( ! empty( $text ) ) {
0 ignored issues
show
introduced by
Space after opening control structure is required
Loading history...
introduced by
No space before opening parenthesis is prohibited
Loading history...
97
				$linktext = $text;
98
			} else { 
99
				$linktext = 'View this post on GitHub';
100
			}
101
			break;
102
		}
103
		case 'edit': { 
104
			$getter = get_the_github_edit_url();
105
			if( ! empty( $text ) ) {
0 ignored issues
show
introduced by
Space after opening control structure is required
Loading history...
introduced by
No space before opening parenthesis is prohibited
Loading history...
106
				$linktext = $text;
107
			} else { 
108
				$linktext = 'Edit this post on GitHub';
109
			}
110
			break;
111
		}
112
		default: { 
113
			$getter = get_the_github_view_url();
114
			$linktext = 'View this post on GitHub';
115
			break;
116
		}
117
	}
118
119
	switch( $type ) { 
0 ignored issues
show
introduced by
Space after opening control structure is required
Loading history...
introduced by
No space before opening parenthesis is prohibited
Loading history...
120
		case 'link': { 
121
			$output .= '<a href="' . $getter . '">' . $linktext . '</a>';
122
			break;
123
		}
124
		case 'url': { 
125
			$output .= $getter;
126
			break;
127
		}
128
	}
129
	default: { 
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_DEFAULT
Loading history...
130
		$output .= '<a href="' . $getter . '">' . $linktext . '</a>';
131
		break;
132
	}
133
}
134
135
return $output;
136
137
}
138
add_shortcode( 'wpghs', 'write_wpghs_link' );
139