List Manager Tutorial

Example: two lists on one table — public view + staff editing

A common need: the same data should be read-only for the public but editable by staff on the front end. You do it with two List Manager lists that point at the same database table and two menu items with different Joomla Access levels — no coding, no duplicated data.

The idea

  • One database table (here lm_team) holds the records.
  • List A — “Team roster”: a read-only configuration (search + table + pager, nothing else).
  • List B — “Team roster (editable)”: the same columns plus the New, Edit, Bulk Update and Delete buttons, and some columns marked Editable / Bulk.
  • Menu item A → List A, Access = Public.
  • Menu item B → List B, Access = Registered (or a custom “Staff” view level). Guests never even see this menu link.

1. The table

Create the table once — with Database Options or in your database tool. The demo lm_team has name, role, department, email, phone, extension, start_date.

2. List A — the public, read-only view

  1. Add → name it Team roster → Database Table lm_teamSave.
  2. Fields/Columns: turn on Visible for the columns to show; leave every Editable and Bulk box off.
  3. Data Layout: keep only Search, the TABLE and the pager. Do not add New / Edit / Delete.
Two List Manager lists, both built on the same lm_team table.
Two List Manager lists, both built on the same lm_team table.

3. List B — the staff, editable view

The fastest way is to Copy List A, rename it Team roster (editable), and then:

  1. Fields/Columns: turn on Editable (and Bulk where useful) for the columns staff may change — e.g. role, department, phone, extension. Leave key/identity columns locked.
  2. Data Layout: drag in New, Edit, Bulk Update and Delete from the Options list.
  3. Design the add/edit form on Form Layout with ##column## placeholders.
List B's Data Layout: the same table, now with New / Edit / Bulk Update / Delete buttons added.
List B's Data Layout: the same table, now with New / Edit / Bulk Update / Delete buttons added.

Both lists read and write the same rows. An edit made through List B is instantly visible in List A.

4. Two menu items with different Access

Create one menu item per list (type List ManagerList Manager, pick the list on the Options tab), then set the Access field in the right-hand column of the Details tab:

Menu item for the editable list: Access set to Registered, so only logged-in users can open it and even see the link.
Menu item for the editable list: Access set to Registered, so only logged-in users can open it and even see the link.
  • Team roster → List A → Access: Public.
  • Team directory (staff) → List B → Access: Registered (or Special, or a view level you create under UsersAccess Levels for a “Staff” group).

Joomla enforces this automatically: a visitor who is not in the required group gets a login prompt if they reach the URL, and the menu link is hidden from them entirely.

Result

Public “Team roster”: search and a sortable table, nothing editable.
Public “Team roster”: search and a sortable table, nothing editable.
Staff “Team directory” (after login): the same rows, plus New / Edit / Bulk update / Delete.
Staff “Team directory” (after login): the same rows, plus New / Edit / Bulk update / Delete.

The public sees a clean directory. Staff, once logged in, get the New / Edit / Bulk Update / Delete buttons on top of the identical list — and any change they make appears in the public view straight away, because it is one table underneath.

Tighten it further

  • Add a Fixed custom filter on List A (general Display settings), e.g. published = 1, so the public view never shows draft rows.
  • On List B’s Advanced screen turn on Save history to log who changed what.
  • The component’s own Options → Permissions control the back-end; the per-menu Access levels shown here control the front end.
...
Support/development

Perfect for small code changes or to correct any bug at your site

Buy now!
...
CalcBuilder

Create dynamic calculators

Buy now!