bencarr/statamic-hyperlink

此包的最新版本(v3.0.4)没有提供许可证信息。

Hyperlink是一个Statamic插件,用于增强链接字段,它可以存储链接文本和目标选项,支持在单个字段中存储多个链接,并允许您设置可重复使用的由配置驱动的字段设置。

v3.0.4 2024-07-06 17:36 UTC

This package is auto-updated.

Last update: 2024-09-06 18:04:45 UTC


README

Hyperlink是一个Statamic插件,用于增强链接字段,它可以存储链接文本和目标选项,支持在单个字段中存储多个链接,并允许您设置可重复使用的由配置驱动的字段设置。

Hyperlink非常适合CTA、呼吁和英雄按钮,并提供了您需要的所有功能,以实现流畅的作者和开发者体验。

  • 在单个字段中包含多个链接,以简化您的蓝图并避免需要复制作图或单独的字段来存储多个链接。
  • 链接到任何内容,包括条目、URL、电子邮件地址、资产、分类术语和电话号码。
  • 多站点支持以本地化链接。
  • 灵活的模板选项,适用于AntlersBlade
  • 可重复使用的字段配置,跨蓝图使用配置驱动的配置文件

入门

安装

您可以从Statamic控制面板的工具 → 插件中找到并安装Hyperlink,或者通过项目根目录使用Composer进行安装。

composer require bencarr/statamic-hyperlink

升级指南

您可以通过重新要求包的新版本字符串从版本1.x或2.x升级到3.x。

composer require bencarr/statamic-hyperlink:^3.0

就这样!简单地安装v3后,不需要对您的内容或模板进行任何即时更改。

更新字段以支持多个链接

如果您想在现有的Hyperlink字段中利用多个链接,您可以更新字段配置以设置“最小链接数”和“最大链接数”选项。

如果您为字段配置使用配置文件,您可以在配置文件数组中调整min_itemsmax_items键。

一旦您已更新字段以支持多个链接,您的模板将需要更新以处理接收一个数组而不是单个超链接。请参阅模板部分以获取示例。

配置

通过从“关系”或“特殊”组中选择它,将Hyperlink字段添加到您的蓝图。

配置文件

配置文件允许您在多个蓝图之间重用Hyperlink配置。您可以在配置文件中设置配置文件,然后选择每个字段应使用的配置文件。未来的更改可以在配置文件配置中做出,而无需更新每个字段的设置。

自定义默认配置文件

通过发布hyperlink-config标签开始自定义配置文件。

php artisan vendor:publish --tag=hyperlink-config

您可以在config/statamic/hyperlink.php中找到已发布的配置。

添加额外的配置文件

通过向profiles数组中添加新键来提供额外的配置文件。

<?php
return [
    'profiles' => [
        'default' => [
            // ...
        ],
        'hero' => [
            // ...        
        ],
    ],
];

配置文件选项

每个配置文件可以使用以下选项进行自定义。

小贴士 — 您还可以通过调整个人资料中 types 数组的顺序来重新排列链接类型下拉菜单。例如,要使“资产”选项显示在第一位,将 types 属性设置为 ['asset', 'entry', 'url', 'email', 'term', 'tel']

字段特定设置

要绕过个人资料并为特定字段使用一次性配置,请在字段设置面板中选择“自定义”个人资料,这样在 UI 中会显示相同的 个人资料配置选项,并将设置保存到蓝图本身。

注意 — 使用“自定义”个人资料时,无法重新排列启用的链接类型。

模板

超链接与 Antlers 和 Blade 都能很好地配合工作,并内置了方便的选项,让您可以完全控制模板标记。

Antlers

在您的 Antlers 模板中,像其他字段一样引用字段值,以返回带有所有必要信息的普通超链接。例如,如果您的字段处理程序是 cta

{{ cta }}

<!-- Output -->
<a href="https://statamic.com">Rad Button Text</a>

注意 — 当勾选“在新窗口中打开?”开关时,将自动添加 target 属性。

为了获得最大的灵活性,您可以访问超链接字段的任何 可用数据

<a href="{{ cta.url }}" target="{{ cta.target }}" class="button">
    {{ svg src="{cta.type}" }}
    {{ cta.text }}
</a>

如果您的字段配置支持多个链接,请将字段值视为一个集合。例如,如果您的字段处理程序是 buttons

{{ buttons }}
    <a href="{{ url }}" target="{{ target }}">{{ text }}</a>
{{ /buttons }}

Blade

在您的 Blade 模板中,像其他字段一样引用字段值,以返回带有所有必要信息的普通超链接。例如,如果您的字段处理程序是 cta

{{ $page->cta }}

<!-- Output -->
<a href="https://statamic.com">Rad Button Text</a>

注意 — 当勾选“在新窗口中打开?”开关时,将自动添加 target 属性。

对于像添加类或属性这样的简单标记修改,您可以像 Blade 组件属性 一样链接 classattributes 方法。

{{ $page->cta->class('button')->attributes(['x-on:click' => 'doSomething' ]) }}

<!-- Output -->
<a href="https://statamic.com" class="button" x-on:click="doSomething">Rad Button Text</a>

为了获得最大的灵活性,您可以访问超链接字段的任何 可用数据

<a href="{{ $page->cta->url }}" target="{{ $page->cta->target }}" class="button">
    @svg($page->cta->type)
    {{ $page->cta->text }}
</a>

如果您的字段配置支持多个链接,请将字段值视为一个集合。例如,如果您的字段处理程序是 buttons

@foreach($page->buttons as $button)
    <a href="{{ $button->url }}" target="{{ $button->target }}">{{ $button->text }}</a>
@endforeach

可用数据

超链接字段的字段值是一个 HyperlinkData 对象,它在模板中就像一个数组一样工作。在内部,您有权访问您需要的一切,以完全自定义您的展示。

注意 — 当链接到术语时,超链接将生成一个指向 全局术语视图 的 URL。如果您想链接到特定集合中的术语,您需要使用 term 属性在模板中生成该特定集合的 URL。

默认文本值

如果没有提供自定义文本,超链接将根据所选的链接类型使用合理的默认值。

验证

通常,超链接字段只需要一个链接值。链接文本是可选的,如果没有提供自定义文本,将使用基于链接类型的默认值(有关更多信息,请参阅上面的 默认文本值)。如果超链接字段在蓝图中的是可选的,则会添加一个“无”选项到可用的链接类型中,以便作者明确留空字段(对于新条目,这是默认设置)。

特定类型的验证

一些链接类型也会进行条件验证

  • URL — 如果值不以 #./ 开头,则使用 Laravel 的 url 验证规则(因此像 #contact 这样的锚点和像 ./sub-page 这样的相对路径都可以正常工作)
  • 电子邮件 — 使用 Laravel 的 email 验证规则
  • 电话 — 使用 Laravel 的 regex 验证规则,具有广泛模式 /[\d,.+\-()]/,旨在防止大错误,同时适应 tel: 链接中允许的各种格式

模式

超链接数据以简单的 YAML 结构存储。例如,如果你的字段处理名为 cta

---
title: My Entry
cta:
  type: url
  link: 'https://statamic.com'
  text: 'Rad Button Text'
  newWindow: false
---

条目、资产和术语链接使用 ID 引用存储,因此即使相关项的 URL 发生变化,链接也能保持最新

---
title: My Entry
cta:
  type: entry
  link: 'entry::AAA111B2-3333-4444-C555-D6E7FGH8I910'
  text: 'Rad Entry Link'
  newWindow: false
---

如果你的字段配置支持多个链接,则 YAML 结构将为数组。例如,如果你的字段处理名为 buttons

---
title: My Entry
buttons:
  -
    type: entry
    link: 'entry::AAA111B2-3333-4444-C555-D6E7FGH8I910'
    text: 'Rad Entry Link'
    newWindow: false
  -
    type: url
    link: 'https://statamic.com'
    text: 'Even More Rad Link'
    newWindow: true
---

许可证

超链接是一个商业插件。

在开发过程中你可以免费使用它,但在实际网站上使用则需要许可证。了解更多信息或购买许可证,请访问 Statamic 市场place