Eu sou o autor do pacote de extensão Fluid (flux, fluidcontent, fluidpages etc.) e, claro, gostaria de ajudá-lo a aprender sobre como usar o FluidContent para fazer FCEs. Realmente não é tão avançado quanto se poderia temer. No mínimo, é muito mais compacto do que o exemplo acima. O seguinte obtém o mesmo resultado que seu exemplo, em FluidContent:
TypoScript (carregado estático: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)
}
Em relação a (1) você realmente deveria. O uso de uma extensão separa a mídia carregada pelo usuário etc. do conteúdo do site. Se você fizer isso, simplesmente use um caminho EXT:... para a pasta de recursos privados. E em relação a (2) esses caminhos só são necessários se você realmente deseja usar parciais.
Em seguida, o próprio arquivo de modelo (detectado automaticamente quando o caminho onde o arquivo está localizado é adicionado no 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>
Como você pode ver, você é totalmente livre para adicionar qualquer HTML que desejar, usar qualquer ViewHelpers (até mesmo renderizar objetos TS, se for o seu caso). Para adicionar elementos de conteúdo adicionais, basta adicionar novos arquivos de modelo - eles serão reconhecidos automaticamente.
Mas funcionará de forma diferente do IRRE (que você pode também conseguir usando campos Flux - deixe-me saber se você deseja ver uma demonstração disso):ele permitirá que você use o arrastar e soltar nativo no TYPO3 para colocar seus elementos de conteúdo filho em contêineres de conteúdo reais - como você costumava fazer com televisão.
Como tal, o conteúdo fluido é provavelmente o mais próximo que você chegará da TV.
Em relação ao Flux ser um exagero, gostaria de dar uma ideia do que ele realmente executa:
- Leitura em cache de TS para conhecer caminhos
- Listas em cache de modelos detectados
- Fluid caches para PHP nativo, o Flux usa apenas Fluid para armazenar a configuração (o que significa que é PHP nativo até o fim)
- O próprio Flux registra um assinante de gancho que reage ao conteúdo que está sendo salvo, isso torna o back-end mais lento (de forma imperceptível)
- Flux em si não cria carga no FE com uma exceção:quando em plugins não armazenados em cache (FluidContent é armazenado em cache!) O Flux pode chamar o código em cache do PHP nativo para ler as configurações.
- FluidContent consiste em um controlador extremamente simples; a saída é totalmente armazenada em cache.
- Você pode querer adicionar a coleção VHS ViewHelper - ela por si só cria absolutamente zero de carga:ela usa apenas recursos onde você usa seus ViewHelpers. Ele contém um monte de ViewHelpers que tenho certeza que você achará útil.
Pode parecer esmagador no começo, mas garanto que há menos para saber e lembrar do que nos plugins pibase, FlexForm XML, TS ou Extbase nativos. Se você quiser ainda mais uma rede de segurança, recomendo usar esquemas XSD em seu editor - isso permite o preenchimento automático do
<flux:....>
especial etiquetas e outros. No entanto:isso exigirá que você aprenda um pouco sobre a lógica do Fluid:o que são Layouts e Partials (você provavelmente desejará usá-los em algum momento) e como usar as tags especiais e se referir a variáveis (que serão necessárias no outros casos de uso - mas não o que está em mãos; requer apenas tags ViewHelper simples).
Eu espero que isso ajude. E que eu reduzi seu medo de que o Flux é um exagero e muito para aprender;)
Felicidades,
Noel aka. Codificador Sem Nome