private static function prepareData(Blueprint $blueprint, $where = NULL, array $filters = NULL) { $tag = "EntityExporter::prepareData()"; Log::notice("{$tag}"); /* // BUILD QUERY */ $query = new EntityQuery($blueprint); // WHERE if ($where != NULL) { $query->where($where); } // FILTERS if ($filters != NULL) { foreach ($filters as $key => $value) { if (ereg("^filter_(.+)_(.+)", $key, $regs)) { $filter_field = $regs[1]; $filter_type = $regs[2]; $field = $blueprint->get($filter_field); switch ($field->getDataType()) { case "string": switch ($filter_type) { case "like": $query->where("{$filter_field} LIKE '%{$value}%'"); break; case "equals": $query->where("{$filter_field}='{$value}'"); break; } break; case "int": switch ($filter_type) { case "equals": $query->where("{$filter_field}={$value}"); break; case "min": $query->where("{$filter_field}>={$value}"); break; case "max": $query->where("{$filter_field}<={$value}"); } break; case "decimal": switch ($filter_type) { case "equals": $query->where("{$filter_field}='{$value}'"); break; case "min": $query->where("{$filter_field}>='{$value}'"); break; case "max": $query->where("{$filter_field}<='{$value}'"); } break; case "date": case "datetime": switch ($filter_type) { case "equals": $query->where("{$filter_field}='{$value}'"); break; case "min": $query->where("{$filter_field}>='{$value}'"); break; case "max": $query->where("{$filter_field}<='{$value}'"); } break; case "enum": switch ($filter_type) { case "like": $query->where("{$filter_field} LIKE '%{$value}%'"); break; case "equals": $query->where("{$filter_field}='{$value}'"); break; } break; } // END: switch($field->getDataType()) } // END: if(ereg("^filter_(.+)_(.+)", $key, $regs)) } // END: foreach($filters as $key=>$value) } // END: if($filters != NULL) // Execute Query $sql = new DatabaseQuery($query->toString()); try { $sql->doQuery(); $num_rows = $sql->get_num_rows(); Log::debug("{$tag}: Exporting {$num_rows} rows"); return $sql; } catch (Exception $e) { Log::error("{$tag}: [" . $sql->err_code . "] " . $sql->err_message); throw $e; } }