vaersaagod / linkmate
让我们帮你连接,朋友!
3.0.0-beta.2
2024-08-29 08:42 UTC
Requires
- php: ^8.2.0
- craftcms/cms: ^5.3.0
README
让我们帮你连接,朋友!
这是一个Craft CMS的链接字段,由Sebastian Lenz的出色Typed Link Field(v1)分支而来。它为Værsågod及其朋友设计——不提供任何支持。你可能应该使用原始版本。
要求
此插件需要Craft CMS 4.0.0或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require vaersaagod/linkmate
-
在控制面板中,转到设置 → 插件,并点击LinkMate的“安装”按钮。
模板化
您的模型上的链接字段将返回一个vaersaagod\linkmate\models\Link
的实例。在模板中直接渲染链接字段将返回字段指向的url。
<a href="{{ item.myLinkField }}">Link</a>
您可以使用以下访问器来获取链接的不同属性
{{ item.myLinkField.getElement() }}
{{ item.myLinkField.getLinkAttributes() }}
{{ item.myLinkField.getTarget() }}
{{ item.myLinkField.getText() }}
{{ item.myLinkField.getUrl() }}
{{ item.myLinkField.hasElement() }}
{{ item.myLinkField.isEmpty() }}
{{ item.myLinkField.getCustomText() }}
使用getLink
实用函数来渲染完整的HTML链接
{{ item.myLinkField.getLink() }}
您可以传递链接的期望内容作为字符串,例如
{{ entry.linkField.getLink('Imprint') }}
您也可以传递一个属性数组。在这种情况下,您可以覆盖默认的href
和target
属性。特殊属性text
将用作链接内容。
{{ entry.linkField.getLink({
class: 'my-link-class',
target: '_blank',
text: 'Imprint',
}) }}
您还可以通过简单地消费由链接模型上的getLinkAttributes
暴露的链接属性来快速创建自己的标记。此方法接受一个额外的参数,允许您将附加属性作为关联数组注入。
<a {{ entry.linkField.getLinkAttributes() }}>
<span>Custom markup</span>
</a>
API
您可以通过监听插件的EVENT_REGISTER_LINK_TYPES
事件来注册其他链接类型。如果您只想添加另一个元素类型,您可以在您的模块中这样做
use craft\commerce\elements\Product; use vaersaagod\linkmate\LinkMate as LinkPlugin; use vaersaagod\linkmate\events\LinkTypeEvent; use vaersaagod\linkmate\models\ElementLinkType; use yii\base\Event; /** * Custom module class. */ class Module extends \yii\base\Module { public function init() { parent::init(); Event::on( LinkPlugin::class, LinkPlugin::EVENT_REGISTER_LINK_TYPES, function(LinkTypeEvent $event) { $event->linkTypes['product'] = new ElementLinkType(Product::class); } ); } }
每个链接类型都必须有一个唯一的名称和一个实现vaersaagod\linkmate\modles\LinkTypeInterface
的描述对象。查看捆绑的链接类型ElementLinkType
和InputLinkType
以了解如何编写自己的链接类型定义。