Passed
Push — master ( 081d39...3cb69a )
by Nicolaas
03:44
created

QuickSearchBaseClass::getSortOverride()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace Sunnysideup\SiteWideSearch\QuickSearches;
4
5
use SilverStripe\Control\Controller;
6
use SilverStripe\Core\ClassInfo;
7
use SilverStripe\Core\Config\Configurable;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Forms\Form;
10
11
abstract class QuickSearchBaseClass
12
{
13
    use Configurable;
14
15
    private static $is_enabled = true;
16
    public static function available_quick_searches()
17
    {
18
        return ClassInfo::subclassesFor(self::class, false);
19
    }
20
    public function IsEnabled(): bool
21
    {
22
        return $this->Config()->get('is_enabled');
23
    }
24
25
    abstract public function getTitle(): string;
26
    abstract public function getClassesToSearch(): array;
27
    abstract public function getFieldsToSearch(): array;
28
    public function getSortOverride(): ?array
29
    {
30
        return null;
31
    }
32
    public static function get_list_of_quick_searches(): array
33
    {
34
        $array = [
35
            'all' => 'All',
36
            'limited' => 'Limited search',
37
        ];
38
        $availableSearchClasses = self::available_quick_searches();
39
        if(!empty($availableSearchClasses) > 0) {
40
            foreach($availableSearchClasses as $availableSearchClass) {
41
                $array[$availableSearchClass] =  Injector::inst()->get($availableSearchClass)->getTitle();
42
            }
43
        }
44
        return $array;
45
46
    }
47
48
}
49