SlideShare a Scribd company logo
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

More Related Content

PDF
How I Built a Membership Site Using Joomla Components and without being a dev...
PDF
Invisible CMS by Robert Jacobi
PPT
Advanced Web Development
PDF
The road to professional web development
PPT
iWeb NJECC June 28, 2011 DAndrea
PPTX
Developing Custom Applications with Joomla! and Fabrik
PPTX
Introduction to Web Development
PPT
Girl Scouts Website Designer Badge Seminar - Presentation Slides
How I Built a Membership Site Using Joomla Components and without being a dev...
Invisible CMS by Robert Jacobi
Advanced Web Development
The road to professional web development
iWeb NJECC June 28, 2011 DAndrea
Developing Custom Applications with Joomla! and Fabrik
Introduction to Web Development
Girl Scouts Website Designer Badge Seminar - Presentation Slides

What's hot (20)

PDF
Moving from Wordpress to Joomla
PPTX
Real World SharePoint Debacles
PPT
Web development | Derin Dolen
PDF
Girl Scouts Website Designer Badge Seminar - Workbook
PDF
Web Development for UX Designers
PPT
Blogging: Getting Started
 
PPTX
Introduction To Umbraco
PPT
Xhtml validation
PDF
AMP and WordPress
ODP
Facebook on Rails
 
PPTX
JoomlaDay Chicago 2017 Keynote Address
DOCX
Introduction to web design
PPT
Visual Rhetoric: Some Web Odds and Ends
PPTX
Accessibility With WordPress: Accessing Higher Ground 2014
PPT
Web Issues
PDF
Web Design Workflow and ‹Tools that Make Life Easy
PPTX
SharePoint Branding From Start to Finish
PPSX
Rank above smx israel 2013 - schema & rich snippets
PDF
Advanced HTML.PDF
PPTX
Website Buying Guide Checklist
Moving from Wordpress to Joomla
Real World SharePoint Debacles
Web development | Derin Dolen
Girl Scouts Website Designer Badge Seminar - Workbook
Web Development for UX Designers
Blogging: Getting Started
 
Introduction To Umbraco
Xhtml validation
AMP and WordPress
Facebook on Rails
 
JoomlaDay Chicago 2017 Keynote Address
Introduction to web design
Visual Rhetoric: Some Web Odds and Ends
Accessibility With WordPress: Accessing Higher Ground 2014
Web Issues
Web Design Workflow and ‹Tools that Make Life Easy
SharePoint Branding From Start to Finish
Rank above smx israel 2013 - schema & rich snippets
Advanced HTML.PDF
Website Buying Guide Checklist
Ad

Similar to The Joy of Subforms with Randy Carey (20)

PPTX
Chapter 2 class power point
PPT
Jordan Kasteler Usability SEO
PPT
Jordan Kasteler Usability SEO
PDF
MS Access Subform Success
PDF
Simplifying your admin experience - Stanford WebCamp
PPTX
Joomla forms with 123ContactForm
ODP
Go Joomla 1.6 with your extension - Joomla!Days NL 2010 #jd10nl
PDF
Forms | An easy to use Guide
PPTX
Modular forms in SilverStripe 3
PPTX
Simplifying Your Admin Experience - FLDC 2023.pptx
PDF
HSC INFORMATION TECHNOLOGY CHAPTER 1 ADVANCED WEB DESIGNING PART III.pdf
PDF
Boosting UX in Web Apps_Anu Thakur - May 3, 2017
PPTX
Web design - Working with forms in HTML
PDF
Form Design: Best practices
 
KEY
ExtJS Forms
ODP
Drupal Content SubTyping
PDF
A Comprehensive Guideline for Designing Most Efficient Web Forms: On Structur...
PDF
Between Two Form Tags
PDF
Tm 1st quarter - 2nd meeting
PDF
Web Design & Development - Session 4
Chapter 2 class power point
Jordan Kasteler Usability SEO
Jordan Kasteler Usability SEO
MS Access Subform Success
Simplifying your admin experience - Stanford WebCamp
Joomla forms with 123ContactForm
Go Joomla 1.6 with your extension - Joomla!Days NL 2010 #jd10nl
Forms | An easy to use Guide
Modular forms in SilverStripe 3
Simplifying Your Admin Experience - FLDC 2023.pptx
HSC INFORMATION TECHNOLOGY CHAPTER 1 ADVANCED WEB DESIGNING PART III.pdf
Boosting UX in Web Apps_Anu Thakur - May 3, 2017
Web design - Working with forms in HTML
Form Design: Best practices
 
ExtJS Forms
Drupal Content SubTyping
A Comprehensive Guideline for Designing Most Efficient Web Forms: On Structur...
Between Two Form Tags
Tm 1st quarter - 2nd meeting
Web Design & Development - Session 4
Ad

More from jdaychi (8)

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

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
System and Network Administraation Chapter 3
PDF
top salesforce developer skills in 2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
L1 - Introduction to python Backend.pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Online Work Permit System for Fast Permit Processing
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Wondershare Filmora 15 Crack With Activation Key [2025
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
How Creative Agencies Leverage Project Management Software.pdf
System and Network Administraation Chapter 3
top salesforce developer skills in 2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
L1 - Introduction to python Backend.pptx
PTS Company Brochure 2025 (1).pdf.......
Odoo POS Development Services by CandidRoot Solutions
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

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