PHPackages                             somardesignstudios/silverstripe-sft-embed - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. somardesignstudios/silverstripe-sft-embed

ActiveSilverstripe-vendormodule[File &amp; Storage](/categories/file-storage)

somardesignstudios/silverstripe-sft-embed
=========================================

Enables embedding the MSD Service Finder Tool in Silverstripe projects

1.0.2(2y ago)06362BSD-3-ClauseJavaScript

Since Sep 28Pushed 2y ago7 watchersCompare

[ Source](https://github.com/somardigital/silverstripe-sft-embed)[ Packagist](https://packagist.org/packages/somardesignstudios/silverstripe-sft-embed)[ RSS](/packages/somardesignstudios-silverstripe-sft-embed/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (4)Used By (0)

MSD Service Finder Tool Embed
=============================

[](#msd-service-finder-tool-embed)

This module facilitates the inclusion of the [Service Finder Tool](https://sft.org.nz) in a Silverstripe website.

About minified js file and its source code
==========================================

[](#about-minified-js-file-and-its-source-code)

In order to make updating the embed javascript doable, a source code file embed\_source.js is added to the code repo, and the embed.js file is re-minified and compressed by online JS minify tool from .

The embed.js is then fully tested and behave as exactly as before.

Usage
=====

[](#usage)

Include the module code with `composer require somardesignstudios/silverstripe-sft-embed`.

You can then bind buttons to the Service Finder Tool by adding the default trigger class (`.js-service-finder-tool-trigger`) to relevant elements via the template helper `$ServiceFinderToolTrigger`:

```
Open Service Finder Tool
```

The `SomarDesignStudios\ServiceFinderTool\ControllerExtension` will inject the necessary Javascript into the page when the trigger is used.

Cached content
--------------

[](#cached-content)

The normal method will not work correctly if the element is wrapped with partial caching, in which case you will need to follow the steps below to trigger the injection manually.

### Via configuration

[](#via-configuration)

To force the JavaScript to load on every page; add a configuration file `service-finder-tool.yml` with the following

```
---
Name: servicefindertool
Only:
  moduleexists: 'somardesignstudios/silverstripe-sft-embed'
---
SomarDesignStudios\ServiceFinderTool:
  always_load_script: true
```

### Via manual implementation

[](#via-manual-implementation)

If you want to attach the trigger to an element manually (for example, if the target element does not exist in the DOM during page load):

- Call `SomarDesignStudios\ServiceFinderTool\ControllerExtension::requireCoreJS()` from your controller to inject the necessary Javascript
- Bind the tool to a button element by calling `window.initServiceFinderTool('')`

If you need to open the tool from your own Javascript, you can call `window.openServiceFinderTool()` directly, and you can close it by calling `window.closeServiceFinderTool()`.

Security
--------

[](#security)

This module can allow Javascript from a third-party source, and as such should be treated with a level of caution. Theoretically, this could change at any time. As a result, a copy of the Javascript has been included in the module, which will be periodically updated when the remote script is.

By default, the module will use the baked-in version of the Javascript. To shift to using the remote version, add the following to your config:

```
SomarDesignStudios\ServiceFinderTool\ControllerExtension:
  use_remote_js: true
```

Special Thanks
==============

[](#special-thanks)

- [andrewandante/silverstripe-womens-refuge-shield](https://github.com/andrewandante/silverstripe-womens-refuge-shield) for the base module structure

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor3

3 contributors hold 50%+ of commits

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 ~284 days

Total

3

Last Release

753d ago

### Community

Maintainers

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

---

Top Contributors

[![chtombleson](https://avatars.githubusercontent.com/u/276237?v=4)](https://github.com/chtombleson "chtombleson (7 commits)")[![Cheddam](https://avatars.githubusercontent.com/u/242621?v=4)](https://github.com/Cheddam "Cheddam (4 commits)")[![normann](https://avatars.githubusercontent.com/u/556224?v=4)](https://github.com/normann "normann (3 commits)")[![scott1702](https://avatars.githubusercontent.com/u/10215604?v=4)](https://github.com/scott1702 "scott1702 (3 commits)")[![glen-ranson](https://avatars.githubusercontent.com/u/83557152?v=4)](https://github.com/glen-ranson "glen-ranson (3 commits)")[![carlsomar](https://avatars.githubusercontent.com/u/107008841?v=4)](https://github.com/carlsomar "carlsomar (2 commits)")[![edwilde](https://avatars.githubusercontent.com/u/415374?v=4)](https://github.com/edwilde "edwilde (1 commits)")[![BarryWype](https://avatars.githubusercontent.com/u/5362611?v=4)](https://github.com/BarryWype "BarryWype (1 commits)")

---

Tags

silverstripetoolservicefindermsd

### Embed Badge

![Health badge](/badges/somardesignstudios-silverstripe-sft-embed/health.svg)

```
[![Health](https://phpackages.com/badges/somardesignstudios-silverstripe-sft-embed/health.svg)](https://phpackages.com/packages/somardesignstudios-silverstripe-sft-embed)
```

###  Alternatives

[bummzack/sortablefile

An extension for SilverStripe that adds sorting to UploadField.

70622.7k55](/packages/bummzack-sortablefile)[unclecheese/silverstripe-kickassets

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

4728.3k1](/packages/unclecheese-silverstripe-kickassets)[unclecheese/dropzone

An HTML5 upload field for the CMS and frontend forms.

46130.7k6](/packages/unclecheese-dropzone)[silverstripe/s3

Adds SilverStripe support for using the S3 adapter for Flysystem

20297.0k1](/packages/silverstripe-s3)[unclecheese/kickassets

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

484.0k](/packages/unclecheese-kickassets)[axllent/silverstripe-scaled-uploads

Automatically scale down and rotate uploaded images for Silverstripe

2580.3k8](/packages/axllent-silverstripe-scaled-uploads)

PHPackages © 2026

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