Custom Tables extension for Joomla!

Version: 1.5.6

Personalized Database Tables for Joomla!. Create Custom Tables add Fields, Create Layouts with Dynamic Field Values. Has catalog, edit form, detailed view etc custom layouts.

Submit Form:

Catalog Page:

Please leave a review about this extension here:

Creating a Custom Table

When creating a new Custom Table, it is important to get the schema right the first time, though this won't be difficult to change later.
The schema is like the blueprint for the table. We need to define each field (column) along with its parameters.


Let's create an example Custom Table "Appointments" with 3 fields: Full Name, Email and Date. We will also have Submit Form and Catalog View page.

Submit Form:

Catalog Page:

Step by step guide:

  1. First to create a new Custom Table, go to Components / Custom Tables. Click on Tables section icon.

  2. Then click on [New] button.

  3. Fill the form. "Unique Table Name" is how the table will be identified in the system.
    "Table Title" is translatable name of the table that would be visible to front-end users, if set so.
    If you have multilingual website, then more "Table Title" fields will appear - one per each language.
    Categery is to organize tables in case you have more than one. If you only have one table, it is not necessary to set the category. 

  4. Description. Add some table description - it can be visible to front-end users, if set so.

    When done, click Save.

  5. Now we have empty table. Click on Fields (0) link to manage Table Fields.

  6. Click on [New] button to create new field. Fill up the form and click Save.

  7. Now create "fullname" field. Fill the form. Save it and create more fields.

  8. Create "email" field.

  9. Create "date" field.

  10. Set additional options if needed.

  11. We have 3 fields.

  12. Introduction to output Layouts.

    The Layout is the way in which the parts of Custom Table are arranged on a rendered HTML page.
    In Custom Tables we use special "tags" that will be replaced with the content from the database or generated by the process.
    Example: [table:title] - That would be replaced with current table title - "Appointments"

    Lets move on and create our first Layout.

  13. Click on [New] button to create new Layout.

  14. Enter Layout name "SubmitAppointments", that must be unique as it will be used as an identifier to find the Layout.
    Select Type: Type on what kind of page it will be used. We need a layout for Submit Form page so select "Edit Form" type.
    Select table to attach the layout to.
    Now you may as well use "Layout Auto Creator" to generate the layout based on the type and fields Custom Table has.

  15. You may edit generated layout and delete or add more features (Tags)

  16. Most of the Tags have their parameters. Example: Tag [table:param] has parameters "title" and "description" so appropriate value will be returned as set in parameters.
    Simply double-click on a Tag to see what parameters it has.

  17. Tag "buttons" renders form submit button bar.
    When you finish editing the Layout, save it.

  18. We have Edit Form Layout. Now we need a Catalog Layout - Catalog Layout is a form of table data output to show submited records.
    Click on [New] to create new Layout, enter Layout Name "ListOfLayouts" for example.
    Select Type - "Simple Catalog". This type of layout allows to render HTML Table output using {catalogtable:} tag.
    Click on "Layout Auto Creator" too to generate the Simple Catalog layout.

  19. Click on Field Tags, [date] for example to adjust output format.

  20. Or


    or to set what kind of buttons you want to have there. When you finish - Click Save.

  21. Also Create Email Layout - It will be send to an email provided in Menu Item (This will be explained later.) after form submition.

  22. Now lets setup the front-end. We will use Menu Items to create front-end pages.
    First create a new Menu Item, enter the Menu Title.

  23. Select Menu Item Type. We need Custom Tables - Add New Item (This is submit Form page)

  24. Go to Settings, Select Table and set "Who may add content" to Public - to let unregistered users submit the form.
    The rest set to Administrator or Super Administrator.

  25. Set "Guests Can Add New Records" to "Guests Can Add New Records"
    Select Edit Layout
    Set "Send Email when record" to "Added"
    To "On Record Add Send Email to" type the email address where do you want an email will be sent to.
    Also Select Email Layout. Save it.

  26. Now it's time to see how it looks in-front end. Open in front-end the menu item you just created. It should look like this:

    You will recieve an email after submiting this form.

    Try to change/add various parameters Layout to familiarize yourself.

  27. To view submited records we have "ListOfAppontments" layout. Create a menu item with Custom Tables/Catalog type to have it in fron-end.

  28. Select table and layout. Select who may add/edit content

  29. Select edit layout to be able to edit records.

  30. Set who may view this Manu Item

  31. This is what you will have in a front-end of your website:

By default new table comes with just two fields: [id] (int(10)) where unique record ID stored, and [published] (tinyint(1)) which will mark a record as published/visibe (1) or unpublished/hidden (0).
These two fields cannot be changed or deleted.

Custom Tables

Key benefits:

  1. Export Tables - Export Table structure including layouts and import them to other websites.
  2. Server Info Tag - Returns Sanitized (String) Server Environment value. Visitor IP etc.
  3. PHP Script Tag - Executes PHP script and returns the result.
  4. Custom PHP Events
  5. Content Plugins:
    • Custom Tables Catalog - Returns a catalog results into any article or elsewhere.
    • Custom Tables Record - Returns single Record by ID.
  6. Image Gallery
  7. Users may upload .zip files, if permitted by website administrator.
  8. Change Log field type. All record changes will be saved and you may go back and see previous versions of the record in the table.

$ 35.00

PayPal Buy Now
  • 1.5.6 (2019-09-15) - User ID and Creation time field types improved, value updates when record copied.
  • 1.5.4 (2019-09-12) - PHPonChange and PHPOnAdd field types improved- you can user double quotes and single quotes now.
  • 1.5.3 (2019-08-28) - Import CSV tag added .
  • 1.5.2 (2019-08-25) - Back-end, layout editor, tag parameters bug fixed.
  • 1.5.1 (2019-08-25) - Pagination "limitstart" changed to "start".
  • 1.5.0 (2019-08-12) - Foreign Key can be disabled for Table Join fields, PHP On View field type "Disable Value storage" option added. Calculates values on the fly.
  • 1.4.8 (2019-08-09) - Table Join field type dynamic selector fixed. Also today is Lili's birthday!
  • 1.4.7 (2019-08-08) - Import structure button fixed.
  • 1.4.6 (2019-08-02) - Save buttons improved to fire onSubmit event.
  • 1.4.5 (2019-07-30) - Image field type value tag fixed.
  • 1.4.4 (2019-07-29) - Save and Close button type changed.
  • 1.4.3 (2019-07-18) - Save button redirect fixed.
  • 1.4.1 (2019-07-10) - Sub If statement tags are possible now.
  • 1.4.0 (2019-07-08) - Save and Close buttons bug fixed.
  • 1.3.9 (2019-07-05) - Save and Close buttons class and return path bug fixed.
  • 1.3.8 (2019-07-04) - Save and continue bug fixed.
  • 1.3.6 (2019-07-04) - File field type improved. You may choose how to render the link now.
  • 1.3.2 (2019-06-27) - Package file was corrupted. Fixed.
  • 1.3.1 (2019-06-26) - Time field type added.
  • 1.2.9 (2019-06-17) - Details vie bug fixed.
  • 1.2.8 (2019-06-17) - [_edit:] tag added. It allows you to have editable item in any layout with save on change functionality.
  • 1.2.7 (2019-06-07) - Multilingual string/text field types language parameter added to Value Processor; Save CSV file name can use language file translations. Batch toolbar icon are visible to selected user groups only.
  • 1.2.6 (2019-05-29) - Translation fixed.
  • 1.2.5 (2019-05-28) - {button} tag added. Click to see details.
  • 1.2.4 (2019-05-27) - Create new table bug fixed.
  • 1.2.3 (2019-05-27) - Documentation added. Menu components cleaned.
  • 1.2.2 (2019-05-24) - Default field values may include General Tags now. Example 2019-09-15
  • 1.2.0 (2019-05-07) - Front-end language file fixed. There was wrong file in the package.
  • 1.1.9 (2019-05-06) - Back-end Table's dependencies tab added.
  • 1.1.8 (2019-04-30) - CSV export "enable content plugins" functionality added.
  • 1.1.7 (2019-04-25) - Text Search improved. It breaks search request by [space] and uses LIKE MySQL function to compare each word.
  • 1.1.6 (2019-04-24) - Create user accounts for published records only.
  • 1.1.5 (2019-04-24) - additional option "improved" added.
  • 1.1.4 (2019-04-08) - Table Join can show/hide unpublished records.
  • 1.1.3 (2019-03-21) - Save As New improved, it copies all the fields.
  • 1.1.2 (2019-02-07) - Date field type filter fixed.
  • 1.1.0 (2019-02-06) - Edit Form warnings fixed.
  • 1.0.99 (2019-02-04) - Some translations are fixed. Filter and order by date my include the date format (mysql). Example: "birthdate:%j"
  • 1.0.96 (2019-01-30) - Alias improved (able to find unpublished records).
  • 1.0.95 (2019-01-29) - Table Join improved (able to join unpublished records).
  • 1.0.94 (2019-01-17) - PHP 7.2 compatible.
  • 1.0.92 (2019-01-15) - Create User Unique filter added.
  • 1.0.91 (2019-01-13) - New parameters added: Table Join field type: Allow Select unpublished records, Selector added. Also, you may show layout processes values in dropdown lists.
  • 1.0.91 (2019-01-11) - Language file fixed.
  • 1.0.90 (2019-01-08) - Code cleanup.
  • 1.0.89 (2019-01-07) - Create User functionality added. Custom Tables may try to create a new user account if certain conditions are met.
  • 1.0.88 (2019-01-04) - SEF Links improved.
  • 1.0.87 (2019-01-03) - Pagination bug fixed, translations added.
  • 1.0.86 (2018-12-27) - Overral improvement.
  • 1.0.83 (2018-12-06) - Integer field type search bug fixed.
  • 1.0.82 (2018-12-03) - reCaptcha fixed.
  • 1.0.81 (2018-12-03) - Back-end translation fields added.
  • 1.0.80 (2018-11-29) - Image Field Type default value fixed.
  • 1.0.79 (2018-11-29) - Back-end, Add New Table Join Field bug fixed. XML output bug fixed.
  • 1.0.76 (2018-10-08) - Image file type required field validation added.
  • 1.0.74 (2018-10-05) - CVS export improved - Saves as UTF16.
  • 1.0.72 (2018-10-02) - File upload improved. It accepts modern (Open XML) docx,xlsx and pptx files.
  • 1.0.70 (2018-09-28) - CSV Table view bug fixed.
  • 1.0.69 (2018-09-28) - File/Image upload bug fixed. There was a conflict in Safari, about SSL certificate of one of the JQuery repositories.
  • 1.0.67 (2018-09-20) - File Box Field Type table check added.
  • 1.0.65 (2018-09-14) - Field Types improved (the way data stored).
  • 1.0.63 (2018-09-12) - User tag values added, docx,xlsx,pptx specific mime types fixed.
  • 1.0.62 (2018-09-10) - User tag values added, docx,xlsx,pptx specific mime types added.
  • 1.0.61 (2018-09-10) - Code pareses improved - it will ignore quotes with leading slash character.
  • 1.0.59 (2018-09-08) - Item Tags added to Simple Catalog Layout type. Table structure import method improved in Pro version.
  • 1.0.58 (2018-09-08) - Pro version improved - process uploaded file before user download functionality added. Free version: uploaded file link can be limited by host, user id and time.
  • 1.0.57 (2018-09-05) - Checks email domain MX record before saving email type filed value. Color field type added. Alias field type added.
  • 1.0.56 (2018-09-04) - Bug fixed. There was a problem with the links if the website wasn't located at the root directory.
  • 1.0.55 (2018-09-04) - JURI:root() added to source links.
  • 1.0.54 (2018-09-04) - Tabs tag added. Set page title bug fixed.
  • 1.0.53 (2018-08-20) - If statements improved, IE compatibility back-end fixed.
  • 1.0.51 (2018-08-03) - Security Update.
  • 1.0.46 (2018-08-02) - Private links to uploaded files added.
  • 1.0.45 (2018-08-01) - If statements added.
  • 1.0.44 (2018-07-28) - AJAX Image Uploader added.
  • 1.0.42 (2018-07-25) - Code cleaned.
  • 1.0.41 (2018-07-24) - Some word spelling fixed and code cleaned.
  • 1.0.40 - First public release. 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.