Automatic functionality for records
What does the automatic functionality do?
By using the automatic functionality the following will be added to your records:
- Backend:
-
- Fields of the core SEO extension:
-
- SEO title
- Robots: Index this page, Follow this page
- Opengraph fields: Title, Description, Image
- Twitter fields: Title, Description, Image, Card
- Canonical link
- Sitemap: Change frequency, Priority
- Functionality of Yoast SEO:
-
- Snippet preview
- Title and Description progress bar
- Readability Analysis
- SEO Analysis
- Focus keyword
- Advanced robots: Image index, Archive, Snippet
- Frontend:
-
- Metatag tags:
-
- Description
- Opengraph
- Robots
- Canonical generation
- Page title based on SEO Title and Title field
Configuration for a record
To get all the functionality mentioned above you only have to set the table
name and the GET parameters on which it responds to. This should be placed
in a file within Configuration/TCA/Overrides
of your extension
(f.e. sitepackage):
<?php
\YoastSeoForTypo3\YoastSeo\Utility\RecordUtility::configureForRecord('tx_extension_record')
->setGetParameters([
['tx_extension_pi1', 'record']
]);
This will automatically set the TCA, Database fields and activate the frontend functionality.
Configuration options
The method configureRecord
returns an object which has the following
methods:
setGetParameters
- Datatype
- array
- Default
- none
- Description
- The GET parameters on where the frontend functionality should be activated. This should be a multidimensional array, which gives you the possibility to react to multiple situations.
Example
->setGetParameters([
['tx_extension_pi1', 'record'],
['tx_extension_pi1', 'record_preview']
])
setDefaultSeoFields
- Datatype
- boolean
- Default
- true
- Description
- This will define if the default fields from EXT:seo should be added.
setYoastSeoFields
- Datatype
- boolean
- Default
- true
- Description
- This will define if the fields from Yoast SEO should be added.
setSitemapFields
- Datatype
- boolean
- Default
- true
- Description
- This will define if the fields "Change frequency" and "Priority" for Sitemap should be added.
setTypes
- Datatype
- string
- Default
- empty (all types)
- Description
- Defines on which types of the record the fields should be added.
setTitleField
- Datatype
- string
- Default
- title
- Description
- Sets the title field to another column.
setDescriptionField
- Datatype
- string
- Default
- description
- Description
- Sets the description field to another column.
setAddDescriptionField
- Datatype
- boolean
- Default
- false
- Description
- Adds the description column to both TCA and database (in case there's none already).
setFieldsPosition
- Datatype
- string
- Default
- after:title
- Description
- Sets the position of the TCA fields.
setOverrideTca
- Datatype
- array
- Default
- none
- Description
- Override TCA of the complete table. This can be useful if you want to change
something of the TCA of the EXT:seo or Yoast SEO fields. This is needed
because the automatic TCA generation is executed after all generated TCA, so
trying to add this to one of the
Overrides
files will not take effect.
Example
->setOverrideTca([
'columns' => [
'seo_title' => [
'config' => [
'max' => 100
]
]
]
])
setGeneratePageTitle
- Datatype
- boolean
- Default
- true
- Description
- This will enable/disable the functionality of the Page Title Provider in the frontend.
setGenerateMetaTags
- Datatype
- boolean
- Default
- true
- Description
- This will enable/disable the rendering of the metatags in the frontend (in case you want to this yourself). This will not deactivate the canonical tag.
setGenerateRobotsTag
- Datatype
- boolean
- Default
- true
- Description
- This will enable/disable the rendering of the robots metatag in the frontend (in case you always want the robot settings from the page it's displayed on).
Example with EXT:news
EXT:news has his own sitemap fields and has multiple GET parameters to respond to. The basic configuration can be:
\YoastSeoForTypo3\YoastSeo\Utility\RecordUtility::configureForRecord('tx_news_domain_model_news')
->setGetParameters([
['tx_news_pi1', 'news'],
['tx_news_pi1', 'news_preview']
])
->setSitemapFields(false)
->setFieldsPosition('after:bodytext');
Note
EXT:news provides an own Page Title Provider, if you want to use the
Page Title Provider of Yoast SEO you can unset the one from EXT:news
with typoscript: config.pageTitleProviders.news >
Adding PageTsconfig
Make sure to add the needed PageTsconfig mentioned in Other Plugins