Wraz z wydaniem kolejnej wersji TYPO3 v12 w kwietniu 2023 roku, wprowadzono wiele innowacyjnych funkcji i usprawnień, które zwiększają elastyczność i wydajność tego popularnego systemu zarządzania treścią (CMS). Jednak zanim przyjrzymy się nowym typom TCA (Table Configuration Array), warto zrozumieć, że TYPO3 v12 jest kolejną wersją LTS (Long Term Support) – adaptacją, która jest oficjalnie wspierana przez dłuższy okres czasu niż wersje nie-LTS.
Wersje LTS TYPO3, takie jak aktualna v12, zapewniają użytkownikom długoterminowe wsparcie techniczne, łatki zabezpieczeń oraz regularne aktualizacje funkcjonalności. W ramach wsparcia LTS, core team TYPO3 oraz zaangażowana społeczność developerów koncentrują się na dostarczaniu poprawek błędów, łatek zabezpieczeń oraz innowacji przez określony okres czasu, często obejmujący kilka lat. Tak długie wsparcie ma na celu zapewnienie stabilnej i bezpiecznej platformy dla użytkowników TYPO3, zwłaszcza dla przedsiębiorstw i organizacji, które polegają na długoterminowym rozwoju swoich stron internetowych opartych na TYPO3.
Aktualnie, wersja LTS TYPO3 v11 jest wspierana do września 2024 roku, podczas gdy TYPO3 v12, jako nowa wersja LTS, będzie otrzymywać wsparcie techniczne aż do kwietnia 2026 roku. To ważne informacje dla użytkowników, którzy zastanawiają się nad migracją na najnowszą wersję TYPO3, ponieważ korzystanie z wersji LTS zapewnia pewność, że otrzymają nie tylko rozszerzone wsparcie, ale również dostęp do najnowszych funkcji i usprawnień systemu.
TYPO3 TCA (Table Configuration Array) to jedna z głównych części TYPO3, która pełni kluczową rolę w definiowaniu struktury i konfiguracji tabel bazy danych w systemie TYPO3. TCA pozwala na precyzyjne określanie pól, relacji, walidacji i innych atrybutów tabel, które są wykorzystywane w procesie tworzenia i zarządzania treściami w TYPO3.
Główne zadania TYPO3 TCA obejmują:
Definiowanie pól: TCA umożliwia szczegółowe definiowanie różnych typów pól, takich jak pola tekstowe, pola wyboru, pola wielokrotnego wyboru, pola związane z datą itp. Ponadto, można również zdefiniować niestandardowe typy pól, co pozwala na elastyczne dostosowanie struktury danych.
Konfiguracja relacji: TCA pozwala na definiowanie relacji między tabelami, takich jak relacje jeden do wielu, wiele do wielu itp. Dzięki temu, możliwe jest tworzenie powiązanych rekordów i mapowanie zależności między nimi. Umożliwia bardziej złożone i rozbudowane struktury danych w systemie TYPO3.
TCA jest jednym z kluczowych elementów TYPO3, który umożliwia elastyczne zarządzanie strukturą danych i interfejsem użytkownika w systemie. Jest szeroko wykorzystywany w rozwoju rozszerzeń TYPO3 oraz w konfiguracji stron i aplikacji internetowych opartych na tym potężnym systemie zarządzania treścią. Dzięki TCA, administratorzy mogą tworzyć zaawansowane i spersonalizowane rozwiązania, które spełniają unikalne potrzeby ich projektów opartych na TYPO3.
Nowe typy TCA w TYPO3 v11, takie jak Language i Category, wprowadzają dodatkowe możliwości konfiguracji i zarządzania danymi w systemie.
TYPE "Langauge" - został poddany uproszczeniom w konfiguracji, co przyczynia się do łatwiejszego i bardziej intuicyjnego ustawiania języków. Jedną z głównych zalet tego typu jest to, że pobiera wszystkie konfiguracje językowe z "Site Configuration". Dzięki temu, administratorzy mogą skonfigurować dostępne języki w jednym miejscu, co przyczynia się do zwiększenia efektywności i spójności w zarządzaniu wielojęzycznymi witrynami opartymi na TYPO3.
'columns' => [ 'sys_language_uid' => [ 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', 'config' => [ 'type' => 'language', ], ], ],
php
w starszych wydaniach TYPO3 było to robione w następujący sposób:
'sys_language_uid' => [ 'exclude' => true, 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', 'config' => [ 'type' => 'select', 'renderType' => 'selectSingle', 'special' => 'languages', 'items' => [ [ 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages', -1, 'flags-multiple' ], ], 'default' => 0, ] ],
php
'columns' => [ 'categories' => [ 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.category', 'config' => [ 'type' => 'category', // 'relationship' => 'manyToMany' | 'oneToMany' | 'oneToOne' ], ], ],
php
W przypadku tego typu, mamy do dyspozycji kilka opcji konfiguracyjnych:
Nowe typy TCA w TYPO3 v12 wprowadzają jeszcze więcej możliwości konfiguracyjnych i ułatwień w zarządzaniu danymi. Poniżej przedstawiamy kolejne typy TCA dostępne w TYPO3 v12:
1. Password. Zamiast korzystać z typu input i ustawień eval='trim,password,saltedPassword', w TYPO3 v12 możemy teraz skorzystać z nowego typu TCA, który jest dedykowany do pól hasłowych. Ta zmiana ułatwia konfigurację pól haseł i zapewnia większe bezpieczeństwo.
'columns' => [ 'password' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:password', 'config' => [ 'type' => 'password', ], ], ],
php
2. TCA Type Link. W starszych wersjach TYPO3 można było skorzystać z konfiguracji renderType => inputLink do obsługi pól linków. W TYPO3 v12 korzystamy z nowej konfiguracji. Ta aktualizacja umożliwia łatwiejsze zarządzanie linkami i dostosowanie ich wyglądu w interfejsie użytkownika.
'columns' => [ 'link' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:link', 'config' => [ 'type' => 'link', 'allowedTypes' => ['page', 'url', 'record'], 'appearance' => [ // 'enableBrowser' => false, 'allowedFileExtensions' => ['jpg', 'png'], 'allowedOptions' => ['*'], ], ], ], ],
php
3. Type Numer . W poprzednich wersjach , aby zdefiniować pola numeryczne, korzystano z ustawień 'evel' => int or double2. W TYPO3 v12 wprowadzono dedykowany typ TCA dla pól numerycznych. Ta zmiana ułatwia i upraszcza konfigurację pól liczbowych.
'columns' => [ 'number' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:number', 'config' => [ 'type' => 'number', // 'format' => 'decimal' 'range' => [ 'lower' => 1, 'upper' => 100 ], ] ], ],
php
4. Type Email. Poprzednio, aby zdefiniować pola emailowe, należało użyć type = input i ustawień evel = email. W TYPO3 v12 można to zrobić znacznie łatwiej dzięki dedykowanemu typowi TCA dla pól emailowych:
'columns' => [ 'email' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:email', 'config' => [ 'type' => 'email', ], ], ],
php
5. Type Color. W starszych wersjach TYPO3 korzystano z type=input i renderType=colorpicker. W TYPO3 v 12 robimy to dużo łatwiej poprzez:
'columns' => [ 'color' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:color', 'config' => [ 'type' => 'color', // 'nullable' => true, 'valuePicker' => [ 'items' => [ ['typo3 orange', '#FF8700'], ], ], ], ], ],
php
6. Type Folder. W poprzednich wersjach TYPO3, aby zdefiniować pole reprezentujące folder, korzystano z ustawienia internal_type => folder. W TYPO3 v12 ta konfiguracja została zmieniona, umożliwiając bardziej intuicyjne i łatwe tworzenie pól folderowych:
'columns' => [ 'folder' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:folder', 'config' => [ 'type' => 'folder', 'elementBrowserEntryPoints' => [ '_default' => '1:/my_folder/' // '_default' => '###PAGE_TSCONFIG_ID###' // 'hideMoveIcons' => false | true ], ], ], ],
php
7. Ciekawym nowym typem TCA jest JSON, który pozwala na przechowywanie danych w formacie JSON. Ten typ jest szczególnie przydatny, gdy potrzebujemy przechowywać i zarządzać złożonymi strukturami danych w polu TCA.
'columns' => [ 'json' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:json', 'config' => [ 'type' => 'json', // 'enableCodeEditor' => false, // 'readonly' => true, ], ], ],
php
8. Ostatnim nowym typem jest UUID, który umożliwia generowanie unikalnych identyfikatorów. Ten typ jest przydatny, gdy potrzebujemy zapewnić unikalność wartości w polu TCA.
Wprowadzenie tych nowych typów TCA w TYPO3 v12 umożliwia programistom i administratorom jeszcze większą elastyczność i wygodę w konfiguracji struktury danych. Nowe typy ułatwiają zarządzanie danymi w systemie, umożliwiają bardziej zaawansowane walidacje i oferują bardziej intuicyjne interfejsy użytkownika. Dzięki temu TYPO3 v12 staje się jeszcze bardziej rozbudowanym i wszechstronnym narzędziem do tworzenia zaawansowanych stron internetowych i aplikacji.
'columns' => [ 'uuid' => [ 'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:uuid', 'config' => [ 'type' => 'uuid', 'version' => 7, // 'enableCopyToClipboard' => true, ], ], ],
php