If you are not familiar with WordPress, read the overview of our platform first. Refer to our Implementation Strategy for more about how the website is split into separate viewing areas for LLIR members and the general public.
This page takes a deeper dive into the overall structure (architecture) of LLIR’s software than the introductory pages mentioned above. Think of LLIR software as having the following four distinct parts:
This page hopes to explain the roles and responsibilities associated with different parts of the software.
The goal of this author, a former webmaster, is to clarify the separation of authorities between the programmer and webmaster within the WordPress environment. All changes to the Website should be made with approval and knowledge of the webmaster. This issue has become sore point in the past and is still a grey area when it comes to forms, as explained below.
Read on to learn more about:
- How HTML forms provide the bridge between the front-end user interface (the website) and the back-end code that operates on the database.
- Developing Forms
- How menuitems and in-page links open forms
Architecture of the LLIR Website
The design of the LLIR website is based on a clear separation between business processing and user interface. The design is enforces by three layers that are the industry standard for web application architecture, sometimes called Model-View-Controller (MVC). Forms are the points where the two sides meet and belong to a third layer: the interface layer between the back-end and front-end code. MVC lets developers modify the content the website without affecting operations on business processes and update business operations without forcing changes to the user interface.
The following diagram shows the layers in the LLIR website. The View layer is what users see. The Model layer composed of business logic and database processing. The actual database is often considered a separate fourth layer called Persistance. The middle layer is called the Controller because all it controls the transmission of user input to the business logic and then returns results for the user to see.

The boxes on coloured backgrounds above reside on the server that hosts the LLIR website. The webmaster uses the WordPress dashboard to maintain the contents of the View layer, the green area. The programmer creates the page templates that make up the blue area or Controller layer. Each page template is a php file that performs all processing required by one form, including extracting information from the database to display when the form opens. The php code also writes updates to the database after the user submits the form by calling php functions that make up the orange area.
Notes
MySQL is a free but fully functional database product that supports industry standards and the SQL language for relational databases. LLIR uses an installation of MySQL that resides on the same server as our website.
Our MySQL database is also accessed remotely by FileMaker Pro utilities that are installed on laptops used by the Registration committee. The utilities run wholly outside the WordPress environment
Developing Forms
All forms in the LLIR website are created and maintained by our hired programmer. However, like all website content, the design and content of forms must be approved by the Board.
Designing a Form
If you want to modify a form or create a new one, give the programmer as precise a specification of the visual layout as possible, plus detailed requirements for validation of user input. For example, phone numbers must contain exactly 10 digits. The visual design can be any document that specifies the content and layout of all text and all controls (entry fields, buttons and the like) that you want to appear on the form. Taking this approach means reviewers can proofread and approve the mockup before the programmer starts writing the back-end code.
If you, or a volunteer helper, know HTML, you can create specifications that look exactly like the final forms. These HTML mockups can even perform some input validation, but cannot run back-end code to display or update information stored on the database. To mock-up a form in HTML, create an ordinary webpage and add the Kadence block type custom HTML to the page.
HTML mockups for the forms in the My Profile section of the LLIR website are included at the end of the WordPress All Pages panel. These pages have titles beginning with ZZ so that they are the last pages in the list. For an example, first look at the published Change Password form. Compare it to the mockup page ZZ Change Password. You can open this page from the Dashboard.
Implementing a Form
The programmer completes each form by merging the HTML <form> tag from the prototype page into a php file. Each form and its associated php code is is stored as a page template. Page templates are a feature provided by Kadence for including custom code in a WordPress website that uses the Kadence theme.
Warnings
How to Link to a Form
Menu items and in-page links or buttons cannot open page templates directly. You must create a link page for each form. A link page is an ordinary page with the characteristics listed below. As a result, the form opens when a user clicks a menu item or button to the link page.
Opening a link page automatically invokes the page template to start executing the php code and display the form.
