# Class AdvancedTable

The Factory class is a base class which can be used to make any classes externally extensible. A filter is added for wpgmza_create_{class} which is called by createInstance. If this filter returns a subclass of Factory, that filter will override the default class and will be used.

IMPORTANT: Any objects which subclass Factory MUST be created by calling createInstance on the subclass. Calling new on the constructor directly will not cause this filter to fire, and the extended class will not be used.

  WPGMZA\Factory
  WPGMZA\Table
  WPGMZA\AjaxTable
  WPGMZA\DataTable
  WPGMZA\MarkerDataTable
  WPGMZA\MarkerListing\AdvancedTable

Namespace: WPGMZA\MarkerListing
Located at marker-listings/class.advanced-table.php

Methods summary
`public` | # `__construct( $map_id = null )` #### Overrides `WPGMZA\MarkerDataTable::__construct()`
`protected` | # `getColumns( )` #### Overrides `WPGMZA\MarkerDataTable::getColumns()`
`protected` | # `getCustomFieldColumnNames( )`
`protected array` | # `getSearchClause( $input_params, & $query_params, $exclude_columns = null )` Exclude custom_field_* fields from search clause - they need to be in HAVING, not WHERE Exclude custom_field_* fields from search clause - they need to be in HAVING, not WHERE #### Returns array #### Overrides `WPGMZA\AjaxTable::getSearchClause()`
`protected array` | # `filterColumns( & $columns, $input_params )` Override this function to add additional columns to the query Override this function to add additional columns to the query #### Returns array #### Overrides `WPGMZA\AjaxTable::filterColumns()`
`protected string` | # `getHavingClause( $input_params, & $query_params, $exclude_columns = null )` Gets the HAVING clause for the table query Gets the HAVING clause for the table query #### Returns string #### Overrides `WPGMZA\AjaxTable::getHavingClause()`
`protected` | # `getWhereClause( $input_params, & $query_params, $clause_for_total = false )` #### Overrides `WPGMZA\AjaxTable::getWhereClause()`
`protected` | # `getOrderBy( $input_params, $column_keys )` #### Overrides `WPGMZA\DataTable::getOrderBy()`
`protected` | # `getOrderDirection( $input_params )` #### Overrides `WPGMZA\DataTable::getOrderDirection()`
`public` | # `getRecords( $input_params )` #### Overrides `WPGMZA\DataTable::getRecords()`

Methods inherited from WPGMZA\DataTable
`data(), getDataTableOptions(), initTableDOM(), setDataTableOptions()`

Methods inherited from WPGMZA\AjaxTable
`filterOrderBy(), filterOrderDirection(), filterResults(), getAjaxParameters(), getAttributeParams(), getColumnNameByIndex(), getRestAPIRoute(), setAjaxParameters(), setAttributeParams(), setRestAPIRoute()`

Methods inherited from WPGMZA\Table
`__get(), __set(), getElement(), html(), loadDocument()`

Methods inherited from WPGMZA\Factory
`createInstance()`