https://github.com/statikbe/craft-ctafield
Fieldtype that combines custom links, entries & classes
https://github.com/statikbe/craft-ctafield
craft-plugin craft3 craftcms
Last synced: about 1 year ago
JSON representation
Fieldtype that combines custom links, entries & classes
- Host: GitHub
- URL: https://github.com/statikbe/craft-ctafield
- Owner: statikbe
- License: mit
- Created: 2018-07-26T12:06:44.000Z (almost 8 years ago)
- Default Branch: develop
- Last Pushed: 2025-01-03T08:53:15.000Z (over 1 year ago)
- Last Synced: 2025-02-27T19:13:02.597Z (over 1 year ago)
- Topics: craft-plugin, craft3, craftcms
- Language: PHP
- Size: 157 KB
- Stars: 0
- Watchers: 9
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# CTA field plugin for Craft
## Requirements
This plugin requires Craft CMS 3.0.0 or later.
## Migrating to [verbb/hyper](https://github.com/verbb/hyper)
In an effort to phase out the usage of this plugin, we've added 2 console commands to migration the fields and their content to [Hyper](https://github.com/verbb/hyper).
These are the steps you should follow:
- Install hyper
``ddev composer require "verbb/hyper" -w && ddev exec php craft plugin/install hyper``
- Install Config Values Field
``ddev composer require "statikbe/craft-config-values" -w && ddev exec php craft plugin/install config-values-field``
- Resave and check your supertable tables (visit `/admin/super-table/settings` and click both buttons)
> [!Caution]
> If supertable is missing tables/columns, or entire fields are marked as missing - please fix that first before proceeding.
- Migrate field settings.
``ddev craft cta/migrate/statik-cta-field``
This will transform all your CTA fields to Hyper fields and update their project config files.
- Migratie field content.
``ddev craft cta/migrate/statik-cta-content``
You'll have to run this on each environment, but only **after** you ran the fields command or you deployed the changes.
## Installation
To install the plugin, follow these instructions.
1. Open your terminal and go to your Craft project:
cd /path/to/project
2. Then tell Composer to load the plugin:
composer require statikbe/craft-cta-field
3. 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.
```
Link
```
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.
1. Add cta.php to /config
2. Declare your 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:
```
true
];
```
## Credits
Heavily inspired by [sebastian-lenz/craft-linkfield](https://github.com/sebastian-lenz/craft-linkfield/blob/master/README.md).