flipboxfactory/craft-link

Link Field Type for Craft CMS

2.0.0 2022-09-06 18:29 UTC

This package is auto-updated.

Last update: 2024-12-07 00:59:22 UTC


README

Join the chat at https://gitter.im/flipboxfactory/craft-link Latest Version Software License Build Status Quality Score Total Downloads

Link provides a robust field type for cross-content, external and various other link types.

Screenshot

Requirements

This plugin requires Craft CMS 3.0 or later.

Installation

Choose one of the following ways to add Link to your project:

  1. Composer:

    Simply run the following command from your project root:

    composer require flipboxfactory/craft-link
    
  2. Craft CMS Plugin Store:

    Within your Craft CMS project admin panel, navigate to the 'Plugin Store' and search for 'Link'. Installation is a button click away.

Once the plugin is included in your project, navigate to the Control Panel, go to Settings → Plugins and click the “Install” button for Link.

Additional information (including pricing) can be found in the Plugin Store.

Features

Link is the most robust and configurable 'link' field type for Craft CMS. Built with the content publisher in mind, Link is has an intuitive, easy to configure interface that enables admins to build a field precisely to their requirements.

Here are some of the features at a glance:

  • Customizable labels
  • Multiple link types per field
  • Configurable settings per link-type
  • Specify element sources to restrict available elements
  • Add and link to new elements without leaving the page
  • Simple rendering with overrides
  • Build your own custom link types

Templating

The field value will either be null or an instance of Link Type Interface.

Render a pre-constructed link:

{{ element.fieldHandle.getHtml()|raw }}

Render a pre-constructed link with overrides:

{{ element.fieldHandle.getHtml({
    text: 'Text Override'
})|raw }}

Render a pre-constructed link with additional attributes:

{{ element.fieldHandle.getHtml({
    class: "bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded",
    rel: "noopener noreferrer",
    onclick: "return confirm('Are you sure?')"
})|raw }}

Build your own link:

<a href="{{ element.fieldHandle.url }}">{{ element.fieldHandle.text }}</a>

Screenshots

Screenshot

Screenshot

Screenshot

First Party Link Types

The following first party link types are supported:

  • Element: Asset
  • Element: Category
  • Element: Entry
  • Element: User
  • HTTP/HTTPS

Third Party Link Types

Including a custom link type is easy:

  1. Create a new link type class. The class must implement: flipbox\craft\link\types\TypeInterface (Ref: Link Type Interface)

    There are two abstract link types to help you get started:

  2. Register the link type class. Example:

\yii\base\Event::on(
    \flipbox\craft\link\Link::class,
    \flipbox\craft\link\Link::EVENT_REGISTER_TYPES,
    function(RegisterLinkTypes $event) {
        $event->types[] = YourLinkType::class; // Replace this with your link type class
    }
);

Credits