Search

As some of you know, I've recently been working on an extension called Reference Link, the goal of which is to make building inter-section associations in Symphony a bit more robust. I've been having some conceptual difficulties though, and thought I'd reach out to all of you for help...

Goals of Reference Link

1. Enable many-to-many relationships

Based on the Select Box Link field, Reference Link's first concrete goal was to enable multiple selections so that many-to-many relationships could be built. That functionality is complete, and those changes were later integrated into Select Box Link itself.

2. Add interface options

The second goal was to build in the option to display the field as an autocomplete text input, which might be preferable to a select box in situations where the list of target entries is very long or complex. That functionality is about 90% complete.

3. Enable relationships across multiple sections

This is the tricky one. We had this functionality with Section Link, but it's since disappeared. But subsidiary sections like "comments," "attachments," "links," and the like often require that they can be associated with more than one section. This presents an interface problem as pulling from multiple sections into a single select box or autocomplete field is likely to present difficulties (not to mention that often you'd want to create this sort of association from the other direction). The old solution was to force creation via the 'parent' entry using the table link. Maybe that makes sense again here...

Some have suggested getting around all this by just using additional fields for each section to be associated (parent article, parent page, etc. instead of simply 'parent'), but that is at best inelegant and also often implies a messy multiplication of datasources.

Other Extensions

Select Box Link is the default mechanism for creating associations in Symphony. Reference Link is designed to do everything Select Box Link does, only with more options and hopefully more flexibility. But for some, maybe Select Box Link is all we need...

In the meantime, several new extensions have been developed whose functionality overlaps in one way or another with Reference Link. I'm thinking particularly of Mediathek and Subsection. Mediathek is very specialized though, and the limitation of Subsection is that you cannot associate already-existing entries.

Questions

As you can see, this is kind of a muddled situation, and so I'm reaching out for suggestions, ideas, etc. Would appreciate answers to any of the following questions and/or other comments...

1) Is Reference Link, as outlined above, something you'd find useful, or could you get by with Select Box Link and other fields for your projects? Is the scope of it too narrow? Too broad?

2) When building inter-section associations in Symphony, have you had any unmet needs (either in terms of functionality or interface/workflow)? Anything you were left wishing you could accomplish but couldn't? i.e. What else might you like Reference Link to be able to do?

3) What would be the ideal workflows, for you, when building inter-section relationships? Try to imagine all the scenarios: associating single entries with each other, associating one entry to many others in a single section, associating one entry to many others in multiple sections, building associations via the parent (originating) entry, building associations via the child (target) entry... etc.

Thanks in advance!

Is Reference Link, as outlined above, something you'd find useful ...

Yes. I think the extensions you mentioned (Subsections, Mediathek) are showing that there is a need for entry to entry and multiple entries to multiple entries associations. The more robust the solution is, the better. So I think Reference Link is a good idea.

The only thing I'm not entirely sure about is the ideal interface and workflow. I'm not sure yet how "the Symphony way" for this should look like, so I'm looking forward to see your solution live in action.

Hey czheng, I started writing this as a response to this thread, but decided it would be better off in its own thread.

I think you're on the right track with your Reference Link and I could see this becoming a replacement for the Select Box Link. One word of caution I have is that links that distribute over multiple sections are difficult to capture on the overview table - you will need a link for every related section in a single table cell. This might not sound too problematic, but it makes it very difficult to navigate.

Thanks for that Scott. What I've decided to do is finish the autocomplete functionality and then do an initial release of the extension. That functionality alone might be useful to folks and meets 80% of my need anyway. Then, if I can figure out how to handle the other stuff, I can add it in later.

Update: initial release available here

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details