properties.php
4.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
namespace models;
class properties extends \db
{
    /////////////////////////////////////////////////////////////////////////////
    public function getPropertiesByItemId( $lang_id, $item_id  )
    {
        return $this->get(
            '
                SELECT
                    id,
                    property_key_id,
                    property_value_id,
                    (
                        SELECT
                            value
                        FROM
                            public.properties_keys_i18n
                        WHERE
                            property_key_id = public.properties.property_key_id
                            AND
                            lang_id = :lang_id
                        LIMIT
                            1
                    ) AS key_value,
                    (
                        SELECT
                            value
                        FROM
                            public.properties_values_i18n
                        WHERE
                            property_value_id = public.properties.property_value_id
                            AND
                            lang_id = :lang_id
                        LIMIT
                            1
                    ) AS value_value
                FROM
                    public.properties
                WHERE
                    id IN
                    (
                        SELECT
                            property_id
                        FROM
                            properties_items
                        WHERE
                            item_id = :item_id
                    )
            ',
            [
                'lang_id'   => $lang_id,
                'item_id'   => $item_id,
            ],
            -1
        );
    }
    /////////////////////////////////////////////////////////////////////////////
    public function getPropertiesByTypeSubtype( $catalog, $lang_id )
    {
        return $this->get(
            '
                SELECT
                    id,
                    property_key_id,
                    property_value_id,
                    (
                        SELECT
                            value
                        FROM
                            public.properties_keys_i18n
                        WHERE
                            property_key_id = public.properties.property_key_id
                            AND
                            lang_id = :lang_id
                        LIMIT
                            1
                    ) AS key_value,
                    (
                        SELECT
                            value
                        FROM
                            public.properties_values_i18n
                        WHERE
                            property_value_id = public.properties.property_value_id
                            AND
                            lang_id = :lang_id
                        LIMIT
                            1
                    ) AS value_value
                FROM
                    public.properties
                WHERE
                  catalog = (
                  SELECT
                    catalog
                  FROM
                    public.catalog_i18n
                  WHERE
                    full_alias = :catalog
                  LIMIT
                  1
                  )
            ',
            [
                'lang_id'       => $lang_id,
                'catalog'       => $catalog
            ],
            -1
        );
    }
    /////////////////////////////////////////////////////////////////////////////
    public function getPropertiesForItems( $items_ids  )
    {
        return $this->get(
            '
                SELECT
                    property_id,
                    item_id
                FROM
                    public.properties_items
                WHERE
                    item_id IN ('.join( ',', $items_ids ).')
            ',
            [
            ],
            -1
        );
    }
    /////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////