helper_plugin_data::_get_filters PHP Method

_get_filters() public method

Get filters given in the request via GET or POST
public _get_filters ( ) : array
return array
    function _get_filters()
    {
        $filters = array();
        if (!isset($_REQUEST['dataflt'])) {
            $flt = array();
        } elseif (!is_array($_REQUEST['dataflt'])) {
            $flt = (array) $_REQUEST['dataflt'];
        } else {
            $flt = $_REQUEST['dataflt'];
        }
        foreach ($flt as $key => $line) {
            // we also take the column and filtertype in the key:
            if (!is_numeric($key)) {
                $line = $key . $line;
            }
            $f = $this->_parse_filter($line);
            if (is_array($f)) {
                $f['logic'] = 'AND';
                $filters[] = $f;
            }
        }
        return $filters;
    }

Usage Example

 public function testGetFilters()
 {
     $helper = new helper_plugin_data();
     $this->assertEquals(array(), $helper->_get_filters());
     $_REQUEST['dataflt'] = 'name = tom';
     $this->assertEquals(array($this->createFilterArrayListEntry('name', 'tom', '=', 'name', '', 'AND')), $helper->_get_filters());
     $_REQUEST['dataflt'] = array();
     $_REQUEST['dataflt'][] = 'name = tom';
     $this->assertEquals(array($this->createFilterArrayListEntry('name', 'tom', '=', 'name', '', 'AND')), $helper->_get_filters());
     $_REQUEST['dataflt'] = array();
     $_REQUEST['dataflt'][] = 'name = tom';
     $_REQUEST['dataflt'][] = 'unit_url = dokuwiki.org';
     $this->assertEquals(array($this->createFilterArrayListEntry('name', 'tom', '=', 'name', '', 'AND'), $this->createFilterArrayListEntry('unit', 'http://dokuwiki.org', '=', 'unit_url', 'url', 'AND')), $helper->_get_filters());
 }