Skip to content

Commit

Permalink
Merge pull request #26 from gerhard-boden/retrieve-language-dimension…
Browse files Browse the repository at this point in the history
…-from-settings

FEATURE: Retrieve active language dimension from TYPO3CR settings
  • Loading branch information
kdambekalns authored Jan 26, 2018
2 parents 331fadb + b151d24 commit d9e665c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
7 changes: 6 additions & 1 deletion Documentation/index.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,12 @@ example the rendered tags for the homepage would be.
According to the following dimension settings, there would be a lot more tags expected. However only two variants of the
homepage exists, thus only `en_US` and its fallback `en_UK` are rendered.

In case the dimension that contains the language is not named `language` you have to set the alternative name with the
property `ContentRepository.dimensionTypes.language`.

::

TYPO3CR:
ContentRepository:
contentDimensions:
'language':
label: 'Language'
Expand Down Expand Up @@ -127,3 +130,5 @@ homepage exists, thus only `en_US` and its fallback `en_UK` are rendered.
label: 'Latvian'
values: ['lv']
uriSegment: 'lv'
dimensionTypes:
language: 'language'
12 changes: 7 additions & 5 deletions Resources/Private/Fusion/Root.fusion
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
# so Neos.Seo extends this default object
#
prototype(Neos.Neos:Page) {
@context.languageDimension = ${Configuration.setting('Neos.ContentRepository.dimensionTypes.language') != null ? Configuration.setting('Neos.ContentRepository.dimensionTypes.language') : 'language'}

htmlTag {
attributes {
lang = ${String.replace(documentNode.context.dimensions.language[0], '_', '-')}
[email protected] = ${Configuration.setting('Neos.ContentRepository.contentDimensions.language') != null}
lang = ${String.replace(documentNode.context.dimensions[languageDimension][0], '_', '-')}
[email protected] = ${Configuration.setting('Neos.ContentRepository.contentDimensions.' + languageDimension) != null}
[email protected] = ${node.context.workspace.name == 'live'}
}
}
Expand Down Expand Up @@ -65,12 +67,12 @@ prototype(Neos.Neos:Page) {
}

alternateLanguageLinks = Neos.Neos:DimensionMenu {
@if.languageDimensionExists = ${Configuration.setting('Neos.ContentRepository.contentDimensions.language') != null}
@if.languageDimensionExists = ${Configuration.setting('Neos.ContentRepository.contentDimensions.' + languageDimension) != null}
@if.onlyRenderWhenInLiveWorkspace = ${node.context.workspace.name == 'live'}

localeToLanguage = ${String.replace((item.preset ? item.preset.values[0] : item.dimensions[dimension][0]), '_', '-')}
localeToLanguage = ${String.replace((item.preset ? item.preset.values[0] : item.dimensions[languageDimension][0]), '_', '-')}

dimension = 'language'
dimension = ${languageDimension}
templatePath = 'resource://Neos.Seo/Private/Templates/FusionObjects/AlternateLanguageLinks.html'
}

Expand Down
2 changes: 1 addition & 1 deletion Resources/Private/Templates/FusionObjects/AlternateLanguageLinks.html
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{namespace neos=Neos\Neos\ViewHelpers}
{namespace ts=Neos\Fusion\ViewHelpers}
<f:for each="{items}" as="item"><f:if condition="{item.node}">
<link rel="alternate" hreflang="{ts:render(path: 'localeToLanguage', context: {item: item, dimension: dimension})}" href="{neos:uri.node(node : item.node, absolute: true)}"/></f:if></f:for>
<link rel="alternate" hreflang="{ts:render(path: 'localeToLanguage', context: {item: item})}" href="{neos:uri.node(node : item.node, absolute: true)}"/></f:if></f:for>

0 comments on commit d9e665c

Please sign in to comment.