Passed
Push — master ( f510e9...9822a2 )
by Paul
10:29
created

MetaboxController::normalizeDetailsMetaBox()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 19
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
eloc 14
c 0
b 0
f 0
dl 0
loc 19
ccs 0
cts 15
cp 0
rs 9.7998
cc 3
nc 4
nop 1
crap 12
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