Skip to main content

Custom fields and External Data Sources

Guest Speaker:
Marc Dechèvre - 

Description:
Joomla 4 Beta was released on 30 May 2020 and I am happy to see that this causes much excitement and many interesting discussions in the Joomla Community.

Amongst the new major feature we have :

The new media manager, which will be obviously useful to all users, The workflow, which will be useful in many cases, And Webservices, which is more a developer thing but really open new possibilities. This will indeed allow for example to use your Joomla website as a source for other websites/apps/…

So in this context of Webservices I was thinking : what about using Joomla Custom Fields to synchronise data from other sources (like open-data in json format for example) ?

  • So instead of having Joomla feeding other websites/apps/… like we will be able to do with J!4, we can already easily feed J!3 from external sources.
  • Thanks to the Joomla friends on https://forum.joomla.fr we quickly came up with a simple plugin, very light and very easy to edit/customise.
  • To have a preview of how to synchronise your Custom Fields with an external source on a multilingual Joomla website, you can already see https://sync.joomlacustomfields.org/fr/

Chat from our meeting:

Custom fields presentations:
https://slides.woluweb.be/list.reveal#/presentations

Template suggestion - astroid:
https://slides.woluweb.be/astroid/astroid.reveal#/astroid-un-template-a-la-fois-puissant-et-tres-facile
joomdev

joomladay chicago:
Https://summit.joomladaychicago.com.

New version of tool:
working on by: Alexandre Elise & Crostophe Avonture
Link to the current version of the plugin : https://github.com/woluweb/updatecf/
As already said, a newer vesion is being coded with a CLI script too.

Repeatable Field:
https://docs.joomla.org/J3.x:Adding_custom_fields/Repeatable_Field

Can you validate the data?

  • For the moment the data is from a 'trusted source'.
  • For sanitization, actually (version 1) there is none i.e. the plugin get the information from the JSON source (which is a trusty source) and get the value. The email is taken in the JSON and saved in the email CF.
  • It will be possible (with extra coding) to define the expected data type (the email should be … an email (not just a text) and we can check this with f.i. regular expression)
  • But will requires extra coding.
  • We can use joomla api to validate the email: PunycodeHelper::emailToUtf8($email) if think
    - we could also use the build it Form::validate() or InputFilter too

Quesiton about additional use... what if you havfe different categories with different fields?

  • Technically, it just to solve the question : how can we match the CF with the JSON array.
  • If that Matching can be done in a separate JSON, why not…
  • Anyway, the actual version is doing an hardcoding match and that's bad.
  • From Olivier Buisard to Everyone: 03:05 PM
  • you could also use a repeatbale field to create the matching of fields with the json element
  • From Alexandre ELISÉ to Everyone: 03:06 PM
  • nice one olivier
  • but repeatable fields are upper bound to 1000 fields
  • csv or real json file import might be simpler what do you think?
  • From Olivier Buisard to Everyone: 03:07 PM
  • I think we are not talking about the same thing :-) you would not have that many custom fields to match to the json fields

 

From Dorothy Firsching to Everyone: 03:07 PM
Does this give us a Joomla MARKETING hook to expand its use relative to its competition? Becoming the "glue" across websites?

Do you have plans to make this work available in a format that you can list in the JED - as a Joomla Extension so the Joomla Community while widely know of it?

  • Not yet. Currently focusing on making the tool work properly it will be avaialble on github. It needs to be more universal to be added to the JED
  • To make that universal you would need to add more options so you can define the fields you want to fetch from the external source.
  • not on the jed because it uses php7.2
  • jed requires 5.3 minimum
  • olivier gave a cool idea for that

Keep it simple and just create a new plugin for every new json source you need. Like that you can turn them on/off separately

Repeatable fields for dynamic field mapping
roland tool is cool too

From Olivier Buisard to Everyone: 03:25 PM
Stewart, I like your background :-)
Marc's presentations are all very interesting and I urge everyone to check them out.

 

 

JoomlaDay™ events are independently managed local events that are officially recognized by The Joomla Project™. Use of the Joomla!® name, symbol, logo, JoomlaDay,™ JDay™ and related trademarks is licensed by Open Source Matters, Inc.

joomlausersnj.com is not affiliated with or endorsed by The Joomla! Project™ or Open Source Matters.
The Joomla!® name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.