Skip to content

Silverstripe admin panel for managing Google APIs like Places/Reviews, as well as scripts and schema

License

Notifications You must be signed in to change notification settings

Iliain/silverstripe-google-config

Repository files navigation

Silverstripe Google Config

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Provides an admin interface separate from the Settings panel that lets users manage things like their GTM scripts, schema, reviews, etc.

Installation (with composer)

composer require iliain/silverstripe-google-config

Config

Enable/disable specific tabs in the CMS by adding the following yaml config:

---
Name: myproject-google-config
After: 'google-config'
---
Iliain\GoogleConfig\Models\GoogleConfig:
  enabled_panels:
    GTM: true
    Schema: true
    Places: false # setting to false will hide the tab

Depending on which APIs you're using, you may need to include environment variables for your keys, like so:

GOOGLE_MAPS_API_KEY="xxxxxxxxxxxxxxxxxxxxx"

Currently this module uses the following APIs:

  • Google Places

Permissions

You'll need to be either an Administrator, or have the CMS_ACCESS_GoogleConfig permission to access and edit the Google Config section in the CMS.

Usage

You can call data from the Google settings on the frontend via $GoogleConfig, like so:

{$GoogleConfig.SchemaCode.RAW}

{$GoogleConfig.HeadScripts.RAW}

<% with $GoogleConfig %>
    <% if $Places %>
        <% loop $Places %>
            ...
        <% end_loop>
    <% end_if %>
<% end_with %>

GTM Scripts

You can render the GTM scripts in your template with the following:

  • $HeadScripts.RAW
  • $BodyStartScripts.RAW
  • $BodyEndScripts.RAW

Schema

You can configure the global schema data in the CMS, and render it in your template with $GoogleConfig.SchemaCode.RAW.

When editing the schema, you have the option to add Objects and/or Properties. Properties are single name/value pairs, while Objects can contain multiple Properties (good for addresses, etc.).

A tab named Output will display the expected output of your configured schema.

Places

Setting up a Place in the CMS, with an example of the Review data

Example of setting up a Place

With a selected Place, you can render the badge and feed in your template with $ReviewBadge and $ReviewsList respectively.

TODO

  • Fix the issue of the CMS needing to be reloaded for the map to appear when going back and viewing another map
  • Add more APIs
  • Update CSS to properly render as-is on the frontend (like a widget)
  • Page specific schema?