Completed
Push — master ( 470825...143e87 )
by Joram van den
06:11
created

SettingModel::byName()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 14
nc 3
nop 1
dl 0
loc 22
rs 9.2
c 0
b 0
f 0
1
<?php
2
3
class SettingModel extends Ajde_Model
4
{
5
    protected $_autoloadParents = false;
6
    protected $_displayField = 'name';
7
    protected $_hasMeta = true;
8
9
    private static $_cache = [];
10
11
    public static function byName($name)
12
    {
13
        if (isset(self::$_cache[$name])) {
14
            return self::$_cache[$name];
15
        }
16
17
        $niceName = str_replace('_', ' ', $name);
18
        $settings = new SettingCollection();
19
        $settings->addFilter(new Ajde_Filter_Join('setting_meta', 'setting_meta.setting', 'setting.id'));
20
        $settings->addFilter(new Ajde_Filter_Join('meta', 'meta.id', 'setting_meta.meta'));
21
        $settings->addFilter(new Ajde_Filter_Where('meta.name', Ajde_Filter::FILTER_EQUALS, $niceName));
22
        $settings->getQuery()->addSelect('setting_meta.value');
23
24
        if ($settings->count()) {
25
            $setting = $settings->current();
26
            self::$_cache[$name] = $setting->get('value');
27
28
            return $setting->get('value');
29
        }
30
31
        return false;
32
    }
33
34
    public static function getMedia($settingName)
35
    {
36
        $metaValue = (int) self::byName($settingName);
37
        $media = new MediaModel();
38
        $media->loadByPK($metaValue);
39
40
        return $media->hasLoaded() ? $media : false;
41
    }
42
43
    public static function getNode($settingName)
44
    {
45
        $metaValue = (int) self::byName($settingName);
46
        $node = new NodeModel();
47
        $node->loadByPK($metaValue);
48
49
        return $node->hasLoaded() ? $node : false;
50
    }
51
}
52