Search

I would like to have a field that takes any array of values and stores it. For example, it might take something like

<customer>
    <id>324</id>
    <transactions>
        <transaction>
            <id>d3gswlo4SEfg3</id>
        </transaction>
    </transactions>
</customer>

It has to accept multiple levels of data. The use case for this is setting up a webhook for receiving data from a 3rd-party API or even just for storing arbitrary data, e.g., user inputted data.

Currently, I have to use an event to flatten the data, which also requires me to predict the fields needed in symphony (which is annoying when setting up multiple sections and also might not work in some cases when the payload is unknown or variable).

Anyone interested in building such an extension or know how I might get started to try to build one?

There is an XML field somewhere...

Aha! Here it is.

This field type will allow you to save chunks of XML into the database for output into your datasources.

It looks like it only accepts actual XML. In my situation, I'm receiving a POST array. I guess I could use this if I created a custom event converting the array into an XML string? (but then I might as well use a regular text field)

You could create the xml using an event. I wouldn't understand why you would want to store any other type of data, as Symphony uses XML? You're going to have to convert it at some point for use with Symphony anyway right?

Also, your example clearly defines an XML structure, hence the recommendation.

Actually it's an array that is posted to a Symphony page. Symphony spits out XML in the event post-values, but since the section doesn't have a field for each XML node, it doesn't store it.

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