Custom Tables

Version: 1.0.76
Component

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: extensions.Joomla.org

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.

Example:

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

    PUBLISH SELECTED
    UNPUBLISH SELECTED
    REFRESH SELECTED
    DELETE SELECTED

    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


  • 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.

JoomlaBoat.com 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.