Blame view

src/lib/models/properties.php 4.39 KB
1ea3b987   Administrator   maby first commit
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
          );
      }
  
      /////////////////////////////////////////////////////////////////////////////
  }
  
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////