Jestem autorem pakietu rozszerzeń Fluid (flux, fluidcontent, fluidpages itp.) i oczywiście chciałbym pomóc Ci w nauce używania FluidContent do tworzenia FCE. To naprawdę nie jest tak zaawansowane, jak można by się obawiać. Przynajmniej jest znacznie bardziej kompaktowy niż w powyższym przykładzie. Poniższe wyniki dają ten sam wynik, co twój przykład, w FluidContent:
TypoScript (ładowany statycznie:css_styled_content, fluid_content)
plugin.tx_fed.fce.yourname {
templateRootPath = fileadmin/Templates # if you don't want to use an extension (1)
# partial and layout root paths not defined (2)
}
Odnośnie (1) naprawdę, naprawdę powinieneś. Korzystanie z rozszerzenia oddziela multimedia przesłane przez użytkownika itp. od zawartości witryny. Jeśli to zrobisz, po prostu użyj ścieżki EXT:... do folderu Zasoby prywatne. A jeśli chodzi o (2) te ścieżki są konieczne tylko wtedy, gdy rzeczywiście chcesz używać podszablonów.
Następnie sam plik szablonu (wykrywany automatycznie, gdy ścieżka, w której znajduje się plik, zostanie dodana w TS):
{namespace flux=Tx_Flux_ViewHelpers}
<f:layout name="Content" />
<f:section name="Configuration">
<flux:flexform id="columns" label="Columns" icon="path/to/iconfile.jpg">
<flux:flexform.grid>
<flux:flexform.grid.row>
<flux:flexform.grid.column>
<flux:flexform.content name="left" label="Left content" />
</flux:flexform.grid.column>
<flux:flexform.grid.column>
<flux:flexform.content name="right" label="Right content" />
</flux:flexform.grid.column>
</flux:flexform.grid.row>
</flux:flexform.grid>
</flux:flexform>
</f:section>
<f:section name="Preview">
<flux:widget.grid />
</f:section>
<f:section name="Main">
<div class="row">
<div class="span6">
<flux:flexform.renderContent area="left" />
</div>
<div class="span6">
<flux:flexform.renderContent area="right" />
</div>
</div>
</f:section>
Jak widać, możesz dodać dowolny kod HTML, który chcesz, użyć dowolnych ViewHelperów (nawet renderować obiekty TS, jeśli to twoja sprawa). Aby dodać dodatkowe elementy treści, po prostu dodaj nowe pliki szablonów - zostaną one automatycznie rozpoznane.
Ale będzie działać inaczej niż IRRE (które możesz również osiągnąć za pomocą pól Flux - daj mi znać, jeśli chcesz zobaczyć demonstrację tego):pozwoli ci to użyć natywnego przeciągnij i upuść w TYPO3, aby umieścić elementy podrzędne treści w rzeczywistych pojemnikach z treścią - tak jak to robiłeś z telewizorem.
W związku z tym płynne treści są prawdopodobnie najbliżej telewizora.
Jeśli chodzi o przesadę Fluxa, chciałbym dać wyobrażenie o tym, co faktycznie działa:
- Odczyt TS w pamięci podręcznej w celu poznania ścieżek
- Listy wykrytych szablonów w pamięci podręcznej
- Fluid buforuje do natywnego PHP, Flux używa tylko Fluid do przechowywania konfiguracji (co oznacza, że jest przez cały czas w natywnym PHP)
- Sam Flux rejestruje subskrybenta haka, który reaguje na zapisywanie treści, co spowalnia backend (niezauważalnie)
- Sam Flux nie powoduje obciążenia FE, z jednym wyjątkiem:w przypadku wtyczek niebuforowanych (FluidContent jest buforowany!) Flux może wywołać natywny kod PHP zbuforowany w celu odczytania konfiguracji.
- FluidContent składa się z niezwykle prostego kontrolera; dane wyjściowe są w pełni buforowane.
- Możesz dodać kolekcję VHS ViewHelper — sama z siebie tworzy absolutnie zerowe obciążenie:używa tylko zasobów, w których używasz jego ViewHelperów. Zawiera mnóstwo ViewHelpers, które z pewnością uznasz za przydatne.
Na początku może to wyglądać przytłaczająco, ale gwarantuję, że jest mniej do zapamiętania i wiedzy niż w przypadku pibase, FlexForm XML, TS lub natywnych wtyczek Extbase. Jeśli chcesz jeszcze więcej sieci bezpieczeństwa, gorąco polecam używanie schematów XSD w swoim edytorze - dzięki temu automatycznie uzupełnisz specjalny <flux:....>
tagi i inne.
Jednak:będzie to wymagało od ciebie nauczenia się trochę logiki Fluid:czym są układy i części (najprawdopodobniej będziesz chciał ich użyć w pewnym momencie) oraz jak używać specjalnych tagów i odnosić się do zmiennych (co będzie wymagane w inne przypadki użycia - ale nie ten obecny; wymaga tylko prostych tagów ViewHelper).
Mam nadzieję, że to pomoże. I że zmniejszyłem twój strach, że Flux to przesada i za dużo do nauczenia;)
Pozdrawiam,
Mikołaj aka. Bezimienny koder