1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Controllers; |
4
|
|
|
|
5
|
|
|
use GeminiLabs\SiteReviews\Database\Query; |
6
|
|
|
use GeminiLabs\SiteReviews\Metaboxes\AssignedPostsMetabox; |
7
|
|
|
use GeminiLabs\SiteReviews\Metaboxes\AssignedUsersMetabox; |
8
|
|
|
use GeminiLabs\SiteReviews\Metaboxes\AuthorMetabox; |
9
|
|
|
use GeminiLabs\SiteReviews\Metaboxes\DetailsMetabox; |
10
|
|
|
use GeminiLabs\SiteReviews\Metaboxes\ResponseMetabox; |
11
|
|
|
use GeminiLabs\SiteReviews\Modules\Html\Template; |
12
|
|
|
|
13
|
|
|
class MetaboxController extends Controller |
14
|
|
|
{ |
15
|
|
|
/** |
16
|
|
|
* @return array |
17
|
|
|
* @filter site-reviews/config/forms/metabox-fields |
18
|
|
|
*/ |
19
|
|
|
public function filterFieldOrder(array $config) |
20
|
|
|
{ |
21
|
|
|
$order = array_keys($config); |
22
|
|
|
$order = glsr()->filterArray('metabox/fields/order', $order); |
23
|
|
|
return array_intersect_key(array_merge(array_flip($order), $config), $config); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
/** |
27
|
|
|
* @param \WP_Post $post |
28
|
|
|
* @return void |
29
|
|
|
* @action add_meta_boxes_{glsr()->post_type} |
30
|
|
|
*/ |
31
|
|
|
public function registerMetaBoxes($post) |
32
|
|
|
{ |
33
|
|
|
glsr(AssignedPostsMetabox::class)->register($post); |
34
|
|
|
glsr(AssignedUsersMetabox::class)->register($post); |
35
|
|
|
glsr(AuthorMetabox::class)->register($post); |
36
|
|
|
glsr(DetailsMetabox::class)->register($post); |
37
|
|
|
glsr(ResponseMetabox::class)->register($post); |
38
|
|
|
} |
39
|
|
|
|
40
|
|
|
/** |
41
|
|
|
* @return void |
42
|
|
|
* @action do_meta_boxes |
43
|
|
|
*/ |
44
|
|
|
public function removeMetaBoxes() |
45
|
|
|
{ |
46
|
|
|
if ($this->isReviewEditor()) { |
47
|
|
|
remove_meta_box('authordiv', glsr()->post_type, 'normal'); |
48
|
|
|
remove_meta_box('slugdiv', glsr()->post_type, 'normal'); |
49
|
|
|
} |
50
|
|
|
} |
51
|
|
|
|
52
|
|
|
/** |
53
|
|
|
* @return void |
54
|
|
|
* @action post_submitbox_misc_actions |
55
|
|
|
*/ |
56
|
|
|
public function renderPinnedInPublishMetaBox() |
57
|
|
|
{ |
58
|
|
|
$review = glsr(Query::class)->review(get_post()->ID); |
59
|
|
|
if ($review->isValid() && glsr()->can('edit_others_posts')) { |
60
|
|
|
glsr(Template::class)->render('partials/editor/pinned', [ |
61
|
|
|
'context' => [ |
62
|
|
|
'no' => _x('No', 'admin-text', 'site-reviews'), |
63
|
|
|
'yes' => _x('Yes', 'admin-text', 'site-reviews'), |
64
|
|
|
], |
65
|
|
|
'pinned' => $review->is_pinned, |
66
|
|
|
]); |
67
|
|
|
} |
68
|
|
|
} |
69
|
|
|
} |
70
|
|
|
|