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 inline
relaçã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 TSConfig
campo 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.php
arquivo.
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.php
adicionar 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;