**Client Side Properties**
Client side properties are properties that should be passed on to the browser so
client side JavaScript can use them. Only affects ViewDataTables that output HTML.
**Overridable Properties**
Overridable properties are properties that can be set via the query string.
If a request has a query parameter that matches an overridable property, the property
will be set to the query parameter value.
**Reusing base properties**
Many of the properties in this class only have meaning for the {@link Piwik\Plugin\Visualization}
class, but can be set for other visualizations that extend {@link Piwik\Plugin\ViewDataTable}
directly.
Visualizations that extend {@link Piwik\Plugin\ViewDataTable} directly and want to re-use these
properties must make sure the properties are used in the exact same way they are used in
{@link Piwik\Plugin\Visualization}.
**Defining new display properties**
If you are creating your own visualization and want to add new display properties for
it, extend this class and add your properties as fields.
Properties are marked as client side properties by calling the
{@link addPropertiesThatShouldBeAvailableClientSide()} method.
Properties are marked as overridable by calling the
{@link addPropertiesThatCanBeOverwrittenByQueryParams()} method.
### Example
**Defining new display properties**
class MyCustomVizConfig extends Config
{
**
* My custom property. It is overridable.
*\/
public $my_custom_property = false;
**
* Another custom property. It is available client side.
*\/
public $another_custom_property = true;
public function __construct()
{
parent::__construct();
$this->addPropertiesThatShouldBeAvailableClientSide(array('another_custom_property'));
$this->addPropertiesThatCanBeOverwrittenByQueryParams(array('my_custom_property'));
}
}