statikbe / craft-cta-field
Call to action & link fields made easy
Installs: 9 398
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 9
Forks: 1
Open Issues: 4
Type:craft-plugin
Requires
- craftcms/cms: ^4.0.0-beta.1
This package is auto-updated.
Last update: 2024-11-08 14:13:05 UTC
README
Requirements
This plugin requires Craft CMS 3.0.0 or later.
Installation
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require statikbe/craft-cta-field
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for Link Field.
Templating
Link fields on your models will return an instance of cta\models\Link
. Rendering a link
field directly within a template will return the url the field is pointing to.
<a href="{{ item.myLinkField }}">Link</a>
You can use the following accessors to get the different properties of the link:
{{ item.myLinkField.getElement() }}
{{ item.myLinkField.getTarget() }}
{{ item.myLinkField.getText() }}
{{ item.myLinkField.getUrl() }}
{{ item.myLinkField.hasElement() }}
{{ item.myLinkField.isEmpty() }}
Use the getLink
utility function to render a full html link:
{{ item.myLinkField.getLink() }}
You can pass the desired content of the link as a string, e.g.
{{ entry.linkField.getLink('Imprint') }}
You may also pass an array of attributes. When doing this you can override
the default attributes href
and target
. The special attribute text
will be used as the link content.
{{ entry.linkField.getLink({
class: 'my-link-class',
target: '_blank',
text: 'Imprint',
}) }}
To get the CTA as a span (eg to use in clickable blocks), you can use the getSpan()
function.
{{ entry.linkField.getSpan({
class: 'my-link-class',
text: 'Imprint',
}) }}
Configuration
Custom classes
Add custum classes to the dropdown menu.
- Add cta.php to /config
- Declare your classes:
<?php
return [
'classes' => [
'btn' => 'Primary',
'btn btn--secondary' => 'Secondary'
]
];
Linking between sites
By default, linking to entries from another site is not enabled. To make this work, you can use this config setting:
<?php
return [
'crossSiteLinking' => true
];
Credits
Heavily inspired by sebastian-lenz/craft-linkfield.