vaersaagod/linkmate

让我们帮你连接,朋友!

安装次数: 1,330

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 5

分支: 1

开放性问题: 1

类型:craft-plugin

3.0.0-beta.2 2024-08-29 08:42 UTC

README

让我们帮你连接,朋友!

Screenshot

这是一个Craft CMS的链接字段,由Sebastian Lenz的出色Typed Link Field(v1)分支而来。它为Værsågod及其朋友设计——不提供任何支持。你可能应该使用原始版本。

要求

此插件需要Craft CMS 4.0.0或更高版本。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require vaersaagod/linkmate
    
  3. 在控制面板中,转到设置 → 插件,并点击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') }}

您也可以传递一个属性数组。在这种情况下,您可以覆盖默认的hreftarget属性。特殊属性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的描述对象。查看捆绑的链接类型ElementLinkTypeInputLinkType以了解如何编写自己的链接类型定义。