Completed
Branch BUG-10734-ticket-selector-divs (955a3e)
by
unknown
65:02 queued 51:34
created

EEM_Post_Meta::__construct()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 46
Code Lines 34

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 34
nc 4
nop 1
dl 0
loc 46
rs 8.9411
c 0
b 0
f 0
1
<?php if (! defined('EVENT_ESPRESSO_VERSION')) {
2
    exit('No direct script access allowed');
3
}
4
/**
5
 * Event Espresso
6
 * Event Registration and Management Plugin for WordPress
7
 * @ package            Event Espresso
8
 * @ author                Seth Shoultes
9
 * @ copyright        (c) 2008-2011 Event Espresso  All Rights Reserved.
10
 * @ license            http://eventespresso.com/support/terms-conditions/   * see Plugin Licensing *
11
 * @ link                    http://www.eventespresso.com
12
 * @ version            4.0
13
 * ------------------------------------------------------------------------
14
 * Post Meta Model
15
 * Model for accessing the wp core postmeta table. Generally it's better to use the
16
 * built-in wp functions directly, but this is useful if you want to use the EE models
17
 * and need a query that factors in an EE custom post type's postmeta (eg, attendees, events or venues).
18
 * Currently, if applying caps to the queries, these are only accessible to site admins;
19
 * however we may devise some strategy for marking specified postmetas as public.
20
 * (Using the wp core convention of prefixing meta keys with an underscore might work,
21
 * see https://codex.wordpress.org/Function_Reference/add_post_meta, but when a postmeta is
22
 * "non-hidden" it's meant to show in the wp admin's post editing page, not necessarily on the frontend)
23
 *
24
 * @package               Event Espresso
25
 * @subpackage            includes/models/
26
 * @author                Michael Nelson
27
 * ------------------------------------------------------------------------
28
 */
29
require_once(EE_MODELS . 'EEM_Base.model.php');
30
31
32
33
class EEM_Post_Meta extends EEM_Base
34
{
35
36
    // private instance of the EE_Post_Meta object
37
    protected static $_instance = null;
38
39
40
41
    protected function __construct($timezone = null)
42
    {
43
        $this->singular_item = __('Post Meta', 'event_espresso');
44
        $this->plural_item = __('Post Metas', 'event_espresso');
45
        $this->_tables = array(
46
            'Post_Meta' => new EE_Primary_Table('postmeta', 'meta_id'),
47
        );
48
        $models_this_can_attach_to = array_keys(EE_Registry::instance()->cpt_models());
49
        $this->_fields = array(
50
            'Post_Meta' => array(
51
                'meta_id'    => new EE_Primary_Key_Int_Field(
52
                    'meta_id',
53
                    __("Meta ID", "event_espresso")
54
                ),
55
                'post_id'    => new EE_Foreign_Key_Int_Field(
56
                    'post_id',
57
                    __("Primary Key of Post", "event_espresso"),
58
                    false,
59
                    0,
60
                    $models_this_can_attach_to
61
                ),
62
                'meta_key'   => new EE_Plain_Text_Field(
63
                    'meta_key',
64
                    __("Meta Key", "event_espresso"),
65
                    false,
66
                    ''
67
                ),
68
                'meta_value' => new EE_Maybe_Serialized_Text_Field(
69
                    'meta_value',
70
                    __("Meta Value", "event_espresso"),
71
                    true
72
                ),
73
            ),
74
        );
75
        $this->_model_relations = array();
76
        foreach ($models_this_can_attach_to as $model) {
77
            $this->_model_relations[$model] = new EE_Belongs_To_Relation();
78
        }
79
        foreach ($this->cap_contexts_to_cap_action_map() as $cap_context => $action) {
80
            $this->_cap_restriction_generators[$cap_context] = new EE_Restriction_Generator_Meta(
81
                'meta_key',
82
                'meta_value'
83
            );
84
        }
85
        parent::__construct($timezone);
86
    }
87
88
89
}
90
// End of file EEM_Post_Meta.model.php
91
// Location: /includes/models/EEM_Post_Meta.model.php
92