carbon/image

Neos CMS 的图片助手

安装次数: 31,963

依赖者: 5

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 0

开放问题: 0

语言:CSS

类型:neos-carbon

4.3.0 2024-07-25 11:46 UTC

README

Latest stable version Total downloads License GitHub forks GitHub stars GitHub watchers

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.ImageCarbon.Image:Component.Presentation.Picture

输出一张图片。

集成组件

Carbon.Image:Component.ImageCarbon.Image:Component.Picture

您可以将来自 Carbon.Image:Component.Presentation.Image / Carbon.Image:Component.Presentation.Picture 的任何值传递。为了使其更简洁,这里没有列出。

助手

Carbon.Image:Helper.Link.Attributes

此原型由集成组件 Carbon.Image:Component.ImageCarbon.Image:Component.Picture 使用。

它接受如 linklightbox 和它们的选项等属性,并返回属性。如果没有设置任何内容,它将返回 false

Carbon.Image:Helper.Link.Options

此原型由集成组件 Carbon.Image:Component.ImageCarbon.Image:Component.Picture 使用。

您可以设置与 Neos.Neos:ConvertUrisNeos.Neos:NodeUri 相关的选项。

Carbon.Image:Helper.AlternativeText

此原型由集成组件 Carbon.Image:Component.ImageCarbon.Image:Component.Picture 使用。

此原型的想法是基于媒体字段返回一个替代文本。

如何实现

如果传递了 alternativeText(例如从属性中传递),则返回此值。否则,如果设置了 propertytitlecaptioncopyrightNotice),则读取资产的字段。默认情况下,属性设置为 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。如果 imageNeos\Media\Domain\Model\ImageInterface 的实例,您将获得 Sitegeist.Kaleidoscope:AssetImageSource。如果 image 是一个以 resourcepackage 开头的字符串,您将获得 Sitegeist.Kaleidoscope:ResourceImageSource。如果 image 是一个以 http 开头的字符串,您将获得 Sitegeist.Kaleidoscope:UriImageSource。否则,如果设置了 outputDummy(默认为 node.context.inBackend),您将获得 Sitegeist.Kaleidoscope:DummyImageSource

Carbon.Image:Helper.MinMaxImageSize

此原型由演示组件 Carbon.Image:Component.Presentation.ImageCarbon.Image:Component.Presentation.Picture 使用。

此原型接受一个值,并返回用于 srcset(例如 150w, 300w, 450w, 600w)的字符串。

灯箱

标记已优化以与 Jonnitto.PhotoSwipe 一起使用,但您可以使用任何您想要的灯箱。