|
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' ), |
|
|
|
|
|
|
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' ), |
|
|
|
|
|
|
110
|
|
|
]; |
|
111
|
|
|
} |
|
112
|
|
|
} |
|
113
|
|
|
|
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.