bigfork / silverstripe-linkset
Silverstripe模块,允许轻松将链接添加到CMS
2.0.0
2023-08-18 08:24 UTC
Requires
- php: >=8.1
- bigfork/silverstripe-formtacular: ^0
- silverstripe/framework: ^5
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-18 10:37:45 UTC
README
向CMS添加易于实现的链接选项
功能
- 从以下选项中选择:无、页面、文件、URL
- 可选择移除不适用于您实现的应用字段
- 可以直接输出链接到模板
安装
$ composer require bigfork/silverstripe-linkset
如何使用
您需要在数据对象上创建一个$has_one关系
private static array $has_one = [
'ButtonLink' => LinkSet::class,
];
然后添加LinksetField到您的字段列表
$fields->addFieldsToTab(
'Root.Main',
[
...otherFields,
LinksetField::create($this, 'ButtonLink'),
...otherFields,
]
);
LinkSetField构造函数接受五个参数
- DataObject $data - 该关系所在的对象 $this
- string $name - 字段名称应与关系键匹配
- ?string $title (可选) - 字段标题,将在字段上方设置标题
- array $fieldsToRemove (可选) - 要从字段列表中移除标题,请传入数组,例如['Title']。可能的移除选项有
- 标题
- 链接类型
- 链接URL
- 链接目标
- 链接页面ID
- 链接文件
- array $typesToRemove (可选) - 从单选框中移除链接类型,要移除“无”选项,请传入数组,例如['None']。可能的移除选项有
- 无
- 页面
- 文件
- URL
使用所有参数,您的代码可能看起来像
$fields->addFieldsToTab(
'Root.Main',
[
...otherFields,
LinksetField::create($this, 'ButtonLink', 'Button link', ['Title'], ['None']),
...otherFields,
]
);
在模板中使用
您可以通过调用关系在模板中输出链接
{$ButtonLink.AddExtraClass('button button--primary')}
这将输出一个简单的锚标签,包含在LinkSetField组中设置的 所有字段。
可以通过访问字段来执行自定义锚点,就像通过关系一样
<% with $ButtonLink %>
<a
href="{$Link}
class="button"
<% if $LinkTarget %> target="{$LinkTarget}"<% end_if %>
<% if $LinkType = 'File' %> download<% end_if %>
>
{$Title}
</a>
<% end_with %>