fromholdio / silverstripe-systemlinks
A SilverStripe module that allows developers to define a static list of "system links" - login, logout, lostpassword, etc - and expose these for use in both back-end and templates.
Installs: 1 077
Dependents: 0
Suggesters: 1
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ~4.0 || ~5.0
- silverstripe/vendor-plugin: ~1.0 || ~2.0
README
A SilverStripe module that allows developers to define a static list of "system links" - login, logout, lostpassword, etc - and expose these for use in both back-end and templates.
Integrate this with functionality that already allows users to build links, like Linkable/etc, to also let users build links to these outside-of-site-tree targets.
Requirements
SilverStripe 4 or 5
Installation
composer require fromholdio/silverstripe-systemlinks
No links are setup by default - to complete the install, you need to setup your links config:
Fromholdio\SystemLinks\SystemLinks: links: login: url: /Security/login title: Login logout: url: /Security/logout title: Logout lostpassword: url: /Security/lostpassword title: Lost Password cmsadmin: url: /admin title: 'CMS Admin' someotherroute: url: /could-also-be-absolute-url title: 'Some other route'
Usage example
Documentation will be forthcoming, but also, it's just one class and pretty lean. Check the class itself to see all options at the moment.
Key uses are below:
Use to fuel values in a dropdown
DropdownField::create( 'SystemLinkKey', 'System Link', SystemLinks::get_map() );
Get link value from saved key
$key = $this->SystemLinkKey; // This returns an ArrayData object $link = SystemLinks::get_link($key); $linkTitle = $link->Title; $linkURL = $link->URL; // Alternatively, get link as simple array $linkArr = SystemLinks::get_raw_link($key); $linkTitle = $linkArr['title']; $linkURL = $linkArr['url'];
Get link for use in template .ss file
// $SystemLink is available in templates globally // It requires a link key to be supplied <h2>$SystemLink('login').URL</h2> <h2>$SystemLink('lostpassword').Title</h2>