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

AssignedUsersMetabox::render()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
dl 0
loc 17
ccs 0
cts 16
cp 0
rs 9.8666
c 1
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Metaboxes;
4
5
use GeminiLabs\SiteReviews\Contracts\MetaboxContract;
6
use GeminiLabs\SiteReviews\Database\Query;
7
use GeminiLabs\SiteReviews\Modules\Html\Template;
8
use GeminiLabs\SiteReviews\Review;
9
10
class AssignedUsersMetabox implements MetaboxContract
11
{
12
    /**
13
     * {@inheritdoc}
14
     */
15
    public function register($post)
16
    {
17
        if (Review::isReview($post)) {
18
            $id = glsr()->post_type.'-usersdiv';
19
            $title = _x('Assigned Users', 'admin-text', 'site-reviews');
20
            add_meta_box($id, $title, [$this, 'render'], null, 'side');
21
        }
22
    }
23
24
    /**
25
     * {@inheritdoc}
26
     */
27
    public function render($post)
28
    {
29
        $review = glsr(Query::class)->review($post->ID);
30
        wp_nonce_field('assigned_users', '_nonce-assigned-users', false);
31
        $templates = array_reduce($review->assigned_users, function ($carry, $userId) {
32
            $carry .= glsr(Template::class)->build('partials/editor/assigned-entry', [
33
                'context' => [
34
                    'data.id' => $userId,
35
                    'data.name' => 'user_ids[]',
36
                    'data.url' => esc_url(get_author_posts_url($userId)),
37
                    'data.title' => esc_attr(get_the_author_meta('display_name', $userId)),
38
                ],
39
            ]);
40
            return $carry;
41
        });
42
        glsr()->render('partials/editor/metabox-assigned-users', [
43
            'templates' => $templates,
44
        ]);
45
    }
46
}
47