Code

< 40 %
40-60 %
> 60 %
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.', 'wp-github-sync' ) ) . '</a>';
15
}
16
17
/**
18
 * Returns the URL to view the current post on GitHub.
19
 *
20
 * @return string
21
 */
22
function get_the_github_view_url() {
23 2
	$wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() );
24
25 2
	return $wpghs_post->github_view_url();
26
}
27
28
/**
29
 * Returns the HTML markup to edit the current post on GitHub.
30
 *
31
 * @return string
32
 */
33
function get_the_github_edit_link() {
34 1
	return '<a href="' . get_the_github_edit_url() . '">' . apply_filters( 'wpghs_edit_link_text', __( 'Edit this post on GitHub.', 'wp-github-sync' ) ) . '</a>';
35
}
36
37
/**
38
 * Returns the URL to edit the current post on GitHub.
39
 *
40
 * @return string
41
 */
42
function get_the_github_edit_url() {
43 2
	$wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() );
44
45 2
	return $wpghs_post->github_edit_url();
46
}
47
48
49
/**
50
 * Common WPGHS function with attributes and shortcode
51
 *   - type: 'link' (default) to return a HTML anchor tag with text, or 'url' for bare URL.
52
 *   - target: 'view' (default) or 'edit' to return the respective link/url.
53
 *   - text: text to be included in the link. Ignored if type='url'.
54
 *
55
 * Returns either a HTML formatted anchor tag or the bare URL of the current post on GitHub.
56
 *
57
 * @return string
58
 */
59
function write_wpghs_link( $atts ) {
60
61
	$args = shortcode_atts(
62
		array(
63
			'type'   => 'link',
64
			'target' => 'view',
65
			'text'   => '',
66
		),
67
		$atts
68
	);
69
	$type   = esc_attr( $args['type'] );
70
	$target = esc_attr( $args['target'] );
71
	$text   = esc_attr( $args['text'] );
72
73
	$output = '';
74
75
	switch ( $target ) {
76 View Code Duplication
		case 'view': {
77
			$getter = get_the_github_view_url();
78
			if ( ! empty( $text ) ) {
79
				$linktext = $text;
80
			} else {
81
				$linktext = __( 'View this post on GitHub', 'wp-github-sync' );
82
			}
83
			break;
84
		}
85 View Code Duplication
		case 'edit': {
86
			$getter = get_the_github_edit_url();
87
			if ( ! empty( $text ) ) {
88
				$linktext = $text;
89
			} else {
90
				$linktext = __( 'Edit this post on GitHub', 'wp-github-sync' );
91
			}
92
			break;
93
		}
94
		default: {
95
			$getter = get_the_github_view_url();
96
			$linktext = __( 'View this post on GitHub', 'wp-github-sync' );
97
			break;
98
		}
99
	}
100
101
	switch ( $type ) {
102
		case 'link': {
103
			$output .= '<a href="' . $getter . '">' . $linktext . '</a>';
104
			break;
105
		}
106
		case 'url': {
107
			$output .= $getter;
108
			break;
109
		}
110
		default: {
111
			$output .= '<a href="' . $getter . '">' . $linktext . '</a>';
112
			break;
113
		}
114
	}
115
116
	return $output;
117
118
}
119