1.0.3releasedField: Entry Relationship

A new way to create master-details (parent -> children) relationships with Symphony's sections.

Clone URLhttps://github.com/DeuxHuitHuit/entry_relationship_field.git

Add as a submodulegit submodule add https://github.com/DeuxHuitHuit/entry_relationship_field.git extensions/entry_relationship_field --recursive


NoNoNoNoNo1. Soon?


Entry Relationship Field Scrutinizer Code Quality

Version: 1.0.x

A new way to create master-details (parent -> children) relationships with Symphony's sections.


  • Supports multiple sections for the same relationship.
  • Offers developers the possibility to create xslt templates for the field's backend UI.
  • Offers a modal UI in order to create/edit for the children.
  • Compatible with Symphony associations.
  • Supports multiple level (recursive) of associations.
  • Aims to be compatible with all fields.


  • Symphony CMS version 2.5.1 and up (as of the day of the last release of this extension)


  • git clone / download and unpack the tarball file
  • Put into the extension directory
  • Enable/install just like any other extension

You can also install it using the extension downloader. Just search for entry_relationship_field.

For more information, see http://getsymphony.com/learn/tasks/view/install-an-extension/


  • Go to the section editor and add an Entry Relationship field.
  • Give it a name.
  • Select at least one section that will be permitted as children.
  • Select also the fields you want to be available in the backend templates and data sources.
  • Create backend templates in the workspace/er-templates folder.
    • The name of the file must be section-handle.xsl
    • You need at least one template that matches entry
    • Protip: add ?debug to backend url to see the available xml for each entry.
    • Protip: You can also override the default debug template with
      <xsl:template match="/data" mode="debug" priority="1"></xsl:template>
    • Protip: You can create buttons yourself, using the data-attribute api.
  • (Optional) Select an xsl mode to be able to support multiple templates for the same section.
  • (Optional) Select a maximum recursion level for nested fields.
  • (Optional) Select a minimum and maximum number of elements for this field.

There is also a screen cast available

Backend templates

Here's what a basic backend template should look like.

```xslt <?xml version="1.0" encoding="UTF-8"?>


Data-attribute API

In your backend template, you can create button that uses the same features as the default ones. The only markup needed is a data-attribute on the button.
The provided actions are:

  • Edit entry data-edit="{entry-id}"
  • Unlink entry data-unlink="{entry-id}"
  • Link entry data-link="{section-handle}"
  • Delete entry data-delete="{entry-id}"
  • Create entry data-create="{section-handle}"
  • Replace entry data-replace="{entry-id}"

Attribute value is always optional: It will revert to the closest data-attribute it can find in the DOM.

No validation is made to check if the feature has been activated in the field's setting, so use at your own risks.


This field would not have been created if some other people did not released some really cool stuff. We would like to thanks everybody that contributed to those projects:

We basically trashed things that were not necessary and re-implemented things that we liked from those extensions.



Made with love in Montréal by Deux Huit Huit

Copyright (c) 2014-2015

Version history

Symphony 2.5.0 to 2.6.x

  • Added a un-link button.
  • Entries can now be deleted straight from the field UI.
  • Fixed some other minor bugs
  • Add a ESC key shortcut to close the popup (#17)
  • Show the minimum and the maximum of entries allowed (#18)
  • Added a data-attribute based API for the backend (#30)
  • Section choice is now saved in local storage

Symphony 2.5.0 to 2.6.x

  • Changed the column type for entries to TEXT to allow more entries to be linked
  • Fixed a ton of bugs (#44, #42, #40, #38, #34, #33, #31, #26, #25, #24, #23, #22, #21, #20, #19, #11, #5, #4, #2)
  • Most of the data-* api is done (See #30)
  • Added options to hide link, new and edit buttons
  • Better error management for the ajax save
  • Added basic filtering (only works with entry id)

Symphony 2.5.0 to 2.5.x

  • Fix a bug that was preventing the render. Fixes #14
  • Outputs all modes (formatted/unformatted). Fixes #7
  • Only save via ajax if value changed. Fixes #6
  • Do not output * in includable elements. Fixes #9
  • Display real count of linked elements. Fixes #13
  • Added section name in the DS xml. Fixes #12
  • Turn off filtering. Re: #11
  • Re-render after save or create. Re: #1
  • Save the field value when it changes. Fixes #1
  • Always show linking section. Fixes #3
  • Added some xml params into backend templates. Fixes #8
  • Added runtime params. Fixes #8
  • Better debug visual

Symphony 2.5.0 to 2.5.x

  • First release