XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
ConditionArgument.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
11 {
12 
18 
27  {
28  $operationList = array('in' => 1, 'notin' => 1, 'not_in' => 1, 'between' => 1);
29  if(isset($value) && isset($operationList[$operation]) && !is_array($value) && $value != '')
30  {
31  $value = str_replace(' ', '', $value);
32  $value = str_replace('\'', '', $value);
33  $value = explode(',', $value);
34  }
35  parent::__construct($name, $value);
36  $this->operation = $operation;
37  }
38 
44  {
45  if(!isset($this->value))
46  {
47  return;
48  }
49 
52 
53  switch($operation)
54  {
55  case 'like_prefix' :
56  if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
57  {
58  $this->value = '^' . str_replace('%', '(.*)', preg_quote($value));
59  }
60  else
61  {
62  $this->value = $value . '%';
63  }
64  break;
65  case 'like_tail' :
66  if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
67  {
68  $this->value = str_replace('%', '(.*)', preg_quote($value)) . '$';
69  }
70  else
71  {
72  $this->value = '%' . $value;
73  }
74  break;
75  case 'like' :
76  if(defined('__CUBRID_VERSION__') && __CUBRID_VERSION__ >= '8.4.1')
77  {
78  $this->value = str_replace('%', '(.*)', preg_quote($value));
79  }
80  else
81  {
82  $this->value = '%' . $value . '%';
83  }
84  break;
85  case 'notlike' :
86  $this->value = '%' . $value . '%';
87  break;
88  case 'notlike_prefix' :
89  $this->value = $value . '%';
90  break;
91  case 'notlike_tail' :
92  $this->value = '%' . $value;
93  break;
94  case 'in':
95  if(!is_array($value))
96  {
97  $this->value = array($value);
98  }
99  break;
100  case 'notin':
101  case 'not_in':
102  if(!is_array($value))
103  {
104  $this->value = array($value);
105  }
106  break;
107  }
108  }
109 
121  function getType()
122  {
123  if($this->type)
124  {
125  return $this->type;
126  }
127  else if(!is_numeric($this->value))
128  {
129  return 'varchar';
130  }
131  else
132  {
133  return '';
134  }
135  }
136 
137  function setColumnType($column_type)
138  {
139  if(!isset($this->value))
140  {
141  return;
142  }
143  if($column_type === '')
144  {
145  return;
146  }
147 
148  $this->type = $column_type;
149  }
150 
151 }
152 /* End of file ConditionArgument.class.php */
153 /* Location: ./classes/xml/xmlquery/argument/ConditionArgument.class.php */
__construct($name, $value, $operation)