cyber-duck / silverstripe-linkitemfield
SilverStripe 4自定义表单元素,用于锚点、电子邮件、电话、文件、图像、内部和外部链接
5.1
2023-11-20 10:58 UTC
Requires
This package is auto-updated.
Last update: 2024-09-20 13:23:23 UTC
README
功能
提供具有以下选项的 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