pstaender/kirby-uri-field

Kirby 3 uri字段,也可以分配给页面或文件。

安装: 994

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 4

分支: 0

开放问题: 0

类型:kirby-plugin

v0.0.3 2022-07-26 11:57 UTC

This package is auto-updated.

Last update: 2024-08-26 16:46:14 UTC


README

Kirby 3 字段,用于各种类型的链接 - 外部链接、页面、文件、电子邮件、电话。具有文本、弹出(true/false)和hash的设置。原始插件是这个,由Thomas Günther创建。

插件使用Kirby的页面、文件、url、电子邮件和tel原生字段。

usage demo

如果在一个结构字段中使用,链接字段将获得一个漂亮的预览。页面和文件的链接将获得原生的页面/文件预览。

links in structure field

安装

使用Composer

composer require oblik/kirby-link-field

...或者查看其他插件安装方法

蓝图

添加一个字段并将其类型设置为link

fields:
  myfield:
    type: link
    label: Link

要定义你想要的链接类型,请使用options。可能的值有urlpagefileemailtel

fields:
  myfield:
    type: link
    label: Link
    options:
      - page
      - url

默认情况下,你也可以指定链接文本、弹出(true/false)和hash。你可以通过使用settings值禁用这些选项或更改它们的显示方式。

fields:
  myfield:
    type: link
    label: Link
    settings:
      popup:
        width: 1/3
        label: External Link
        help: Open link in a new tab?
      text:
        width: 2/3
      hash: false

要完全禁用设置,请设置

settings: false

你也可以全局应用此类设置

config/config.php

return [
    'oblik.linkField' => [
        'options' => [
            'url',
            'page'
        ],
        'settings' => [
            'popup' => [
                'label' => 'External Link'
            ]
        ]
    ]
];

...

return [
    'oblik.linkField.settings' => false
];

页面/文件设置

你可以为页面/文件字段指定设置。例如

fields:
  myfield:
    type: link
    pages:
      query: page.siblings
      image:
        cover: true
    files:
      query: site.files
      text: '{{ file.id }}'

用法

要渲染链接,请使用提供的toLinkObject()方法。它返回Link类的实例。

假设你有一个以下值的字段

Myfield: 

type: page
value: home
text: My Text
popup: true
hash: heading-1
$link = $page->myfield()->toLinkObject();

$link->url()

返回包括hash的链接URL

http://localhost/home#heading-1

注意:对于emailtel链接,值是null,因为它们不是实际的链接。

$link->href()

返回链接href

http://localhost/home#heading-1

如果链接类型是emailtel,则相应地具有mailto:tel:

注意:当你尝试将类转换为字符串时,会自动调用此方法,这意味着

echo $page->myfield()->toLinkObject();

...等同于

echo $page->myfield()->toLinkObject()->href();

$link->attr([$attributes])

返回链接属性,与可选的$attributes合并

href="http://localhost/home#heading-1" rel="noopener noreferrer" target="_blank"

$link->tag([$attributes])

返回一个包含可选的$attributes合并的完整<a>标签

<a href="http://localhost/home#heading-1" rel="noopener noreferrer" target="_blank">My Text</a>

$link->title()

返回链接文本、页面标题、文件标题、文件名或最终值。用于为tag()方法生成链接文本。

检索属性

你可以通过调用它们作为方法来获取链接的属性

echo $link->type();     // page
echo $link->value();    // home
echo $link->text();     // My Text
echo $link->popup();    // true
echo $link->hash();     // heading-1

从URL字段迁移

如果你之前使用过URL字段

fields:
  myfield:
    type: url

...你可以简单地将它更改为

fields:
  myfield:
    type: link

...并且它将工作。此外,toLinkObject()方法可以处理TXT文件中的两种链接格式。如果你有

Myfield: https://example.com

...

Myfield:

type: url
value: https://example.com