diff --git a/DistributionPackages/Neos.NeosIo/Configuration/Settings.yaml b/DistributionPackages/Neos.NeosIo/Configuration/Settings.yaml index 050cd76a1..52248410c 100644 --- a/DistributionPackages/Neos.NeosIo/Configuration/Settings.yaml +++ b/DistributionPackages/Neos.NeosIo/Configuration/Settings.yaml @@ -75,6 +75,11 @@ Neos: - 'Neos.NodeTypes:Page' - 'Neos.MarketPlace:RepositoryStorage' - 'Neos.NeosIo:Reference' + translation: + autoInclude: + 'Neos.NeosIo': + - 'Main' + - 'NodeTypes/*' nodeTypes: groups: special: diff --git a/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20230814102735.yaml b/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20230814102735.yaml new file mode 100644 index 000000000..2c84fd62f --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20230814102735.yaml @@ -0,0 +1,56 @@ +up: + comments: 'Migrates the old NodeTypes of the Neos.NodeTypes package too new ones.' + migration: + - + filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NodeTypes:Text' + transformations: + - + type: 'ChangeNodeType' + settings: + newType: 'Neos.NeosIo:Text' + - + filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NodeTypes:Headline' + transformations: + - + type: 'ChangeNodeType' + settings: + newType: 'Neos.NeosIo:Headline' + - + filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NodeTypes:Image' + transformations: + - + type: 'ChangeNodeType' + settings: + newType: 'Neos.NeosIo:Image' + - + filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NodeTypes.ContentReferences:ContentReferences' + transformations: + - + type: 'ChangeNodeType' + settings: + newType: 'Neos.NeosIo:ContentReferences' + - + filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NodeTypes:TextWithImage' + transformations: + - + type: 'ChangeNodeType' + settings: + newType: 'Neos.NeosIo:TextWithImage' + +down: + comments: 'No down migration available' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Box.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Box.yaml index 1ed001a37..c8c3e9e68 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Box.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Box.yaml @@ -9,8 +9,8 @@ constraints: nodeTypes: '*': false - 'Neos.NodeTypes:Text': true - 'Neos.NodeTypes.ContentReferences:ContentReferences': true + 'Neos.NeosIo:Text': true + 'Neos.NeosIo:ContentReferences': true 'Neos.NeosIo:Button': true 'Neos.NeosIo:CountUp': true ui: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Button.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Button.yaml index 62a7810ef..858eeb035 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Button.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Button.yaml @@ -6,7 +6,7 @@ 'Neos.NeosIo:Button': superTypes: 'Neos.Neos:Content': true - 'Neos.NodeTypes:LinkMixin': true + 'Neos.NeosIo:Mixins.LinkMixin': true 'Neos.NeosIo:Mixin.ButtonStyles': true ui: label: Button diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Column.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Column.yaml index 42e4d9ff2..6cdbc4f4a 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Column.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Column.yaml @@ -38,10 +38,10 @@ constraints: nodeTypes: '*': false - 'Neos.NodeTypes:Text': true - 'Neos.NodeTypes:Image': true - 'Neos.NodeTypes:TextWithImage': true - 'Neos.NodeTypes:Headline': true + 'Neos.NeosIo:Text': true + 'Neos.NeosIo:Image': true + 'Neos.NeosIo:TextWithImage': true + 'Neos.NeosIo:Headline': true 'Neos.NodeTypes:ContentReferences': true 'Neos.NeosIo:Box': true 'Neos.NeosIo:CountUp': true diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ContentReferences.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ContentReferences.yaml new file mode 100644 index 000000000..661b00072 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ContentReferences.yaml @@ -0,0 +1,22 @@ +'Neos.NeosIo:ContentReferences': + superTypes: + 'Neos.Neos:Content': true + 'Neos.Neos:ContentCollection': true + ui: + label: 'Inhaltsreferenz' + icon: 'icon-copy' + inspector: + groups: + references: + label: 'Verweise' + icon: 'icon-copy' + properties: + references: + type: 'references' + ui: + label: Auswählen + reloadIfChanged: true + inspector: + group: 'references' + editorOptions: + nodeTypes: ['Neos.Neos:Content'] diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/CountUp.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/CountUp.yaml index c5e36221b..e9fd346a3 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/CountUp.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/CountUp.yaml @@ -6,7 +6,7 @@ 'Neos.NeosIo:CountUp': superTypes: 'Neos.Neos:Content': true - 'Neos.NodeTypes:TextMixin': true + 'Neos.NeosIo:Mixins.TextMixin': true ui: label: 'Detail Counter' icon: icon-signal diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/DeviceStage.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/DeviceStage.yaml index c5565782e..e7b39e5e5 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/DeviceStage.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/DeviceStage.yaml @@ -12,15 +12,15 @@ constraints: nodeTypes: '*': false - 'Neos.NodeTypes:Headline': true - 'Neos.NodeTypes:Text': true + 'Neos.NeosIo:Headline': true + 'Neos.NeosIo:Text': true 'Neos.NeosIo:Button': true deviceContents: type: 'Neos.Neos:ContentCollection' constraints: nodeTypes: '*': false - 'Neos.NodeTypes:Image': true + 'Neos.NeosIo:Image': true 'Neos.NeosIo:Youtube': true ui: label: 'Stage (with device media)' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Headline.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Headline.yaml new file mode 100644 index 000000000..852a16aa4 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Headline.yaml @@ -0,0 +1,8 @@ +'Neos.NeosIo:Headline': + superTypes: + 'Neos.Neos:Content': true + 'Neos.NeosIo:Mixins.TitleMixin': true + 'Neos.Neos:ContentCollection': true + ui: + label: 'Headline' + icon: 'icon-header' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/HeadlineSlider.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/HeadlineSlider.yaml index 4c37bba36..631f898db 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/HeadlineSlider.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/HeadlineSlider.yaml @@ -13,7 +13,7 @@ constraints: nodeTypes: null '*': false - 'Neos.NodeTypes:Headline': true + 'Neos.NeosIo:Headline': true ui: label: 'Headline Slider' icon: icon-font diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Image.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Image.yaml new file mode 100644 index 000000000..15860230b --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Image.yaml @@ -0,0 +1,7 @@ +'Neos.NeosIo:Image': + superTypes: + 'Neos.Neos:Content': true + 'Neos.NeosIo:Mixins.ContentImageMixin': true + ui: + label: 'Image' + icon: 'icon-picture' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageGrid.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageGrid.yaml index de82e45f4..6531815e8 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageGrid.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageGrid.yaml @@ -8,7 +8,7 @@ Neos.NeosIo:Content.ImageGrid: constraints: nodeTypes: '*': false - Neos.NodeTypes:Image: true + 'Neos.NeosIo:Image': true properties: isDistributeEvenly: type: boolean diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageTeaser.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageTeaser.yaml index e58462fff..bc2e8c13d 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageTeaser.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/ImageTeaser.yaml @@ -6,10 +6,10 @@ 'Neos.NeosIo:ImageTeaser': superTypes: 'Neos.Neos:Content': true - 'Neos.NodeTypes:TitleMixin': true - 'Neos.NodeTypes:ImageMixin': true - 'Neos.NodeTypes:LinkMixin': true - 'Neos.NodeTypes:TextMixin': true + 'Neos.NeosIo:Mixins.TitleMixin': true + 'Neos.NeosIo:Mixins.ImageMixin': true + 'Neos.NeosIo:Mixins.LinkMixin': true + 'Neos.NeosIo:Mixins.TextMixin': true ui: label: 'Teaser with image' icon: icon-th-large diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/SemanticSection.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/SemanticSection.yaml index be3dfda8e..fdbefe1ae 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/SemanticSection.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/SemanticSection.yaml @@ -14,12 +14,12 @@ 'Neos.NodeTypes.ColumnLayouts:TwoColumn': true 'Neos.NodeTypes.ColumnLayouts:ThreeColumn': true 'Neos.NodeTypes.ColumnLayouts:FourColumn': true - 'Neos.NodeTypes:Text': true - 'Neos.NodeTypes:Image': true + 'Neos.NeosIo:Text': true + 'Neos.NeosIo:Image': true 'Neos.NodeTypes:TextWithImage': true 'Neos.NodeTypes.Html:Html': true - 'Neos.NodeTypes:Headline': true - 'Neos.NodeTypes.ContentReferences:ContentReferences': true + 'Neos.NeosIo:Headline': true + 'Neos.NeosIo:ContentReferences': true 'Neos.NeosIo:Button': true 'Neos.NeosIo:ButtonDimensionAware': true 'Neos.NeosIo:ChoiceButtons': true diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Stage.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Stage.yaml index efd9bc0ef..2ee063578 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Stage.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Stage.yaml @@ -13,12 +13,12 @@ 'Neos.NodeTypes.ColumnLayouts:TwoColumn': true 'Neos.NodeTypes.ColumnLayouts:ThreeColumn': true 'Neos.NodeTypes.ColumnLayouts:FourColumn': true - 'Neos.NodeTypes:Text': true - 'Neos.NodeTypes:Image': true + 'Neos.NeosIo:Text': true + 'Neos.NeosIo:Image': true 'Neos.NodeTypes:TextWithImage': true - 'Neos.NodeTypes:Headline': true + 'Neos.NeosIo:Headline': true 'Neos.NodeTypes.Html:Html': true - 'Neos.NodeTypes.ContentReferences:ContentReferences': true + 'Neos.NeosIo:ContentReferences': true 'Neos.NeosIo:Box': true 'Neos.NeosIo:Button': true 'Neos.NeosIo:ButtonDimensionAware': true diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TeamListing.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TeamListing.yaml index d756d4d6d..a05a6e4eb 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TeamListing.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TeamListing.yaml @@ -1,7 +1,7 @@ 'Neos.NeosIo:TeamListing': superTypes: 'Neos.Neos:Content': true - 'Neos.NodeTypes:TitleMixin': true + 'Neos.NeosIo:Mixins.TitleMixin': true ui: label: 'Teams & Guilds' group: plugins diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Text.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Text.yaml new file mode 100644 index 000000000..b757c2147 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/Text.yaml @@ -0,0 +1,8 @@ +'Neos.NeosIo:Text': + superTypes: + 'Neos.Neos:Content': true + 'Neos.NeosIo:Mixins.TextMixin': true + 'Neos.Neos:ContentCollection': true + ui: + label: Text + icon: 'icon-file-text' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TextWithImage.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TextWithImage.yaml new file mode 100644 index 000000000..85b5cc1cd --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/TextWithImage.yaml @@ -0,0 +1,8 @@ +'Neos.NeosIo:TextWithImage': + superTypes: + 'Neos.Neos:Content': true + 'Neos.NeosIo:Mixins.TextMixin': true + 'Neos.NeosIo:Mixins.ContentImageMixin': true + ui: + label: 'Text with Picture' + icon: 'icon-picture' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Documents/LandingPage.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Documents/LandingPage.yaml index ef529660e..6da608f71 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Documents/LandingPage.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Documents/LandingPage.yaml @@ -15,7 +15,7 @@ '*': false 'Neos.NeosIo:Stage': true 'Neos.NeosIo:DeviceStage': true - 'Neos.NodeTypes.ContentReferences:ContentReferences': true + 'Neos.NeosIo:ContentReferences': true 'GoE.Neos:Content.Library': true ui: label: 'Landing page' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ContentImageMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ContentImageMixin.yaml new file mode 100644 index 000000000..42e9e4de4 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ContentImageMixin.yaml @@ -0,0 +1,12 @@ +'Neos.NeosIo:Mixins.ContentImageMixin': + abstract: true + superTypes: + 'Neos.NeosIo:Mixins.LinkMixin': true + 'Neos.NeosIo:Mixins.ImageMixin': true + 'Neos.NeosIo:Mixins.ImageCaptionMixin': true + 'Neos.NeosIo:Mixins.ImageAlignmentMixin': true + properties: + link: + ui: + inspector: + group: 'image' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageAlignmentMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageAlignmentMixin.yaml new file mode 100644 index 000000000..a4af0adbc --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageAlignmentMixin.yaml @@ -0,0 +1,24 @@ +'Neos.NeosIo:Mixins.ImageAlignmentMixin': + abstract: true + properties: + alignment: + type: string + defaultValue: '' + ui: + label: 'Alignment' + reloadIfChanged: true + inspector: + group: 'image' + position: 400 + editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor' + editorOptions: + placeholder: 'Default' + values: + '': + label: '' + center: + label: 'Center' + left: + label: 'Left' + right: + label: 'Right' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageCaptionMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageCaptionMixin.yaml new file mode 100644 index 000000000..a81990999 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageCaptionMixin.yaml @@ -0,0 +1,20 @@ +'Neos.NeosIo:Mixins.ImageCaptionMixin': + abstract: true + properties: + hasCaption: + type: boolean + ui: + label: 'Enable caption' + reloadIfChanged: true + inspector: + group: 'image' + position: 200 + caption: + type: string + defaultValue: '' + ui: + inlineEditable: true + inline: + editorOptions: + autoparagraph: true + placeholder: 'Enter caption here' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageMixin.yaml new file mode 100644 index 000000000..c04fcf70d --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/ImageMixin.yaml @@ -0,0 +1,34 @@ +'Neos.NeosIo:Mixins.ImageMixin': + abstract: true + ui: + inspector: + groups: + image: + label: 'Image' + position: 5 + icon: 'icon-image' + properties: + image: + type: Neos\Media\Domain\Model\ImageInterface + ui: + label: 'Image' + reloadIfChanged: true + inspector: + group: 'image' + position: 50 + alternativeText: + type: string + ui: + label: 'Alternative text' + reloadIfChanged: true + inspector: + group: 'image' + position: 100 + title: + type: string + ui: + label: 'Title' + reloadIfChanged: true + inspector: + group: 'image' + position: 150 diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/KeyvisualMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/KeyvisualMixin.yaml index 09f50d492..42ea6314b 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/KeyvisualMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/KeyvisualMixin.yaml @@ -12,13 +12,13 @@ constraints: nodeTypes: '*': FALSE - 'Neos.NodeTypes:Headline': TRUE - 'Neos.NodeTypes.ContentReferences:ContentReferences': TRUE + 'Neos.NeosIo:Headline': TRUE + 'Neos.NeosIo:ContentReferences': TRUE 'Neos.NeosIo:ChoiceButtons': TRUE 'Neos.NeosIo:Button': TRUE 'Neos.NeosIo:HeadlineSlider': TRUE 'Neos.NodeTypes.ColumnLayouts:TwoColumn': TRUE - 'Neos.NodeTypes:Image': TRUE + 'Neos.NeosIo:Image': true 'GoE.Neos:Content.Video': TRUE ui: inspector: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/LinkMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/LinkMixin.yaml new file mode 100644 index 000000000..c6bce7aad --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/LinkMixin.yaml @@ -0,0 +1,11 @@ +'Neos.NeosIo:Mixins.LinkMixin': + abstract: true + properties: + link: + type: string + ui: + label: Link + reloadIfChanged: true + inspector: + position: 300 + editor: 'Neos.Neos/Inspector/Editors/LinkEditor' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TextMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TextMixin.yaml new file mode 100644 index 000000000..1d24f6156 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TextMixin.yaml @@ -0,0 +1,30 @@ +'Neos.NeosIo:Mixins.TextMixin': + abstract: true + properties: + text: + type: string + defaultValue: '' + ui: + inlineEditable: true + inline: + editorOptions: + formatting: + strong: true + em: true + sub: false + sup: false + p: true + h1: true + h2: true + h3: true + pre: true + removeFormat: true + table: true + a: true + ol: true + ul: true + underline: false + strikethrough: false + blockquote: true + autoparagraph: true + placeholder: 'Please enter your text here' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TitleMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TitleMixin.yaml new file mode 100644 index 000000000..353bd5b2d --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Mixins/TitleMixin.yaml @@ -0,0 +1,17 @@ +'Neos.NeosIo:Mixins.TitleMixin': + abstract: true + properties: + title: + type: string + defaultValue: '

Enter headline here

' + ui: + inlineEditable: true + inline: + editorOptions: + formatting: + p: false + h1: true + h2: true + h3: true + removeFormat: true + a: true diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Content/ContentImageMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Content/ContentImageMixin.yaml index 6c85ead0a..ca811dc9e 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Content/ContentImageMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Content/ContentImageMixin.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes:ContentImageMixin': +'Neos.NeosIo:Mixins.ContentImageMixin': properties: openInNewTab: type: boolean diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Headline.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Headline.yaml index 553f6a278..c4c3c3ee0 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Headline.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Headline.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes:Headline': +'Neos.NeosIo:Headline': properties: title: ui: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/ImageCaptionMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/ImageCaptionMixin.yaml index a27253b1b..a80edb148 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/ImageCaptionMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/ImageCaptionMixin.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes.BaseMixins:ImageCaptionMixin': +'Neos.NeosIo:Mixins.ImageCaptionMixin': properties: hasCaption: {} alignment: {} diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/LinkMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/LinkMixin.yaml index 324787e9a..f70553570 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/LinkMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/LinkMixin.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes.BaseMixins:LinkMixin': +'Neos.NeosIo:Mixins.LinkMixin': properties: link: ui: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml index 30a9f9401..0a1ea241a 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes.BaseMixins:TextMixin': +'Neos.NeosIo:Mixins.TextMixin': properties: text: ui: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Text.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Text.yaml index 4b3a92b59..ce1f0c222 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Text.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Text.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes:Text': +'Neos.NeosIo:Text': properties: text: ui: diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/TextWithImage.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/TextWithImage.yaml index 33252637f..24d1d0d2d 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/TextWithImage.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/TextWithImage.yaml @@ -1,4 +1,4 @@ -'Neos.NodeTypes:TextWithImage': +'Neos.NeosIo:TextWithImage': properties: text: ui: diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/ContentReferences.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/ContentReferences.fusion new file mode 100644 index 000000000..a9fa12e7b --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/ContentReferences.fusion @@ -0,0 +1,29 @@ +prototype(Neos.NeosIo:ContentReferences) < prototype(Neos.Neos:ContentComponent) { + + @context.referencedNodes = ${q(node).property('references')} + + references = Neos.Fusion:Loop { + items = ${referencedNodes} + itemRenderer = Neos.Neos:ContentCase + itemName = 'node' + } + + renderer = afx` + +

Momentan sind keine Referenzen im Inspektor ausgewählt.

+
+ {props.references} + ` + + @cache { + mode = 'cached' + entryIdentifier { + node = ${node} + } + entryTags { + 1 = ${Neos.Caching.nodeTag(node)} + 2 = ${Neos.Caching.nodeTag(referencedNodes)} + 3 = ${Neos.Caching.descendantOfTag(referencedNodes)} + } + } +} diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Headline.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Headline.fusion new file mode 100644 index 000000000..0aa6d8385 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Headline.fusion @@ -0,0 +1,6 @@ +prototype(Neos.NeosIo:Headline) < prototype(Neos.Neos:ContentComponent) { + + renderer = afx` + + ` +} diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Overrides/Image.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Image.fusion similarity index 97% rename from DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Overrides/Image.fusion rename to DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Image.fusion index ab32e3d17..13885878c 100644 --- a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Overrides/Image.fusion +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Image.fusion @@ -1,5 +1,4 @@ -prototype(Neos.NodeTypes:Image) > -prototype(Neos.NodeTypes:Image) < prototype(Neos.Neos:ContentComponent) { +prototype(Neos.NeosIo:Image) < prototype(Neos.Neos:ContentComponent) { title = ${q(node).property('title')} title.@process.filenameFallback = ${String.isBlank(value) ? q(node).property('image').label : value} diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Text.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Text.fusion new file mode 100644 index 000000000..ce95de053 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/Text.fusion @@ -0,0 +1,6 @@ +prototype(Neos.NeosIo:Text) < prototype(Neos.Neos:ContentComponent) { + + renderer = afx` + + ` +} diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/TextWithImage.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/TextWithImage.fusion new file mode 100644 index 000000000..723006115 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/TextWithImage.fusion @@ -0,0 +1,103 @@ +prototype(Neos.NeosIo:TextWithImage) < prototype(Neos.Neos:ContentComponent) { + + alternativeText = ${q(node).property('alternativeText')} + alternativeText.@process { + titleFallback = ${String.isBlank(value) ? q(node).property('title') : value} + filenameFallback = ${String.isBlank(value) ? q(node).property('image').label : value} + } + + image = ${q(node).property('image')} + imageClassName = Neos.Fusion:DataStructure { + alignment = ${'neos-alignment-' + q(node).property('alignment')} + alignment.@if.isSet = ${q(node).property('alignment')} + + addImageStyle = ${'image--style image--style-' + q(node).property('imageStyle')} + addImageStyle.@if.isSet = ${!String.isBlank(q(node).property('imageStyle'))} + } + + loading = 'lazy' + + height = null + maximumHeight = null + maximumHeight.@process.override = ${q(node).property('customHeight') || value} + + width = null + // The maximum page width 1096 * 2 + maximumWidth = 2192 + maximumWidth.@process.override = ${q(node).property('customWidth') || value} + + allowCropping = false + allowUpScaling = false + + link = ${q(node).property("link")} + link.@process.convertUris = Neos.Neos:ConvertUris { + forceConversion = true + absolute = true + } + + caption = Neos.Neos:Editable { + property = 'caption' + block = false + renderer.fallback { + @position = 'after editable' + condition = ${!q(node).property('caption') && q(node).property('image').caption} + renderer = ${q(node).property('image').caption} + @process.convertUris = Neos.Neos:ConvertUris + } + } + + renderer.@context.image = Neos.Fusion:Case { + default { + condition = ${props.image} + renderer = Neos.Neos:ImageTag { + asset = ${props.image} + title = ${props.title} + maximumHeight = ${props.maximumHeight} + maximumWidth = ${props.maximumWidth} + allowUpScaling = ${props.allowUpScaling} + allowCropping = ${props.allowCropping} + width = ${props.width} + height = ${props.height} + async = true + attributes.alt = ${props.alternativeText} + attributes.loading = ${props.loading} + attributes.style = Neos.Fusion:Join { + maxHeight = ${'max-height: ' + props.maximumHeight + 'px;'} + maxHeight.@if.set = ${props.maximumHeight} + } + } + } + fallback { + condition = ${!props.image && node.context.inBackend} + renderer = afx` + Dummy image + ` + } + } + + renderer = afx` +
+
+ + {image} + + {!props.link ? image : ''} +
+ +
+ ` + +}