本文整理汇总了PHP中Field::buildDSRetrievalSQL方法的典型用法代码示例。如果您正苦于以下问题:PHP Field::buildDSRetrievalSQL方法的具体用法?PHP Field::buildDSRetrievalSQL怎么用?PHP Field::buildDSRetrievalSQL使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Field
的用法示例。
在下文中一共展示了Field::buildDSRetrievalSQL方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildDSRetrievalSQL
public function buildDSRetrievalSQL($data, &$joins, &$where, $andOperation = false)
{
// X to Y support
if (preg_match('/^(-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)) to (-?(?:\\d+(?:\\.\\d+)?|\\.\\d+))$/i', $data[0], $match)) {
$field_id = $this->get('id');
$joins .= " LEFT JOIN `tbl_entries_data_{$field_id}` AS `t{$field_id}` ON (`e`.`id` = `t{$field_id}`.entry_id) ";
$where .= " AND `t{$field_id}`.`value` BETWEEN {$match[1]} AND {$match[2]} ";
} else {
if (preg_match('/^(equal to or )?(less|greater) than (-?(?:\\d+(?:\\.\\d+)?|\\.\\d+))$/i', $data[0], $match)) {
$field_id = $this->get('id');
$expression = " `t{$field_id}`.`value` ";
switch ($match[2]) {
case 'less':
$expression .= '<';
break;
case 'greater':
$expression .= '>';
break;
}
if ($match[1]) {
$expression .= '=';
}
$expression .= " {$match[3]} ";
$joins .= " LEFT JOIN `tbl_entries_data_{$field_id}` AS `t{$field_id}` ON (`e`.`id` = `t{$field_id}`.entry_id) ";
$where .= " AND {$expression} ";
} else {
parent::buildDSRetrievalSQL($data, $joins, $where, $andOperation);
}
}
return true;
}
示例2: buildDSRetrievalSQL
function buildDSRetrievalSQL($data, &$joins, &$where, $andOperation = false)
{
// Check its not a regexp
if (preg_match('/^mysql:/i', $data[0])) {
$field_id = $this->get('id');
$expression = str_replace(array('mysql:', 'value'), array('', " `t{$field_id}`.`value` "), $data[0]);
$joins .= " LEFT JOIN `tbl_entries_data_{$field_id}` AS `t{$field_id}` ON (`e`.`id` = `t{$field_id}`.entry_id) ";
$where .= " AND {$expression} ";
} else {
parent::buildDSRetrievalSQL($data, $joins, $where, $andOperation);
}
return true;
}
示例3: buildDSRetrievalSQL
public function buildDSRetrievalSQL($data, &$joins, &$where, $andOperation = false)
{
if (self::isFilterRegex($data[0])) {
return parent::buildDSRetrievalSQL($data, $joins, $where, $andOperation);
}
$parsed = array();
foreach ($data as $string) {
$type = self::parseFilter($string);
if ($type == self::ERROR) {
return false;
}
if (!is_array($parsed[$type])) {
$parsed[$type] = array();
}
$parsed[$type][] = $string;
}
foreach ($parsed as $type => $value) {
switch ($type) {
case self::RANGE:
$this->buildRangeFilterSQL($value, $joins, $where, $andOperation);
break;
case self::SIMPLE:
$this->buildSimpleFilterSQL($value, $joins, $where, $andOperation);
break;
}
}
return true;
}
示例4: buildDSRetrievalSQL
public function buildDSRetrievalSQL($data, &$joins, &$where, $andOperation = false)
{
if (self::isFilterRegex($data[0])) {
return parent::buildDSRetrievalSQL($data, $joins, $where, $andOperation);
}
$parsed = array();
// For the filter provided, loop over each piece
foreach ($data as $string) {
$type = self::parseFilter($string);
if ($type == self::ERROR) {
return false;
}
if (!is_array($parsed[$type])) {
$parsed[$type] = array();
}
$parsed[$type][] = $string;
}
foreach ($parsed as $value) {
$this->buildRangeFilterSQL($value, $joins, $where, $andOperation);
}
return true;
}