Test Failed
Push — main ( 6435b1...db043e )
by Paul
16:23 queued 07:02
created

Hooks::run()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 32
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 25
c 1
b 0
f 0
dl 0
loc 32
ccs 0
cts 4
cp 0
rs 9.52
cc 3
nc 4
nop 0
crap 12
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Integrations\UltimateMember;
4
5
use GeminiLabs\SiteReviews\Hooks\AbstractHooks;
6
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\Controller;
7
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\DirectoryController;
8
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\ProfileController;
9
10
class Hooks extends AbstractHooks
11
{
12
    public function run(): void
13
    {
14
        $this->hook(Controller::class, [
15
            ['filterSettings', 'site-reviews/settings'],
16
            ['filterSettingsCallback', 'site-reviews/settings/sanitize', 10, 2],
17
            ['filterSubsubsub', 'site-reviews/integration/subsubsub'],
18
            ['renderNotice', 'admin_init'],
19
            ['renderSettings', 'site-reviews/settings/ultimatemember'],
20
        ]);
21
        if ($this->isInstalled()) {
22
            $this->hook(Controller::class, [
23
                ['filterAvatarUrl', 'site-reviews/avatar/generate', 10, 2],
24
                ['filterProfileId', 'site-reviews/assigned_users/profile_id', 5],
25
            ]);
26
        }
27
        if ($this->isEnabled()) {
28
            $this->hook(Controller::class, [
29
                ['filterInlineStyles', 'site-reviews/enqueue/public/inline-styles'],
30
            ]);
31
            $this->hook(DirectoryController::class, [
32
                ['filterAjaxMembersData', 'um_ajax_get_members_data', 50, 2],
33
                ['filterDirectoryProfileOptions', 'um_admin_extend_directory_options_profile', 15],
34
                ['filterDirectoryProfileSortOptions', 'um_members_directory_sort_fields'],
35
                ['filterDirectorySortBy', 'um_modify_sortby_parameter', 100, 2],
36
                ['modifyQuerySortby', 'um_pre_users_query', 10, 3],
37
                ['modifyTmpl', 'um_members_just_after_name_tmpl', 1],
38
                ['modifyTmpl', 'um_members_list_after_user_name_tmpl', 1],
39
            ]);
40
            $this->hook(ProfileController::class, [
41
                ['filterInlineScript', 'site-reviews/enqueue/public/inline-script/after'],
42
                ['filterProfileTabs', 'um_user_profile_tabs', 100],
43
                ['renderReviewsTab', 'um_profile_content_user_reviews'],
44
            ]);
45
        }
46
    }
47
48
    protected function isEnabled(): bool
49
    {
50
        return 'yes' === $this->option('integrations.ultimatemember.enabled')
51
            && $this->isInstalled();
52
    }
53
54
    protected function isInstalled(): bool
55
    {
56
        return function_exists('UM')
57
            && function_exists('um_get_default_avatar_uri')
58
            && function_exists('um_get_requested_user')
59
            && function_exists('um_is_core_page')
60
            && function_exists('um_user_profile_url');
61
    }
62
}
63