[FEATURE] Add SEO fields to Pages TCA 69/56769/16
authorTom Warwick <tom.warwick@typo3.org>
Fri, 20 Apr 2018 21:00:05 +0000 (23:00 +0200)
committerSusanne Moog <susanne.moog@typo3.org>
Thu, 10 May 2018 13:06:31 +0000 (15:06 +0200)
This feature adds some new SEO fields to the Pages TCA. It also
introduces a new SEO tab containing all SEO related meta data. The
description field is moved to this tab. Other meta data that is not
important for SEO, is still on the Metadata tab.

Resolves: #84798
Releases: master
Change-Id: I75d47d2121d8cc40e10b8df926f2de6f68db6585
Reviewed-on: https://review.typo3.org/56769
Reviewed-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Riny van Tiggelen <info@online-gamer.nl>
Reviewed-by: Gianluca Piccolo <gianluca.piccolo@pallino.it>
Tested-by: Gianluca Piccolo <gianluca.piccolo@pallino.it>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
12 files changed:
typo3/sysext/core/Configuration/TCA/pages.php
typo3/sysext/core/Documentation/Changelog/master/Feature-84798-AddSEOFieldsToPagesTCA.rst [new file with mode: 0644]
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizeNCopyPageWSynchronization.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageAddMonoglotHotelChildNCopyPageWSynchronization.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageNAddHotelChildWExclude.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageNAddHotelChildWSynchronization.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageNAddMonoglotHotelChildWSynchronization.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageWSynchronization.csv
typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/localizePageWithSynchronizationAndCustomLocalizedHotel.csv
typo3/sysext/core/Tests/Functional/DataHandling/Regular/Modify/DataSet/localizeNCopyPageWSynchronization.csv
typo3/sysext/core/ext_tables.sql
typo3/sysext/frontend/Resources/Private/Language/locallang_tca.xlf

index 214f7ba..d1c3f4c 100644 (file)
@@ -880,6 +880,147 @@ return [
                 'softref' => 'ext_fileref'
             ]
         ],
+        'seo_title' => [
+            'exclude' => true,
+            'l10n_mode' => 'prefixLangTitle',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.seo_title',
+            'config' => [
+                'type' => 'input',
+                'size' => 40,
+                'max' => 255,
+                'eval' => 'trim'
+            ]
+        ],
+        'no_index' => [
+            'exclude' => true,
+            'l10n_mode' => 'exclude',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.no_index',
+            'config' => [
+                'type' => 'check',
+                'renderType' => 'checkboxToggle',
+                'items' => [
+                    [
+                        '0' => '',
+                        '1' => '',
+                        'invertStateDisplay' => true
+                    ]
+                ]
+            ]
+        ],
+        'no_follow' => [
+            'exclude' => true,
+            'l10n_mode' => 'exclude',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.no_follow',
+            'config' => [
+                'type' => 'check',
+                'renderType' => 'checkboxToggle',
+                'items' => [
+                    [
+                        '0' => '',
+                        '1' => '',
+                        'invertStateDisplay' => true
+                    ]
+                ]
+            ]
+        ],
+        'og_title' => [
+            'exclude' => true,
+            'l10n_mode' => 'prefixLangTitle',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.og_title',
+            'config' => [
+                'type' => 'input',
+                'size' => 40,
+                'max' => 255,
+                'eval' => 'trim'
+            ]
+        ],
+        'og_description' => [
+            'exclude' => true,
+            'l10n_mode' => 'prefixLangTitle',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.og_description',
+            'config' => [
+                'type' => 'text',
+                'cols' => 40,
+                'rows' => 3
+            ]
+        ],
+        'og_image' => [
+            'exclude' => true,
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.og_image',
+            'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
+                'og_image',
+                [
+                    // Use the imageoverlayPalette instead of the basicoverlayPalette
+                    'overrideChildTca' => [
+                        'types' => [
+                            '0' => [
+                                'showitem' => '
+                                    --palette--;;imageoverlayPalette,
+                                    --palette--;;filePalette'
+                            ],
+                            \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
+                                'showitem' => '
+                                    --palette--;;imageoverlayPalette,
+                                    --palette--;;filePalette'
+                            ]
+                        ],
+                    ],
+                    'behaviour' => [
+                        'allowLanguageSynchronization' => true
+                    ]
+                ],
+                $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
+            )
+        ],
+        'twitter_title' => [
+            'exclude' => true,
+            'l10n_mode' => 'prefixLangTitle',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.twitter_title',
+            'config' => [
+                'type' => 'input',
+                'size' => 40,
+                'max' => 255,
+                'eval' => 'trim'
+            ]
+        ],
+        'twitter_description' => [
+            'exclude' => true,
+            'l10n_mode' => 'prefixLangTitle',
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.twitter_description',
+            'config' => [
+                'type' => 'text',
+                'cols' => 40,
+                'rows' => 3
+            ]
+        ],
+        'twitter_image' => [
+            'exclude' => true,
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.twitter_image',
+            'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
+                'twitter_image',
+                [
+                    // Use the imageoverlayPalette instead of the basicoverlayPalette
+                    'overrideChildTca' => [
+                        'types' => [
+                            '0' => [
+                                'showitem' => '
+                                    --palette--;;imageoverlayPalette,
+                                    --palette--;;filePalette'
+                            ],
+                            \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
+                                'showitem' => '
+                                    --palette--;;imageoverlayPalette,
+                                    --palette--;;filePalette'
+                            ]
+                        ],
+                    ],
+                    'behaviour' => [
+                        'allowLanguageSynchronization' => true
+                    ]
+                ],
+                $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
+            )
+        ],
     ],
     'types' => [
         // normal
@@ -888,6 +1029,11 @@ return [
                 --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
                     --palette--;;standard,
                     --palette--;;title,
+                --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo,
+                    --palette--;;seo,
+                    --palette--;;robots,
+                    --palette--;;opengraph,
+                    --palette--;;twittercards,
                 --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,
                     --palette--;;abstract,
                     --palette--;;metatags,
@@ -1120,7 +1266,7 @@ return [
         ],
         'metatags' => [
             'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.metatags',
-            'showitem' => 'keywords;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.keywords_formlabel, --linebreak--, description;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.description_formlabel',
+            'showitem' => 'keywords;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.keywords_formlabel,',
         ],
         'editorial' => [
             'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial',
@@ -1169,6 +1315,22 @@ return [
         'config' => [
             'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.config',
             'showitem' => 'tsconfig_includes;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tsconfig_includes, --linebreak--, TSconfig;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.TSconfig_formlabel',
-        ]
+        ],
+        'seo' => [
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.seo',
+            'showitem' => 'seo_title;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.seo_title, --linebreak--, description;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.description_formlabel',
+        ],
+        'robots' => [
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.robots',
+            'showitem' => 'no_index;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.no_index_formlabel, no_follow;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.no_follow_formlabel',
+        ],
+        'opengraph' => [
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.opengraph',
+            'showitem' => 'og_title, --linebreak--, og_description, --linebreak--, og_image',
+        ],
+        'twittercards' => [
+            'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.twittercards',
+            'showitem' => 'twitter_title, --linebreak--, twitter_description, --linebreak--, twitter_image',
+        ],
     ]
 ];
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-84798-AddSEOFieldsToPagesTCA.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-84798-AddSEOFieldsToPagesTCA.rst
new file mode 100644 (file)
index 0000000..31f8b28
--- /dev/null
@@ -0,0 +1,32 @@
+.. include:: ../../Includes.txt
+
+=============================================
+Feature: #84798 - Add SEO fields to Pages TCA
+=============================================
+
+See :issue:`84798`
+
+Description
+===========
+
+This feature adds SEO fields to Pages TCA. A new tab SEO now exists in the Page module which contains SEO related
+metadata. Other non-SEO metadata is still on the Metadata tab.
+
+
+Impact
+======
+
+Integrators can add both Open Graph and Twitter Card metadata for each page.
+
+New fields added to Pages table:
+- seo_title
+- no_index
+- no_follow
+- og_title
+- og_description
+- og_image
+- twitter_title
+- twitter_description
+- twitter_image
+
+.. index:: Backend, Database, TCA, ext:core
index 9475ad8..c441bb8 100644 (file)
@@ -4,9 +4,9 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",1,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 ,92,90,256,0,0,0,89,0,0,0,0,0,"Relations",1,,,
-,93,90,256,0,1,92,91,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,93,90,256,0,1,92,91,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 5ed7792..72d396b 100644 (file)
@@ -4,9 +4,9 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",2,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 ,92,90,256,0,0,0,89,0,0,0,0,0,"Relations",2,,,
-,93,90,256,0,1,92,91,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,93,90,256,0,1,92,91,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 2b059db..fac3e32 100644 (file)
@@ -4,7 +4,7 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",2,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 9413a53..87d9822 100644 (file)
@@ -4,7 +4,7 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",2,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 1c8f7fc..1bc26bb 100644 (file)
@@ -4,7 +4,7 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",2,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 749f4f0..6dab8bf 100644 (file)
@@ -4,7 +4,7 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",1,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",1,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""parent""}",,
 "tt_content",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","tx_irretutorial_1nff_hotels",,,
 ,297,89,256,0,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,
index 40e5f40..03ad1cb 100644 (file)
@@ -4,7 +4,7 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",0,,,
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Relations",1,,,
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",0,,,
-,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""tx_irretutorial_hotels"":""custom""}",,
+,91,88,256,0,1,89,0,0,0,0,0,0,"[Translate to Dansk:] Relations",2,"{""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent"",""tx_irretutorial_hotels"":""custom""}",,
 "tx_irretutorial_1nff_hotel",,,,,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","title","parentid","parenttable","parentidentifier","offers"
 ,2,89,512,0,0,0,0,0,0,0,0,0,"Hotel #0",89,"pages",,0
index acc24e6..034ce7c 100644 (file)
@@ -4,9 +4,9 @@
 ,88,1,256,0,0,0,0,0,0,0,0,0,"DataHandlerTest",
 ,89,88,256,0,0,0,0,0,0,0,0,0,"Testing #1",
 ,90,88,512,0,0,0,0,0,0,0,0,0,"Target",
-,91,88,256,1,89,0,0,0,0,0,0,0,"Testing #1","{""title"":""parent"",""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent""}"
+,91,88,256,1,89,0,0,0,0,0,0,0,"Testing #1","{""title"":""parent"",""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent""}"
 ,92,90,256,0,0,0,89,0,0,0,0,0,"Testing #1",
-,93,90,256,1,92,0,91,0,0,0,0,0,"Testing #1","{""title"":""parent"",""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent""}"
+,93,90,256,1,92,0,91,0,0,0,0,0,"Testing #1","{""title"":""parent"",""starttime"":""parent"",""endtime"":""parent"",""url"":""parent"",""lastUpdated"":""parent"",""newUntil"":""parent"",""no_search"":""parent"",""shortcut"":""parent"",""shortcut_mode"":""parent"",""author"":""parent"",""author_email"":""parent"",""media"":""parent"",""og_image"":""parent"",""twitter_image"":""parent""}"
 "tt_content",,,,,,,,,,,,,,
 ,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","l10n_source","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header"
 ,296,88,256,0,0,0,0,0,0,0,0,0,0,"Regular Element #0"
index 2d89784..64eaf51 100644 (file)
@@ -160,6 +160,16 @@ CREATE TABLE pages (
        backend_layout_next_level varchar(64) DEFAULT '' NOT NULL,
        tsconfig_includes text,
        legacy_overlay_uid int(11) unsigned DEFAULT '0' NOT NULL,
+       seo_title varchar(255) DEFAULT '' NOT NULL,
+       no_index tinyint(4) DEFAULT '0' NOT NULL,
+       no_follow tinyint(4) DEFAULT '0' NOT NULL,
+       og_title varchar(255) DEFAULT '' NOT NULL,
+       og_description text,
+       og_image int(11) unsigned DEFAULT '0' NOT NULL,
+       twitter_title varchar(255) DEFAULT '' NOT NULL,
+       twitter_description text,
+       twitter_image int(11) unsigned DEFAULT '0' NOT NULL,
+
        PRIMARY KEY (uid),
        KEY t3ver_oid (t3ver_oid,t3ver_wsid),
        KEY parent (pid,deleted,sorting),
index 4a8ce65..b368509 100644 (file)
                        <trans-unit id="pages.editlock_formlabel">
                                <source>Editable for Admins Only</source>
                        </trans-unit>
+                       <trans-unit id="pages.tabs.seo">
+                               <source>SEO</source>
+                       </trans-unit>
                        <trans-unit id="pages.tabs.metadata">
                                <source>Metadata</source>
                        </trans-unit>
                        <trans-unit id="backend_layout.tabs.extended">
                                <source>Extended</source>
                        </trans-unit>
+            <trans-unit id="pages.palettes.seo">
+                <source>General SEO settings</source>
+            </trans-unit>
+            <trans-unit id="pages.title.page_title">
+                <source>Page Title</source>
+            </trans-unit>
+            <trans-unit id="pages.seo_title">
+                <source>Title for search engines</source>
+            </trans-unit>
+            <trans-unit id="pages.palettes.robots">
+                <source>Robot instructions</source>
+            </trans-unit>
+            <trans-unit id="pages.no_index">
+                <source>No index</source>
+            </trans-unit>
+            <trans-unit id="pages.no_index_formlabel">
+                <source>Index this page</source>
+            </trans-unit>
+            <trans-unit id="pages.no_follow">
+                <source>No follow</source>
+            </trans-unit>
+            <trans-unit id="pages.no_follow_formlabel">
+                <source>Follow this page</source>
+            </trans-unit>
+            <trans-unit id="pages.palettes.opengraph">
+                <source>Open Graph (Facebook)</source>
+            </trans-unit>
+            <trans-unit id="pages.og_title">
+                <source>Title</source>
+            </trans-unit>
+            <trans-unit id="pages.og_description">
+                <source>Description</source>
+            </trans-unit>
+            <trans-unit id="pages.og_image">
+                <source>Image</source>
+            </trans-unit>
+            <trans-unit id="pages.palettes.twittercards">
+                <source>Twitter Cards</source>
+            </trans-unit>
+                       <trans-unit id="pages.twitter_title">
+                               <source>Title</source>
+                       </trans-unit>
+                       <trans-unit id="pages.twitter_description">
+                               <source>Description</source>
+                       </trans-unit>
+                       <trans-unit id="pages.twitter_image">
+                               <source>Image</source>
+                       </trans-unit>
                </body>
        </file>
 </xliff>