Exemplo n.º 1
0
Arquivo: lib.php Projeto: rrusso/EARS
 public static function build_filters($script, $params = null, $filter_data = null, $filter = null, $filters = null)
 {
     $filters = !is_null($filters) ? $filters : cps_user_component::filters();
     $filters = $filter ? array_filter($filters, $filter) : $filters;
     $param_dict = $filters ? array_combine($filters, array_map('cps_transform_filter', $filters)) : array();
     $param_dict = ($param_dict ? $param_dict : array()) + ($params && is_array($params) ? $params : array());
     $components = array();
     foreach ($param_dict as $key => $value) {
         if (!in_array($key, $filters)) {
             continue;
         }
         if (isset($filter_data[$key])) {
             $extra = $filter_data[$key];
         } else {
             $extra = null;
         }
         $rest = $param_dict;
         unset($rest[$key]);
         $class = $key . "_filter";
         $components[] = new $class($script, cps_transform_filter($key), $rest, $extra);
     }
     return new cps_user_component_collection($components, $param_dict);
 }