You are here

function views_handler_filter_node_nid_php::_parse_input in Views PHP Filter 7

Same name and namespace in other branches
  1. 6 views_handler_filter_node_nid_php.inc \views_handler_filter_node_nid_php::_parse_input()
1 call to views_handler_filter_node_nid_php::_parse_input()
views_handler_filter_node_nid_php::query in ./views_handler_filter_node_nid_php.inc
Add this filter to the query.

File

./views_handler_filter_node_nid_php.inc, line 42

Class

views_handler_filter_node_nid_php

Code

function _parse_input($rawcode) {
  $rawcode = trim($rawcode);
  if ($rawcode == "") {
    watchdog('viewsphpfilter', "PHP filter undefined; filter ignored", array(), WATCHDOG_NOTICE);
    return false;
  }
  if ($this->options['handler'] == 'php') {
    $result = eval($rawcode);
    if ($result === false) {
      watchdog('viewsphpfilter', "Parse error in PHP: {$this->value}; filter ignored", array(), WATCHDOG_ERROR);
      return false;
    }
  }
  else {
    $result = $rawcode;
  }
  if ($result === null) {
    watchdog('viewsphpfilter', "PHP filter returned null; filter ignored", array(), WATCHDOG_NOTICE);
    return false;
  }
  if (!is_array($result)) {
    $result = explode(',', $result);
  }
  $trimresult = array();
  foreach ($result as $retval) {
    $trimmed = trim($retval);
    if ($trimmed != "") {
      if ((string) (int) $retval != $retval || $retval < 1) {
        watchdog('viewsphpfilter', "Invalid return value in PHP: " . implode(",", $result) . "; filter ignored", array(), WATCHDOG_ERROR);
        return false;
      }
      else {
        $trimresult[] = $trimmed;
      }
    }
  }

  //watchdog('viewsphpfilter', "PHP filter return value: array('" . implode("','",$trimresult) . "')", array(), WATCHDOG_DEBUG);
  return $trimresult;
}