Jsem autorem sady rozšíření Fluid (flux, fluidcontent, fluidpages atd.) a rád bych vám samozřejmě pomohl naučit se používat FluidContent k vytváření FCE. Opravdu to není tak pokročilé, jak by se někdo mohl obávat. Přinejmenším je mnohem kompaktnější než výše uvedený příklad. Následující postup dosahuje stejného výsledku jako váš příklad ve FluidContent:
TypoScript (staticky načten: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)
}
Pokud jde o (1), opravdu, opravdu byste měli. Použití rozšíření oddělí vaše uživatelem nahraná média atd. od obsahu vašeho webu. Pokud to místo toho uděláte, jednoduše použijte EXT:... cestu ke složce Private resources. A pokud jde o (2), tyto cesty jsou nezbytné pouze v případě, že skutečně chcete používat částečné části.
Poté samotný soubor šablony (automaticky zjištěn, když je do TS přidána cesta, kde se soubor nachází):
{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 vidíte, můžete zcela svobodně přidat libovolný HTML, použít jakékoli ViewHelpers (dokonce i vykreslit TS objekty, pokud je to vaše věc). Chcete-li přidat další prvky obsahu, jednoduše přidejte nové soubory šablon – budou automaticky rozpoznány.
Bude to ale fungovat jinak než IRRE (které můžete také dosáhnout pomocí polí Flux - dejte mi vědět, pokud chcete vidět ukázku toho:umožní vám to použít nativní drag-n-drop v TYPO3 k umístění prvků obsahu vašeho dítěte do skutečných kontejnerů obsahu - jako jste to dělali s TV.
Jako takový je Fluid Content pravděpodobně nejblíže k TV.
Pokud jde o to, že Flux je přehnaný, rád bych vám dal představu o tom, co vlastně dělá:
- Čtení TS uložené v mezipaměti za účelem zjištění cest
- Seznamy nalezených šablon v mezipaměti
- Fluid se ukládá do nativního PHP, Flux používá Fluid pouze k ukládání konfigurace (což znamená, že je to celé nativní PHP)
- Samotný Flux registruje hákového odběratele, který reaguje na ukládaný obsah, což (nepozorovatelně) zpomaluje backend
- Flux sám o sobě nevytváří zátěž na FE s jednou výjimkou:když v pluginech bez mezipaměti (FluidContent je uložen do mezipaměti!) Flux může ke čtení konfigurací volat nativní kód PHP uložený v mezipaměti.
- FluidContent se skládá z extrémně jednoduchého ovladače; výstup je plně uložen do mezipaměti.
- Možná budete chtít přidat kolekci VHS ViewHelper – ta sama o sobě vytváří absolutně nulovou zátěž:využívá zdroje pouze tam, kde používáte její ViewHelper. Obsahuje hromadu ViewHelpers, o kterých jsem si jist, že se vám budou hodit.
Na první pohled to může vypadat ohromující, ale garantuji vám, že je toho k poznání a zapamatování méně než v zásuvných modulech pibase, FlexForm XML, TS nebo nativních Extbase. Pokud chcete ještě více záchranné sítě, vřele doporučuji používat ve svém editoru schémata XSD – tím získáte automatické dokončování speciálního <flux:....>
tagy a další.
Nicméně:bude to vyžadovat, abyste se naučili něco málo o logice Fluid:co jsou rozvržení a části (budete je pravděpodobně chtít někdy použít) a jak používat speciální značky a odkazovat na proměnné (které budou vyžadovány v jiné případy použití – ale ne ten, který je po ruce; vyžaduje pouze jednoduché značky ViewHelper).
Doufám, že to pomůže. A že jsem snížil váš strach, že Flux je přehnaný a že je toho příliš mnoho na učení;)
Na zdraví,
Claus aka. NamelessCoder