Configuration 

Overview 

There is no global extension configuration here. T3 DataTable ships no ext_conf_template.txt, and there are no options to set in the install tool. You configure everything per grid inside GridInterface::build().

Service registration 

The extension ships these configuration files:

  • Configuration/Services.yaml sets up autowiring and the t3datatable.grid tag.
  • Configuration/Backend/AjaxRoutes.php registers the shared data endpoint.
  • Configuration/JavaScriptModules.php adds the ES module to the import map.
  • Configuration/Backend/Modules.php registers the demo backend module only.

Consumer extensions must add the _instanceof rule in their own Configuration/Services.yaml:

_instanceof:
  HRR\T3Datatable\Contract\GridInterface:
    tags: ['t3datatable.grid']
Copied!

Grid definition options 

Use GridDefinition inside GridInterface::build():

$definition
    ->addColumn('uid', 'UID', searchable: false, orderable: true)
    ->addColumn('title', 'Title', searchable: true, orderable: true)
    ->setDefaultOrder('crdate', 'DESC')
    ->setPageLength(25)
    ->withDeletedRestriction()
    ->withHiddenRestriction();
Copied!
Method Purpose
addColumn() Declare a column (name, label, searchable, orderable)
setDefaultOrder() Fallback sort when the client sends no order
setPageLength() Default page size hint (client may override via length)
withDeletedRestriction() Adds deleted = 0 (table must have deleted column)
withHiddenRestriction() Adds hidden = 0 (table must have hidden column)

Security defaults 

  • Column names from the client are validated against the grid allowlist.
  • All query values use Doctrine named parameters.
  • The AJAX controller requires an authenticated backend user.