silverstripe/linkfield

Add advanced link functionality to Silverstripe.

Installs: 4 685

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 9

Forks: 2

Open Issues: 34

Type:silverstripe-vendormodule

1.1.0 2021-11-16 01:39 UTC

README

Experimental module looking at how we could implement a link field and a link data object.

Installation

Installation via composer.

Stable version (GraphQL v3)

composer require silverstripe/linkfield 1.x-dev

Experimental version (GraphQL v4)

composer require silverstripe/linkfield 2.x-dev

Known issues

You may need to add the repository URL into your composer.json via the repositories field (example below).

"repositories": {
  "silverstripe/linkfield": {
    "type": "git",
    "url": "https://github.com/silverstripe/silverstripe-linkfield.git"
  }
},

Sample usage

<?php
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Link\DBLink;
use SilverStripe\Link\Link;
use SilverStripe\Link\LinkField;

class Page extends SiteTree
{
    private static $db = [
        'DbLink' => DBLink::class
    ];

    private static $has_one = [
        'HasOneLink' => Link::class,
    ];

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        $fields->insertBefore('Title', LinkField::create('HasOneLink'));
        $fields->insertBefore('Title', LinkField::create('DbLink'));

        return $fields;
    }
}