Test Failed
Push — main ( 5ad595...61d11b )
by Paul
06:26
created

MetaboxController::filterFieldOrder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 6
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Controllers;
4
5
use GeminiLabs\SiteReviews\Database\ReviewManager;
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
use GeminiLabs\SiteReviews\Review;
13
14
class MetaboxController extends AbstractController
15
{
16
    /**
17
     * @filter site-reviews/metabox-form/fields
18
     */
19
    public function filterFieldOrder(array $config): array
20
    {
21
        $order = array_keys($config);
22
        $order = glsr()->filterArray('metabox-form/fields/order', $order);
23
        $ordered = array_intersect_key(array_merge(array_flip($order), $config), $config);
24
        return $ordered;
25
    }
26
27
    /**
28
     * @action add_meta_boxes_{glsr()->post_type}
29
     */
30
    public function registerMetaBoxes(\WP_Post $post): void
31
    {
32
        glsr(AssignedPostsMetabox::class)->register($post);
33
        glsr(AssignedUsersMetabox::class)->register($post);
34
        glsr(AuthorMetabox::class)->register($post);
35
        glsr(DetailsMetabox::class)->register($post);
36
        glsr(ResponseMetabox::class)->register($post);
37
    }
38
39
    /**
40
     * @action do_meta_boxes
41
     */
42
    public function removeMetaBoxes(string $postType): void
43
    {
44
        if (glsr()->post_type !== $postType) {
45
            return;
46
        }
47
        remove_meta_box('authordiv', $postType, 'normal');
48
        remove_meta_box('slugdiv', $postType, 'normal');
49
    }
50
51
    /**
52
     * @action post_submitbox_misc_actions
53
     */
54
    public function renderPinnedAction(\WP_Post $post): void
55
    {
56
        if (!Review::isReview($post)) {
57
            return;
58
        }
59
        $review = glsr(ReviewManager::class)->get($post->ID);
60
        if (!$review->isValid()) {
61
            return;
62
        }
63
        glsr(Template::class)->render('partials/editor/pinned', [
64
            'is_pinned' => $review->is_pinned,
65
        ]);
66
    }
67
}
68