01 février 2010 ~ 0 Commentaire

Explication : Le tri par groupe lors de l’insertion d’un enregistrement en mode Liste

Lors du passage de TYPO3 4.2 à TYPO3 4.3, la core team a intégré le regroupement des enregistrements lors de l’insertion de ces derniers en mode liste.

TYPO3 4.2 :

TYPO3 4.3 :

Pour ceux que cela intéresse, voilà un peu ce que l’on peut dire sur cette nouvelle fonctionnalité :

Premier point, pour que TYPO3 fasse automatiquement ce tri par groupe, il faut impérativement que l’extension commence par tx ou tt. Cela peut paraitre normal, mais encore un certain nombre d’extensions ne respecte pas cette règle. Le test est implémenté dans le core :

if ($nameParts[0] == 'tx' || $nameParts[0] == 'tt') {

Ensuite, chose importante, la valeur du champ $TCA[tx_monExt_pi1]['ctrl']['title'] est utilisée comme base pour tous les traitements de cette fonctionnalité.
TYPO3 effectue un certain nombre de traitements sur la valeur de ce champ pour en extraire les informations nécessaires pour la suite (nom de l’extension, nom de la table ciblé, …)

Cette valeur doit impérativement commencer par LLL:EXT:, si le locallang utilisé n’est pas situé dans une extension, le regroupement automatique ne sera pas fait.
==> Mon erreur se situait à ce niveau pour le problème que j’ai évoqué sur le forum TYPO3. Il ne faut pas essayer de changer directement les valeurs dans le champ $TCA[tx_monExt_pi1]['ctrl']['title'].

En faisant ce test, TYPO3 s’assure que s’il y a plusieurs enregistrements, ils font bien partis de la même extension.

En ce qui concerne le nom du groupe, le traitement utilise 2 éléments :
> S’il est renseigné, TYPO3 utilise la valeur du champ « extension.title » situé dans le XML du fichier passé en paramètre de $TCA[tx_monExt_pi1]['ctrl']['title']
> Si ce champ n’est pas rempli, TYPO3 utilise la valeur du champ « title » du fichier ext_emconf.php (comme tt_news)
Pour finir, l’image associée au groupe est celle qui se nomme « ext_icon.gif » et qui se trouve à la racine de l’extension.
Le nom de l’image ne peut pas être changé dans la mesure où c’est implémenté en dur dans les sources :

$iconFile[$_EXTKEY] = '<img src="' . t3lib_extMgm::extRelPath($_EXTKEY) . 'ext_icon.gif" />';

Je me base sur le code source pour cette explication. Il s’agit des lignes 492 à 515 du ficher typo3/db_new.php

Laisser un commentaire