114 lines
3.1 KiB
ReStructuredText
114 lines
3.1 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _feature-107359-1740170000:
|
|
|
|
=======================================================
|
|
Feature: #107359 - Introduce Fluid page meta ViewHelper
|
|
=======================================================
|
|
|
|
See :issue:`107359`
|
|
|
|
Description
|
|
===========
|
|
|
|
A new Fluid ViewHelper :html:`<f:page.meta>` has been introduced to allow
|
|
setting meta tags directly from Fluid templates using TYPO3's
|
|
MetaTagManager API.
|
|
|
|
This is especially useful for Extbase plugins that need to set meta tags
|
|
in their detail views without having to implement custom meta tag
|
|
handling.
|
|
|
|
In addition, frontend developers do not need to write custom TypoScript
|
|
anymore but can use Fluid directly.
|
|
|
|
.. code-block:: html
|
|
:caption: EXT:my_extension/Resources/Private/Templates/Item/Show.html
|
|
|
|
<f:page.meta property="description">
|
|
{item.description}
|
|
</f:page.meta>
|
|
<f:page.meta property="og:title">
|
|
{item.title}
|
|
</f:page.meta>
|
|
<f:page.meta property="og:type">
|
|
article
|
|
</f:page.meta>
|
|
|
|
<h1>{item.title}</h1>
|
|
<p>{item.description}</p>
|
|
|
|
The ViewHelper supports all features of the MetaTagManager API:
|
|
|
|
**OpenGraph and Twitter / X Card meta tags:**
|
|
|
|
.. code-block:: html
|
|
|
|
<f:page.meta property="og:title">
|
|
My Article Title
|
|
</f:page.meta>
|
|
<f:page.meta property="og:description">
|
|
Article description
|
|
</f:page.meta>
|
|
<f:page.meta property="twitter:card">
|
|
summary_large_image
|
|
</f:page.meta>
|
|
|
|
**Sub-properties for complex meta tags:**
|
|
|
|
.. code-block:: html
|
|
|
|
<f:page.meta
|
|
property="og:image"
|
|
subProperties="{width: 1200, height: 630, alt: 'Article image'}"
|
|
>
|
|
{item.image.url}
|
|
</f:page.meta>
|
|
|
|
**Custom meta tag types:**
|
|
|
|
.. code-block:: html
|
|
|
|
<f:page.meta property="author" type="name">
|
|
John Doe
|
|
</f:page.meta>
|
|
<f:page.meta property="robots" type="name">
|
|
index, follow
|
|
</f:page.meta>
|
|
|
|
**Replacing existing meta tags:**
|
|
|
|
.. code-block:: html
|
|
|
|
<f:page.meta property="description" replace="true">
|
|
Override any existing description
|
|
</f:page.meta>
|
|
|
|
ViewHelper Arguments
|
|
====================
|
|
|
|
* **property** (required): The meta property name (for example,
|
|
`description`, `og:title`)
|
|
* **type** (optional): The meta type attribute (`name`, `property`,
|
|
`http-equiv`). If not set, the appropriate MetaTagManager determines
|
|
the type automatically.
|
|
* **subProperties** (optional): Array of sub-properties for complex
|
|
meta tags.
|
|
* **replace** (optional): Boolean to replace existing meta tags with
|
|
the same property (default: `false`).
|
|
|
|
Impact
|
|
======
|
|
|
|
Extension developers can now easily set meta tags from Fluid templates
|
|
without needing to use the MetaTagManager API directly in PHP code. This
|
|
simplifies the implementation of SEO-optimized pages in Extbase plugins,
|
|
especially for detail views where meta tags should reflect the displayed
|
|
record.
|
|
|
|
The ViewHelper integrates seamlessly with TYPO3's existing
|
|
MetaTagManager system and respects all configured meta tag managers and
|
|
their priorities.
|
|
|
|
.. index:: Frontend, ext:fluid
|