function views_break_phrase

Same name in other branches
  1. 7.x-3.x includes/handlers.inc \views_break_phrase()
7 calls to views_break_phrase()
views_handler_argument_many_to_one::query in handlers/views_handler_argument_many_to_one.inc
Set up the query for this argument.
views_handler_argument_many_to_one::title in handlers/views_handler_argument_many_to_one.inc
Get the title this argument will assign the view, given the argument.
views_handler_argument_numeric::query in handlers/views_handler_argument_numeric.inc
Set up the query for this argument.
views_handler_argument_numeric::title in handlers/views_handler_argument_numeric.inc
Get the title this argument will assign the view, given the argument.
views_handler_argument_term_node_tid_depth::query in modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
Set up the query for this argument.

... See full list

File

includes/handlers.inc, line 1088

Code

function views_break_phrase($str, &$handler) {
    if (!$handler) {
        $handler = new stdClass();
    }
    // Set up defaults:
    if (!isset($handler->value)) {
        $handler->value = array();
    }
    if (!isset($handler->operator)) {
        $handler->operator = 'or';
    }
    if ($str == '') {
        return $handler;
    }
    if (preg_match('/^([0-9]+[+ ])+[0-9]+$/', $str)) {
        // The '+' character in a query string may be parsed as ' '.
        $handler->operator = 'or';
        $handler->value = preg_split('/[+ ]/', $str);
    }
    else {
        if (preg_match('/^([0-9]+,)*[0-9]+$/', $str)) {
            $handler->operator = 'and';
            $handler->value = explode(',', $str);
        }
    }
    // Keep an 'error' value if invalid strings were given.
    if (!empty($str) && (empty($handler->value) || !is_array($handler->value))) {
        $handler->value = array(
            -1,
        );
        return $handler;
    }
    // Doubly ensure that all values are numeric only.
    foreach ($handler->value as $id => $value) {
        $handler->value[$id] = intval($value);
    }
    return $handler;
}