SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
The Joy of Subforms! 

• what they are
• the problems they solve
• how you can use them
Randy Carey
Careytech Studios, LLC
Careytech.com
Remarkable Features in 3.x
● [3.0] Bootstrap
● [3.1] tags
● [3.2] content versioning
● [3.2] two factor authentication
● [3.3] microdata
● [3.4] frontend module editing
● [3.5] php 7
● [3.6] subforms
● [3.7] custom fields
● [3.7] backend menu manager
● [3.8] new routing system
● [3.9] privacy system
● [3.9] action logging
Of all the major features
of 3.x, the one that I use
the most is subforms.
I build a lot of custom
extensions for clients, and
subforms solves a lot of
challenges.
Agenda
• what	ARE	subforms	
• problems	solved	with	subforms	
• acknowledging	the	few	challenges		
• where/how	you	can	use	them	
• examples	of	problems	I’ve	solved	with	subforms	
• demo:	working	with	subforms
What ARE subforms
• A	field	type	(like	text,	dropdown,	date	picker,	media,	etc.)	
• A	collection	of	0-to-multiple	records	
• the	record	is	a	collection	of	fields	of	varying	types	
• almost	100%	customizable
Joomla	field	types:	https://docs.joomla.org/Standard_form_field_types	
An example of the editable
portion of a subform.
Customizable set of fields Examples of how each subform can
have its own fieldset.
Multiple records A subform can be one record, or it
can hold as many as the user
wants to create.
Drag-and-Drop Ordering
Interchangable Form Layouts
Here are examples of the three
layouts Joomla provides.
But we can design our own – which is
very helpful for custom data needs
problems solved with subforms
Clients often have challenging
needs. Often, subforms play an
important part of the solution.
Problems solved: no limit on items
1
2
3
The Articles form has a fixed number of
fields for links. That was before we had
subforms. With Subforms, we could let
users create as many links as they’d
like.
Problems solved: easy re-ordering
Also, the user would be able to
drag-and-drop re-order their links.
Reordering the old way required a
lot more work.
Problems solved: different orderings
In this scenario, the order of these managers vary upon each product page.
- With the component’s order field, we can not satisfy this requirement.
- With subforms, we can order each without relying on the component’s order.
Problems solved: many-to-many
Article
Article
Article
Article
article author
1 22
1 36
2 17
2 22
3 36
4 17
4 36
In the old way, we would
create a separate table
just to manage many-to-
many associations.
Example: 

authors-to-articles
Problems solved: many-to-many
Article
Article
Article
Article
With subforms…
many-to-many does not
require an extra db table, and
managing these association is
easy for users.
Problems solved: reusable fieldsets
If a set of fields are commonly used
together, we can quickly reuse that set
of fields by referencing the same XML
file.
In this example, the fieldset is for a
background image with text.
Problems solved: extensible 

– embracing change!

– custom fields
We must “embrace change” –
because new requirements often
emerge.
Adding a field is as simple as
adding a field declaration to the
XML file. In contrast, adding a
new field to a component
requires changes to the db and
multiple parts of the MVC.
Here is a suggestion:
If a third-party component
provides an empty subform field,
any user can safely add extra
fields to that component by
adding them to the subform’s
XML file.
Problems solved: custom form
Here is an example in which I built the edit form
for a client who has special pricing charts.
This custom layout logically mimics the client’s
mental model of his data.
Values of subforms
• custom	set	of	fields	
• multiple	records	
• sortable	records	
• variable	#	of	records
• multiple	orderings	
• many-to-many	
• extensible	–	custom	fields	
• tailored/custom	forms
challenges
• Some	light	coding	required
• Edit the XML file to declare the fieldset.
• Edit the layout file for displaying this data
– the same skill used in layout overrides
challenges
• Some	light	coding	required	
• not	easy	to	add	to	a	third-party	extension
There are a few tricks.
• The extension may allow you to add an
extra field, and if so, add a subform.
• Create a new menu item type off the
component’s view. Add a subform as a
parameter to that menu item.
challenges
• Some	light	coding	required	
• not	always	easy	to	add	to	a	third-party	extension	
• Searching	on	values
• Entire subform is stored as a single JSON
string, so an SQL query must use %LIKE%
and be thought through carefully.
Where / How you can use them
Where / How you can use them
Component	
• As	a	custom	field	with	a	plugin	for	subforms	
• https://www.richeyweb.com/software/joomla/plugins/147-fields-subform	
• eShop	:	as	an	extra	field	(other	extensions	may	offer	this)	
• Create	a	new	menu	item	type	for	component,	add	a	subform	as	a	
parameter.	
• Component-Creator:		create	your	own	component	that	you	can	edit	
• Outsource	–	find	a	skilled	Joomla	developer
Where / How you can use them
Modules	&	Plugins	
• Create	your	own	
• Clone	an	existing	one,	modify	the	XML	file	(to	include	a	subform)	
• Outsource
Examples: problems solved with subforms
In this part of the presentation I demoed some
examples from real projects .
Examples: 

problems solved with subforms
Each alternating block is a record within the
subform.
• Each block has its own settings using a
common fieldset (image, background color,
text, etc.)
• User can create as many as he/she likes.
• User can drag-n-drop order blocks.
Examples: 

problems solved with subforms
A vendor of biological supplies wanted an
online catalog with the ability to customize a
grid of prices (per piece, per class size, per
volume, whatever based upon the item). The
grid needs to accommodate a variable
number of rows and columns.



Each pricing grid on an item is a subform.
Examples: 

problems solved with subforms
Many diverse examples could be shown –
both, as to how they help a user manage
content, and as to how they are displayed on
the frontend.
The Joy of Subforms! 

• what they are
• the problems they solve
• how you can use them
Randy Carey
Careytech Studios, LLC
Careytech.com

Contenu connexe

Tendances

Moving from Wordpress to Joomla
Moving from Wordpress to JoomlaMoving from Wordpress to Joomla
Moving from Wordpress to JoomlaPete Rossetti
 
Web development | Derin Dolen
Web development | Derin Dolen Web development | Derin Dolen
Web development | Derin Dolen Derin Dolen
 
Girl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - WorkbookGirl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - WorkbookLauren Hayward Schaefer
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Blogging: Getting Started
Blogging: Getting StartedBlogging: Getting Started
Blogging: Getting Startedasbpe
 
Introduction To Umbraco
Introduction To UmbracoIntroduction To Umbraco
Introduction To UmbracoKen Cenerelli
 
Facebook on Rails
Facebook on RailsFacebook on Rails
Facebook on Railsmc77
 
JoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote AddressJoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote Addressjdaychi
 
Introduction to web design
Introduction to web designIntroduction to web design
Introduction to web designFitra Sani
 
Visual Rhetoric: Some Web Odds and Ends
Visual Rhetoric: Some Web Odds and EndsVisual Rhetoric: Some Web Odds and Ends
Visual Rhetoric: Some Web Odds and EndsMiami University
 
Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014Joseph Dolson
 
Web Issues
Web IssuesWeb Issues
Web Issuestterrill
 
Web Design Workflow and 
Tools that Make Life Easy
Web Design Workflow and 
Tools that Make Life EasyWeb Design Workflow and 
Tools that Make Life Easy
Web Design Workflow and 
Tools that Make Life EasySang-Min Yoon
 
SharePoint Branding From Start to Finish
SharePoint Branding From Start to FinishSharePoint Branding From Start to Finish
SharePoint Branding From Start to FinishKanwal Khipple
 
Rank above smx israel 2013 - schema & rich snippets
Rank above   smx israel 2013 - schema & rich snippetsRank above   smx israel 2013 - schema & rich snippets
Rank above smx israel 2013 - schema & rich snippetsBarry Schwartz
 
Advanced HTML.PDF
Advanced HTML.PDFAdvanced HTML.PDF
Advanced HTML.PDFRath Smy
 
Website Buying Guide Checklist
Website Buying Guide ChecklistWebsite Buying Guide Checklist
Website Buying Guide ChecklistMarc Duchene
 

Tendances (20)

Moving from Wordpress to Joomla
Moving from Wordpress to JoomlaMoving from Wordpress to Joomla
Moving from Wordpress to Joomla
 
Real World SharePoint Debacles
Real World SharePoint DebaclesReal World SharePoint Debacles
Real World SharePoint Debacles
 
Web development | Derin Dolen
Web development | Derin Dolen Web development | Derin Dolen
Web development | Derin Dolen
 
Girl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - WorkbookGirl Scouts Website Designer Badge Seminar - Workbook
Girl Scouts Website Designer Badge Seminar - Workbook
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Blogging: Getting Started
Blogging: Getting StartedBlogging: Getting Started
Blogging: Getting Started
 
Introduction To Umbraco
Introduction To UmbracoIntroduction To Umbraco
Introduction To Umbraco
 
Xhtml validation
Xhtml validationXhtml validation
Xhtml validation
 
AMP and WordPress
AMP and WordPressAMP and WordPress
AMP and WordPress
 
Facebook on Rails
Facebook on RailsFacebook on Rails
Facebook on Rails
 
JoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote AddressJoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote Address
 
Introduction to web design
Introduction to web designIntroduction to web design
Introduction to web design
 
Visual Rhetoric: Some Web Odds and Ends
Visual Rhetoric: Some Web Odds and EndsVisual Rhetoric: Some Web Odds and Ends
Visual Rhetoric: Some Web Odds and Ends
 
Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014
 
Web Issues
Web IssuesWeb Issues
Web Issues
 
Web Design Workflow and 
Tools that Make Life Easy
Web Design Workflow and 
Tools that Make Life EasyWeb Design Workflow and 
Tools that Make Life Easy
Web Design Workflow and 
Tools that Make Life Easy
 
SharePoint Branding From Start to Finish
SharePoint Branding From Start to FinishSharePoint Branding From Start to Finish
SharePoint Branding From Start to Finish
 
Rank above smx israel 2013 - schema & rich snippets
Rank above   smx israel 2013 - schema & rich snippetsRank above   smx israel 2013 - schema & rich snippets
Rank above smx israel 2013 - schema & rich snippets
 
Advanced HTML.PDF
Advanced HTML.PDFAdvanced HTML.PDF
Advanced HTML.PDF
 
Website Buying Guide Checklist
Website Buying Guide ChecklistWebsite Buying Guide Checklist
Website Buying Guide Checklist
 

Similaire à The Joy of Subforms with Randy Carey

Creating a Great XPages User Interface
Creating a Great XPages User InterfaceCreating a Great XPages User Interface
Creating a Great XPages User InterfaceTeamstudio
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Howard Greenberg
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityAlfresco Software
 
Custom fields in joomla
Custom fields in joomlaCustom fields in joomla
Custom fields in joomlaTim Plummer
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI PresentationAjeeth Pingle
 
Joomla Modules with Permissions and Front-End Editing
Joomla Modules with Permissions and Front-End EditingJoomla Modules with Permissions and Front-End Editing
Joomla Modules with Permissions and Front-End EditingRandy Carey
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplatesPaul Hunt
 
Advanced Templates for Ext JS
Advanced Templates for Ext JSAdvanced Templates for Ext JS
Advanced Templates for Ext JSSencha
 
Advanced templates
Advanced templatesAdvanced templates
Advanced templatesSencha
 
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Masayuki Nii
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...PostgresOpen
 
#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT ProsPaul Hunt
 
Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patternsCorey Oordt
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsPaul Hunt
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templatesPaul Hunt
 

Similaire à The Joy of Subforms with Randy Carey (20)

Creating a Great XPages User Interface
Creating a Great XPages User InterfaceCreating a Great XPages User Interface
Creating a Great XPages User Interface
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
 
SDWest2005Goetsch
SDWest2005GoetschSDWest2005Goetsch
SDWest2005Goetsch
 
Custom fields in joomla
Custom fields in joomlaCustom fields in joomla
Custom fields in joomla
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
 
Joomla Modules with Permissions and Front-End Editing
Joomla Modules with Permissions and Front-End EditingJoomla Modules with Permissions and Front-End Editing
Joomla Modules with Permissions and Front-End Editing
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplates
 
Advanced Templates for Ext JS
Advanced Templates for Ext JSAdvanced Templates for Ext JS
Advanced Templates for Ext JS
 
Advanced templates
Advanced templatesAdvanced templates
Advanced templates
 
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
 
#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros
 
Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patterns
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT Pros
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 

Plus de jdaychi

Fixing and Updating jQuery with Olivier Buisard
Fixing and Updating jQuery with Olivier BuisardFixing and Updating jQuery with Olivier Buisard
Fixing and Updating jQuery with Olivier Buisardjdaychi
 
jQuery vs Pure Javascript with Olivier Buisard
jQuery vs  Pure Javascript with Olivier BuisardjQuery vs  Pure Javascript with Olivier Buisard
jQuery vs Pure Javascript with Olivier Buisardjdaychi
 
The Future of Web Design with Jason Nickerson
The Future of Web Design with Jason NickersonThe Future of Web Design with Jason Nickerson
The Future of Web Design with Jason Nickersonjdaychi
 
Optimize Everything with Jason Nickerson
Optimize Everything with Jason NickersonOptimize Everything with Jason Nickerson
Optimize Everything with Jason Nickersonjdaychi
 
Building a Successful Joomla Based Business by The Joe Sonne Group
Building a Successful Joomla Based Business by The Joe Sonne GroupBuilding a Successful Joomla Based Business by The Joe Sonne Group
Building a Successful Joomla Based Business by The Joe Sonne Groupjdaychi
 
Why open source matters
Why open source mattersWhy open source matters
Why open source mattersjdaychi
 
Less is More by Matt Christensen
Less is More by Matt ChristensenLess is More by Matt Christensen
Less is More by Matt Christensenjdaychi
 
JoomlaDay Chicago 2017 Welcome Address
JoomlaDay Chicago 2017 Welcome AddressJoomlaDay Chicago 2017 Welcome Address
JoomlaDay Chicago 2017 Welcome Addressjdaychi
 

Plus de jdaychi (8)

Fixing and Updating jQuery with Olivier Buisard
Fixing and Updating jQuery with Olivier BuisardFixing and Updating jQuery with Olivier Buisard
Fixing and Updating jQuery with Olivier Buisard
 
jQuery vs Pure Javascript with Olivier Buisard
jQuery vs  Pure Javascript with Olivier BuisardjQuery vs  Pure Javascript with Olivier Buisard
jQuery vs Pure Javascript with Olivier Buisard
 
The Future of Web Design with Jason Nickerson
The Future of Web Design with Jason NickersonThe Future of Web Design with Jason Nickerson
The Future of Web Design with Jason Nickerson
 
Optimize Everything with Jason Nickerson
Optimize Everything with Jason NickersonOptimize Everything with Jason Nickerson
Optimize Everything with Jason Nickerson
 
Building a Successful Joomla Based Business by The Joe Sonne Group
Building a Successful Joomla Based Business by The Joe Sonne GroupBuilding a Successful Joomla Based Business by The Joe Sonne Group
Building a Successful Joomla Based Business by The Joe Sonne Group
 
Why open source matters
Why open source mattersWhy open source matters
Why open source matters
 
Less is More by Matt Christensen
Less is More by Matt ChristensenLess is More by Matt Christensen
Less is More by Matt Christensen
 
JoomlaDay Chicago 2017 Welcome Address
JoomlaDay Chicago 2017 Welcome AddressJoomlaDay Chicago 2017 Welcome Address
JoomlaDay Chicago 2017 Welcome Address
 

Dernier

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 

Dernier (20)

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 

The Joy of Subforms with Randy Carey

  • 1. The Joy of Subforms! 
 • what they are • the problems they solve • how you can use them Randy Carey Careytech Studios, LLC Careytech.com
  • 2. Remarkable Features in 3.x ● [3.0] Bootstrap ● [3.1] tags ● [3.2] content versioning ● [3.2] two factor authentication ● [3.3] microdata ● [3.4] frontend module editing ● [3.5] php 7 ● [3.6] subforms ● [3.7] custom fields ● [3.7] backend menu manager ● [3.8] new routing system ● [3.9] privacy system ● [3.9] action logging Of all the major features of 3.x, the one that I use the most is subforms. I build a lot of custom extensions for clients, and subforms solves a lot of challenges.
  • 3. Agenda • what ARE subforms • problems solved with subforms • acknowledging the few challenges • where/how you can use them • examples of problems I’ve solved with subforms • demo: working with subforms
  • 4. What ARE subforms • A field type (like text, dropdown, date picker, media, etc.) • A collection of 0-to-multiple records • the record is a collection of fields of varying types • almost 100% customizable
  • 6. Customizable set of fields Examples of how each subform can have its own fieldset.
  • 7. Multiple records A subform can be one record, or it can hold as many as the user wants to create.
  • 9. Interchangable Form Layouts Here are examples of the three layouts Joomla provides. But we can design our own – which is very helpful for custom data needs
  • 10. problems solved with subforms Clients often have challenging needs. Often, subforms play an important part of the solution.
  • 11. Problems solved: no limit on items 1 2 3 The Articles form has a fixed number of fields for links. That was before we had subforms. With Subforms, we could let users create as many links as they’d like.
  • 12. Problems solved: easy re-ordering Also, the user would be able to drag-and-drop re-order their links. Reordering the old way required a lot more work.
  • 13. Problems solved: different orderings In this scenario, the order of these managers vary upon each product page. - With the component’s order field, we can not satisfy this requirement. - With subforms, we can order each without relying on the component’s order.
  • 14. Problems solved: many-to-many Article Article Article Article article author 1 22 1 36 2 17 2 22 3 36 4 17 4 36 In the old way, we would create a separate table just to manage many-to- many associations. Example: 
 authors-to-articles
  • 15. Problems solved: many-to-many Article Article Article Article With subforms… many-to-many does not require an extra db table, and managing these association is easy for users.
  • 16. Problems solved: reusable fieldsets If a set of fields are commonly used together, we can quickly reuse that set of fields by referencing the same XML file. In this example, the fieldset is for a background image with text.
  • 17. Problems solved: extensible 
 – embracing change!
 – custom fields We must “embrace change” – because new requirements often emerge. Adding a field is as simple as adding a field declaration to the XML file. In contrast, adding a new field to a component requires changes to the db and multiple parts of the MVC. Here is a suggestion: If a third-party component provides an empty subform field, any user can safely add extra fields to that component by adding them to the subform’s XML file.
  • 18. Problems solved: custom form Here is an example in which I built the edit form for a client who has special pricing charts. This custom layout logically mimics the client’s mental model of his data.
  • 19. Values of subforms • custom set of fields • multiple records • sortable records • variable # of records • multiple orderings • many-to-many • extensible – custom fields • tailored/custom forms
  • 20. challenges • Some light coding required • Edit the XML file to declare the fieldset. • Edit the layout file for displaying this data – the same skill used in layout overrides
  • 21. challenges • Some light coding required • not easy to add to a third-party extension There are a few tricks. • The extension may allow you to add an extra field, and if so, add a subform. • Create a new menu item type off the component’s view. Add a subform as a parameter to that menu item.
  • 22. challenges • Some light coding required • not always easy to add to a third-party extension • Searching on values • Entire subform is stored as a single JSON string, so an SQL query must use %LIKE% and be thought through carefully.
  • 23. Where / How you can use them
  • 24. Where / How you can use them Component • As a custom field with a plugin for subforms • https://www.richeyweb.com/software/joomla/plugins/147-fields-subform • eShop : as an extra field (other extensions may offer this) • Create a new menu item type for component, add a subform as a parameter. • Component-Creator: create your own component that you can edit • Outsource – find a skilled Joomla developer
  • 25. Where / How you can use them Modules & Plugins • Create your own • Clone an existing one, modify the XML file (to include a subform) • Outsource
  • 26. Examples: problems solved with subforms In this part of the presentation I demoed some examples from real projects .
  • 27. Examples: 
 problems solved with subforms Each alternating block is a record within the subform. • Each block has its own settings using a common fieldset (image, background color, text, etc.) • User can create as many as he/she likes. • User can drag-n-drop order blocks.
  • 28. Examples: 
 problems solved with subforms A vendor of biological supplies wanted an online catalog with the ability to customize a grid of prices (per piece, per class size, per volume, whatever based upon the item). The grid needs to accommodate a variable number of rows and columns.
 
 Each pricing grid on an item is a subform.
  • 29. Examples: 
 problems solved with subforms Many diverse examples could be shown – both, as to how they help a user manage content, and as to how they are displayed on the frontend.
  • 30. The Joy of Subforms! 
 • what they are • the problems they solve • how you can use them Randy Carey Careytech Studios, LLC Careytech.com