XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
DefaultValue.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
11 {
12 
18 
23  var $value;
24 
29  var $is_sequence = FALSE;
30 
35  var $is_operation = FALSE;
36 
41  var $operation = '';
42 
47  var $_is_string = FALSE;
48 
54 
62  {
63  $dbParser = DB::getParser();
64  $this->column_name = $dbParser->parseColumnName($column_name);
65  $this->value = $value;
66  $this->value = $this->_setValue();
67  }
68 
69  function isString()
70  {
71  return $this->_is_string;
72  $str_pos = strpos($this->value, '(');
73  if($str_pos === false)
74  {
75  return TRUE;
76  }
77  return FALSE;
78  }
79 
81  {
83  }
84 
85  function isSequence()
86  {
87  return $this->is_sequence;
88  }
89 
90  function isOperation()
91  {
92  return $this->is_operation;
93  }
94 
95  function getOperation()
96  {
97  return $this->operation;
98  }
99 
100  function _setValue()
101  {
102  if(!isset($this->value))
103  {
104  return;
105  }
106 
107  // If value contains comma separated values and does not contain paranthesis
108  // -> default value is an array
109  if(strpos($this->value, ',') !== FALSE && strpos($this->value, '(') === FALSE)
110  {
111  return sprintf('array(%s)', $this->value);
112  }
113 
114  $str_pos = strpos($this->value, '(');
115  // // TODO Replace this with parseExpression
116  if($str_pos === FALSE)
117  {
118  $this->_is_string = TRUE;
119  return '\'' . $this->value . '\'';
120  }
121  //if($str_pos===false) return $this->value;
122 
123  $func_name = substr($this->value, 0, $str_pos);
124  $args = substr($this->value, $str_pos + 1, -1);
125 
126  switch($func_name)
127  {
128  case 'ipaddress' :
129  $val = '$_SERVER[\'REMOTE_ADDR\']';
130  $this->_is_string_from_function = TRUE;
131  break;
132  case 'unixtime' :
133  $val = '$_SERVER[\'REQUEST_TIME\']';
134  break;
135  case 'curdate' :
136  $val = 'date("YmdHis")';
137  $this->_is_string_from_function = TRUE;
138  break;
139  case 'sequence' :
140  $this->is_sequence = TRUE;
141  $val = '$sequence';
142  break;
143  case 'plus' :
144  $args = abs($args);
145  $this->is_operation = TRUE;
146  $this->operation = '+';
147  $val = sprintf('%d', $args);
148  break;
149  case 'minus' :
150  $args = abs($args);
151  $this->is_operation = TRUE;
152  $this->operation = '-';
153  $val = sprintf('%d', $args);
154  break;
155  case 'multiply' :
156  $args = intval($args);
157  $this->is_operation = TRUE;
158  $this->operation = '*';
159  $val = sprintf('%d', $args);
160  break;
161  default :
162  $val = '\'' . $this->value . '\'';
163  //$val = $this->value;
164  }
165 
166  return $val;
167  }
168 
169  function toString()
170  {
171  return $this->value;
172  }
173 
174 }
175 /* End of file DefaultValue.class.php */
176 /* Location: ./classes/xml/xmlquery/queryargument/DefaultValue.class.php */
__construct($column_name, $value)
getParser($force=FALSE)
Definition: DB.class.php:1345
$args
Definition: ko.install.php:185