Passed
Push — master ( 36836d...ee0da0 )
by Paul
04:21
created

Labels::canModifyTranslation()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 3
nc 3
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 3
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules\Editor;
4
5
use GeminiLabs\SiteReviews\Application;
6
use WP_Post;
7
8
class Labels
9
{
10
	/**
11
	 * @return void
12
	 */
13
	public function customizePostStatusLabels()
14
	{
15
		global $wp_scripts;
16
		$strings = [
17
			'savePending' => __( 'Save as Unapproved', 'site-reviews' ),
18
			'published' => __( 'Approved', 'site-reviews' ),
19
		];
20
		if( $this->canModifyTranslation() && isset( $wp_scripts->registered['post']->extra['data'] )) {
21
			$l10n = &$wp_scripts->registered['post']->extra['data'];
22
			foreach( $strings as $search => $replace ) {
23
				$l10n = preg_replace( '/("'.$search.'":")([^"]+)/', "$1".$replace, $l10n );
24
			}
25
		}
26
	}
27
28
	/**
29
	 * @param string $translation
30
	 * @param string $test
31
	 * @param string $domain
32
	 * @return string
33
	 */
34 7
	public function filterPostStatusLabels( $translation, $text, $domain )
35
	{
36 7
		if( $this->canModifyTranslation( $domain )) {
37
			$replacements = [
38
				'Pending Review' => __( 'Unapproved', 'site-reviews' ),
39
				'Pending' => __( 'Unapproved', 'site-reviews' ),
40
				'Privately Published' => __( 'Privately Approved', 'site-reviews' ),
41
				'Published' => __( 'Approved', 'site-reviews' ),
42
				'Save as Pending' => __( 'Save as Unapproved', 'site-reviews' ),
43
			];
44
			foreach( $replacements as $search => $replacement ) {
45
				if( $translation != $search )continue;
46
				$translation = $replacement;
47
			}
48
		}
49 7
		return $translation;
50
	}
51
52
	/**
53
	 * @return array
54
	 */
55
	public function filterUpdateMessages( array $messages )
56
	{
57
		$post = get_post();
58
		if( !( $post instanceof WP_Post ))return;
59
		$strings = $this->getReviewLabels();
60
		$restored = filter_input( INPUT_GET, 'revision' );
61
		if( $revisionTitle = wp_post_revision_title( intval( $restored ), false )) {
62
			$restored = sprintf( $strings['restored'], $revisionTitle );
63
		}
64
		$scheduled_date = date_i18n( 'M j, Y @ H:i', strtotime( $post->post_date ));
65
		$messages[ Application::POST_TYPE ] = [
66
			 1 => $strings['updated'],
67
			 4 => $strings['updated'],
68
			 5 => $restored,
69
			 6 => $strings['published'],
70
			 7 => $strings['saved'],
71
			 8 => $strings['submitted'],
72
			 9 => sprintf( $strings['scheduled'], '<strong>'.$scheduled_date.'</strong>' ),
73
			10 => $strings['draft_updated'],
74
			50 => $strings['approved'],
75
			51 => $strings['unapproved'],
76
			52 => $strings['reverted'],
77
		];
78
		return $messages;
79
	}
80
81
	/**
82
	 * @param string $domain
83
	 * @return bool
84
	 */
85 7
	protected function canModifyTranslation( $domain = 'default' )
86
	{
87 7
		return glsr_current_screen()->post_type == Application::POST_TYPE
88 7
			&& in_array( glsr_current_screen()->base, ['edit', 'post'] )
89 7
			&& $domain == 'default';
90
	}
91
92
	/**
93
	 * @return array
94
	 */
95
	protected function getReviewLabels()
96
	{
97
		return [
98
			'approved' => __( 'Review has been approved and published.', 'site-reviews' ),
99
			'draft_updated' => __( 'Review draft updated.', 'site-reviews' ),
100
			// 'preview' => __( 'Preview review', 'site-reviews' ),
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
101
			'published' => __( 'Review approved and published.', 'site-reviews' ),
102
			'restored' => __( 'Review restored to revision from %s.', 'site-reviews' ),
103
			'reverted' => __( 'Review has been reverted to its original submission state.', 'site-reviews' ),
104
			'saved' => __( 'Review saved.', 'site-reviews' ),
105
			'scheduled' => __( 'Review scheduled for: %s.', 'site-reviews' ),
106
			'submitted' => __( 'Review submitted.', 'site-reviews' ),
107
			'unapproved' => __( 'Review has been unapproved and is now pending.', 'site-reviews' ),
108
			'updated' => __( 'Review updated.', 'site-reviews' ),
109
			// 'view' => __( 'View review', 'site-reviews' ),
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
110
		];
111
	}
112
}
113