PHPackages                             briceburg/silverstripe-flexiaddress - 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. briceburg/silverstripe-flexiaddress

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

briceburg/silverstripe-flexiaddress
===================================

Add microdata friendly addresses and phone numbers to your SilverStripe objects.

0.2.0(10y ago)3402[4 PRs](https://github.com/briceburg/silverstripe-flexiaddress/pulls)BSD-3-ClausePHP

Since Dec 2Pushed 10y agoCompare

[ Source](https://github.com/briceburg/silverstripe-flexiaddress)[ Packagist](https://packagist.org/packages/briceburg/silverstripe-flexiaddress)[ Docs](https://github.com/briceburg/silverstripe-flexiaddress)[ RSS](/packages/briceburg-silverstripe-flexiaddress/feed)WikiDiscussions master Synced 1mo ago

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

silverstripe-flexiaddress
=========================

[](#silverstripe-flexiaddress)

Add microdata friendly addresses and phone numbers to your SilverStripe objects.

Features
--------

[](#features)

- schema.org microdata templating
- extend any DataObject
- reduces administrative repetitiveness and improves consistency through **many\_many** relationships
- extensible through [YAML Configuration](http://doc.silverstripe.org/framework/en/topics/configuration) and subclassing

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

[](#requirements)

The venerable GridFieldExtensions

Tested in SilverStripe 3.1

Screenshots
-----------

[](#screenshots)

[![editing](https://github.com/briceburg/silverstripe-flexiaddress/raw/master/docs/screenshots/flexiaddress_1.jpg?raw=true)](https://github.com/briceburg/silverstripe-flexiaddress/blob/master/docs/screenshots/flexiaddress_1.jpg?raw=true)

[![list](https://github.com/briceburg/silverstripe-flexiaddress/raw/master/docs/screenshots/flexiaddress_2.jpg?raw=true)](https://github.com/briceburg/silverstripe-flexiaddress/blob/master/docs/screenshots/flexiaddress_2.jpg?raw=true)

Usage
=====

[](#usage)

- Add address and phone numbers to your Objects by extending them with `FlexiAddressExtension`.

```
class Office extends Page
{

    private static $extensions = array(
        'FlexiAddressExtension'
    );

}
```

- Trigger the environment builder (/dev/build) after extending your objects -- You will now see the Address tab when editing Office in the CMS.

### Front-end

[](#front-end)

FlexiAddress provides a shortcut to return the *first address* associated. Here's an example Office.ss

```
```html

  $Title

  ...

  $FlexiAddress

  ...

```

You can also loop through addresses. Here's an example Office.ss

```

  $Title

  ...

    Address

      Get Directions

  ...

```

You may, as always, override the [built-in templates](https://github.com/briceburg/silverstripe-flexiaddress/tree/master/templates) by adding them to your theme and changing markup as needed.

### Limiting Fields

[](#limiting-fields)

You may find the built-in address fields a bit too much. Here's a few strategies to limit them;

- Strategy 1: Globally via mysite/config/config.yml

```
---

FlexiAddressExtension:
  flexiaddress_fields:
    - StreetLine1
    - City
    - PhoneNumbers
```

- Strategy 2: Via the **$flexiaddress\_fields** property on extended classes

```
class Office extends Page
{

    protected static $flexiaddress_fields = array(
        'StreetLine1',
        'City',
        'PhoneNumbers'
    );
}
```

- Strategy 3: Via [YAML Configuration](http://doc.silverstripe.org/framework/en/topics/configuration) of extended classes

```
---

Office:
  flexiaddress_fields:
    - StreetLine1
    - City
    - PhoneNumbers
```

### Changing the Address Tab Name

[](#changing-the-address-tab-name)

By default, flexiaddress adds its GridField to the *Root.Address* tab. You can configure this in a couple of ways;

- Strategy 1: Via [YAML Configuration](http://doc.silverstripe.org/framework/en/topics/configuration)

```
---

# Global Change
FlexiAddressExtension:
  flexiaddress_tab: Root.Addresses

# Class Specific
Office:
  flexiaddress_tab: Root.Main
  flexiaddress_insertBefore: Content
```

- Strategy 2: Through your extended class

```
class Office extends Page
{

    // Option 1 - properties
    ////////////////////////

    protected static $flexiaddress_tab = 'Root.Main';
    protected static $flexiaddress_insertBefore = 'Content';

    // Option 2 - via Config::inst()->update
    ////////////////////////////////////////

    public function getCMSFields()
    {
        $this->set_stat('flexiaddress_tab', 'Root.Addresses');
        return parent::getCMSFields();
    }

}
```

### Changing the Add New GridField Button

[](#changing-the-add-new-gridfield-button)

If you don't like "Create New Address", follow the *Changing the Address Tab Name*procecedure, but alter the **flexiaddress\_addButton** propperty.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.1% 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 ~225 days

Total

2

Last Release

3954d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d264d36db9f51187a6bd5f2a1551d9b84cd1cfcf9d3ad6c96315dd10fb4719a4?d=identicon)[briceburg](/maintainers/briceburg)

---

Top Contributors

[![briceburg](https://avatars.githubusercontent.com/u/490144?v=4)](https://github.com/briceburg "briceburg (16 commits)")[![micschk](https://avatars.githubusercontent.com/u/1005986?v=4)](https://github.com/micschk "micschk (1 commits)")

---

Tags

addresssilverstripephonecmscontactmanagegridfieldflexiphone-numbers

### Embed Badge

![Health badge](/badges/briceburg-silverstripe-flexiaddress/health.svg)

```
[![Health](https://phpackages.com/badges/briceburg-silverstripe-flexiaddress/health.svg)](https://phpackages.com/packages/briceburg-silverstripe-flexiaddress)
```

###  Alternatives

[briceburg/silverstripe-pickerfield

GridField based management of has\_one , has\_many , and many\_many relationship selection

2541.2k1](/packages/briceburg-silverstripe-pickerfield)

PHPackages © 2026

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