cyber-duck/silverstripe-linkitemfield

SilverStripe 4自定义表单元素,用于锚点、电子邮件、电话、文件、图像、内部和外部链接

安装次数: 38,042

依赖项: 0

建议者: 0

安全性: 0

星标: 4

关注者: 5

分支: 12

类型:silverstripe-vendormodule

5.1 2023-11-20 10:58 UTC

This package is auto-updated.

Last update: 2024-09-20 13:23:23 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

作者: Andrew Mc Cormack

功能

提供具有以下选项的 has_one 链接对象

  • 锚点链接
  • 内部链接
  • 外部链接
  • 电子邮件
  • 电话
  • 文件
  • 图像
  • 链接目标 (_blank 等)

屏幕截图

安装

将以下内容添加到您的 composer.json 文件中,并运行 /dev/buid?flush=all

{  
    "require": {  
        "cyber-duck/silverstripe-linkitemfield": "4.1.*"
    }
}

设置

字段引用 DataObject 上的 has_one LinkItem 关系。请确保在您的类中包含字段和对象命名空间。

use CyberDuck\LinkItemField\Forms\LinkItemField;
use CyberDuck\LinkItemField\Model\LinkItem;
use SilverStripe\ORM\DataObject;

class MyObject extends DataObject 
{
    private static has_one = [
        'MyRelation' => LinkItem::class
    ];
}

可以通过 getCMSFields() / updateCMSFields() 或类似方法轻松将字段添加到 DataObject / 扩展。

$fields->addFieldToTab('Root.Main', LinkItemField::create('MyRelationID', 'My Relation Title'));

该关系将在模板中公开 3 个属性 - 链接、标题和目标。

<% with MyRelation %>
<a href="$Link" target="$Target">$Title</a>
<% end_with %>

调用 Link 时,输出 URL 的格式将取决于链接类型

<a href="#{TheURL}">For Anchor</a>
<a href="{TheURL}">For Internal</a>
<a href="{TheURL}">For External</a>
<a href="mailto:{TheURL}">For Email</a>
<a href="tel:+{TheURL}">For Telephone</a>
<a href="{TheURL}">For File</a>
<a href="{TheURL}">For Image</a>

待办事项

  • 添加 React