carbon / image
Neos CMS 的图片助手
Requires
- carbon/eel: ^2.0 || dev-master
- carbon/notification: ^2.1
- neos/neos: ^8.3
- sitegeist/kaleidoscope: ^6.7
Suggests
- jonnitto/photoswipe: PhotoSwipe for Neos CMS
- dev-master
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.0
- v3.x-dev
- 3.5.0
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- v2.x-dev
- 2.3.0
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- v1.x-dev
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- dev-feature/next
This package is auto-updated.
Last update: 2024-08-25 11:56:27 UTC
README
Neos CMS 的 Carbon.Image 包
本包提供了一些基于 Sitegeist.Kaleidoscope 的图片融合助手;您需要自己创建节点类型。这里是一个实现的示例: Jonnitto.ImagesInARow
安装
大多数情况下,您需要对包进行一些小的调整(例如 Settings.yaml 中的配置)。因此,将相应的包添加到您的主题包的 composer 中非常重要。这通常是位于 Packages/Sites/
下的网站包。要正确安装,请转到您的主题包(例如 Packages/Sites/Foo.Bar
),并运行以下命令
composer require carbon/image --no-update
--no-update
命令防止依赖项自动更新。在将包添加到您的主题 composer.json
后,返回 Neos 安装根目录并运行 composer update
。就这样!您想要的包现在已正确安装。
抽象节点类型
以下是在您的项目中可以使用哪些抽象节点类型(也称为混入)的列表
Fusion
表示性组件
Carbon.Image:Component.Presentation.Image
和 Carbon.Image:Component.Presentation.Picture
输出一张图片。
集成组件
Carbon.Image:Component.Image
和 Carbon.Image:Component.Picture
您可以将来自 Carbon.Image:Component.Presentation.Image
/ Carbon.Image:Component.Presentation.Picture
的任何值传递。为了使其更简洁,这里没有列出。
助手
Carbon.Image:Helper.Link.Attributes
此原型由集成组件
Carbon.Image:Component.Image
和Carbon.Image:Component.Picture
使用。
它接受如 link
、lightbox
和它们的选项等属性,并返回属性。如果没有设置任何内容,它将返回 false
。
Carbon.Image:Helper.Link.Options
此原型由集成组件
Carbon.Image:Component.Image
和Carbon.Image:Component.Picture
使用。
您可以设置与 Neos.Neos:ConvertUris
和 Neos.Neos:NodeUri
相关的选项。
Carbon.Image:Helper.AlternativeText
此原型由集成组件
Carbon.Image:Component.Image
和Carbon.Image:Component.Picture
使用。
此原型的想法是基于媒体字段返回一个替代文本。
如何实现
如果传递了 alternativeText
(例如从属性中传递),则返回此值。否则,如果设置了 property
(title
、caption
或 copyrightNotice
),则读取资产的字段。默认情况下,属性设置为 caption
(基于设置 Carbon.Image.alternativeText.property
),但您可以通过自己的 Settings.yaml
或通过 Fusion 来覆盖它。
prototype(Carbon.Image:Helper.AlternativeText) { property = 'title' }
但这对于网站上的多语言来说非常重要。这正是 languageMapping
选项的用武之地。使用此选项,您可以根据设置 Carbon.Image.alternativeText.splitCharacter
(默认为 ||
)将字符串拆分为所需的语言。启用此选项的最简单方法是在您的 Settings.yaml
中设置配置 Carbon.Image.alternativeText.languageMapping
,如下所示:
Carbon: Image: alternativeText: languageMapping: en: 0 de: 1 fr: 2
但当然,您也可以通过 Fusion 来设置此选项。
prototype(Carbon.Image:Helper.AlternativeText) { languageMapping = Neos.Fusion:DataStructure { en = 0 de = 1 fr = 2 } }
使用此类设置,您可以在媒体字段中这样写入替代文本:A cat || Eine Katze || Un chat
要覆盖媒体字段中的标签,您可以在您的翻译文件夹中添加一个名为 MediaBrowser.xlf
的文件。
<?xml version="1.0" encoding="UTF-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <file original="Main" product-name="Neos.Media.Browser" source-language="en" datatype="plaintext" target-language="de"> <body> <trans-unit id="field.caption" xml:space="preserve" approved="yes"> <source>Caption ( English || German || French)</source> <target state="final">Beschriftung (Englisch || Deutsch || Französisch)</target> </trans-unit> </body> </file> </xliff>
您可以通过设置属性 language
来覆盖当前语言。否则,将使用当前维度的 language
。
字符串始终会被修剪,并且所有标签都会被移除。如果没有提取到替代文本,Fusion 将返回 false
。
Carbon.Image:Helper.ImageSource
使用此助手,您可以传递任何值(带有属性 image
),您将获得 Kaleidoscope 的相应图像源。
如果设置了 forceDummy
(默认为 Configuration.Setting('Carbon.Image.dummy.force')
),您将获得 Sitegeist.Kaleidoscope:DummyImageSource
。如果 image
是 Neos\Media\Domain\Model\ImageInterface
的实例,您将获得 Sitegeist.Kaleidoscope:AssetImageSource
。如果 image
是一个以 resource
或 package
开头的字符串,您将获得 Sitegeist.Kaleidoscope:ResourceImageSource
。如果 image
是一个以 http
开头的字符串,您将获得 Sitegeist.Kaleidoscope:UriImageSource
。否则,如果设置了 outputDummy
(默认为 node.context.inBackend
),您将获得 Sitegeist.Kaleidoscope:DummyImageSource
。
Carbon.Image:Helper.MinMaxImageSize
此原型由演示组件
Carbon.Image:Component.Presentation.Image
和Carbon.Image:Component.Presentation.Picture
使用。
此原型接受一个值,并返回用于 srcset
(例如 150w, 300w, 450w, 600w
)的字符串。
灯箱
标记已优化以与 Jonnitto.PhotoSwipe 一起使用,但您可以使用任何您想要的灯箱。