PHPackages                             fromholdio/silverstripe-superlinker-ctas - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fromholdio/silverstripe-superlinker-ctas

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

fromholdio/silverstripe-superlinker-ctas
========================================

A SilverStripe module providing basic Button/Call-to-Action data objects built using the Superlinker foundation

4.0.0(1w ago)084611BSD-3-ClausePHP

Since Jun 27Pushed 1w ago1 watchersCompare

[ Source](https://github.com/fromholdio/silverstripe-superlinker-ctas)[ Packagist](https://packagist.org/packages/fromholdio/silverstripe-superlinker-ctas)[ Docs](https://github.com/fromholdio/silverstripe-superlinker-ctas)[ RSS](/packages/fromholdio-silverstripe-superlinker-ctas/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (3)Dependencies (2)Versions (11)Used By (1)

SilverStripe SuperLinker CTAs
=============================

[](#silverstripe-superlinker-ctas)

Call-to-Action / Button DataObjects built on SuperLinker foundation.

Status
------

[](#status)

**Note**: This module has been superseded by SuperLinker v3+. For new projects, it's recommended to create custom SuperLink subclasses as needed rather than using this module.

This module remains available for existing sites that depend on it.

Overview
--------

[](#overview)

Provides a `CTA` class that extends `SuperLink` with pre-configured defaults suitable for call-to-action buttons and promotional links.

Requirements
------------

[](#requirements)

- SilverStripe Framework ^6.0
- fromholdio/silverstripe-superlinker ^4.0.0

Installation
------------

[](#installation)

```
composer require fromholdio/silverstripe-superlinker-ctas
```

Usage
-----

[](#usage)

### Basic Usage

[](#basic-usage)

```
use Fromholdio\SuperLinkerCTAs\Model\CTA;

class HomePage extends Page
{
    private static $has_one = [
        'PrimaryCTA' => CTA::class,
        'SecondaryCTA' => CTA::class
    ];

    private static $owns = [
        'PrimaryCTA',
        'SecondaryCTA'
    ];
}
```

### CMS Fields

[](#cms-fields)

```
use Fromholdio\HasOneEdit\HasOneMiniGridField;

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

    $fields->addFieldsToTab('Root.Main', [
        HasOneMiniGridField::create('PrimaryCTA', 'Primary CTA', $this),
        HasOneMiniGridField::create('SecondaryCTA', 'Secondary CTA', $this)
    ]);

    return $fields;
}
```

### Templates

[](#templates)

```

        $PrimaryCTA.Title

        $SecondaryCTA.Title

```

Alternative for New Projects
----------------------------

[](#alternative-for-new-projects)

Instead of using this module, create your own CTA class:

```
namespace App\Model;

use Fromholdio\SuperLinker\Model\SuperLink;

class CTA extends SuperLink
{
    private static $table_name = 'App_CTA';

    private static $singular_name = 'Call to Action';
    private static $plural_name = 'Calls to Action';

    // Add any custom fields or methods here
}
```

This gives you full control over the CTA implementation without an extra dependency.

Documentation
-------------

[](#documentation)

For complete SuperLinker documentation, see:

- [SuperLinker README](../silverstripe-superlinker/README.md)
- [SuperLinker Technical Guide](../silverstripe-superlinker/augment.md)

License
-------

[](#license)

BSD-3-Clause

Support
-------

[](#support)

- **GitHub**:
- **Issues**:

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance98

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 83.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~312 days

Recently: every ~268 days

Total

9

Last Release

11d ago

Major Versions

1.0.1 → 2.0.02019-08-21

2.x-dev → 3.0.02024-01-07

3.x-dev → 4.0.02026-05-02

### Community

Maintainers

![](https://www.gravatar.com/avatar/40e135ad117686bee39707c1d9286cc5e915e219c26a10d13858ca44d14f1eb0?d=identicon)[dizzystuff](/maintainers/dizzystuff)

---

Top Contributors

[![dizzystuff](https://avatars.githubusercontent.com/u/576903?v=4)](https://github.com/dizzystuff "dizzystuff (15 commits)")[![xini](https://avatars.githubusercontent.com/u/1152403?v=4)](https://github.com/xini "xini (3 commits)")

---

Tags

linksilverstripebuttoncall to actionCTAsuperlinker

### Embed Badge

![Health badge](/badges/fromholdio-silverstripe-superlinker-ctas/health.svg)

```
[![Health](https://phpackages.com/badges/fromholdio-silverstripe-superlinker-ctas/health.svg)](https://phpackages.com/packages/fromholdio-silverstripe-superlinker-ctas)
```

###  Alternatives

[sheadawson/silverstripe-linkable

A couple of handy form fields and objects for managing external and internal links on DataObjects

39316.2k24](/packages/sheadawson-silverstripe-linkable)[unisolutions/silverstripe-copybutton

Adds copy button to the GridField.

1736.4k](/packages/unisolutions-silverstripe-copybutton)[burnbright/silverstripe-externalurlfield

Provides SilverStripe with a DBField and FormField for handling external URLs.

109.6k1](/packages/burnbright-silverstripe-externalurlfield)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
