Escondendo tabelas inteiras da Visualização de Lista

Ou: “Faça todas aquelas mesas nojentas passarem tchau !!!”

A seguir, descrevo como remover tabelas específicas da “exibição de lista” no backend TYPO3.

Acho isso útil em extensões onde tenho uma inlinerelação em meu modelo de objeto e não quero que os objetos embutidos sejam exibidos na exibição de lista. Ou quando outras extensões introduzem registros de tabela que meus editores de back-end não precisam ver.
Felizmente, o módulo de lista tem uma maneira muito simples de ocultar as tabelas indesejadas. Todas as mesas!

Página TSconfig

A primeira coisa que precisamos fazer é definir quais tabelas queremos ocultar:

mod.web_list.table.tx_myext_domain_model_car.hideTable = 1
mod
.web_list.table.tx_myext_domain_model_seat.hideTable = 1
mod
.web_list.table.tx_myext_domain_model_wheels.hideTable = 1

Esta configuração pode ser adicionada ao Page TSConfigcampo de uma página. Ou se estivermos no contexto de uma extensão, podemos criar um novo arquivo de configuração para conter a configuração da página TSconfig para nossa extensão. Por exemplo, adicionando a configuração acima a:

Configuration/pageTS/pageTSconfig.txt

Se quisermos ter certeza de que essas tabelas nunca serão mostradas, podemos adicionar o seguinte ao ext_localconf.phparquivo.

t3lib_extMgm::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/pageTS/pageTSconfig.txt">');

Isso carregará automaticamente nossa nova configuração do pageTS e garantirá que as tabelas não estejam listadas.

Solução alternativa

Prefiro essa solução, pois me permite ocultar facilmente todas as tabelas, e não apenas as de minhas próprias extensões.
Se você apenas deseja ocultar as tabelas criadas por suas próprias extensões, pode considerar o uso do TCA para isso. Em ext_tables.phpadicionar a seguinte configuração:

$TCA['tx_myext_domain_model_car']['ctrl']['hideTable'] = 1;
$TCA
['tx_myext_domain_model_seat']['ctrl']['hideTable'] = 1;
$TCA
['tx_myext_domain_model_wheel']['ctrl']['hideTable'] = 1;