3.1.6 - Tabs & Accordions

Tabs & Accordions

New Feature : Organise the Forms and Flys fieldsets into tabs or accordions

How to do :

  1. Divide your Forms of Fly fieldsets into differents bricks
  2. For every brick you want to set as a tab, open the properties and choose "Tab it" or "Accordion it"

3.1.5 - Multi Tunnels

New Feature : Multi-tunnels

This new version breaks a limit with cross-reference database links (for N:1 and N:m)

When a Cross-reference link is refered through multiple different Foreign Keys, the builder was previously not able to instance them. Only the first link was usable.

It is a bit complex to understand... For instance let's call a N:1 relation 'tunnel'. From both sides of the relation the tables are the same, but the local key of the context table changes. It uses different roads, different tunnels.

Multi-Tunnel

Since 3.1.5, your component is able to create distinct roads (or tunnels) to load the relations. As always, it is unlimited.

Expected result for this example : From Cities, you can list all "Travellers" and all "Guides"

It works also for N:m relations.

New Feature : Date formating from lists

Date formating is now available in combos. If you instance a Foreign Key (1:n) in a form, and choose a date/time field as label key, the date is now formated correctly, reusing the date format you have configured in the field. You can always change this date/time format in the XML declaration of the combo field.

List Date Formating

3.1.4

Search Plugin

New Feature : Search Plugin

Introduction of the search plugin for Joomla.
At install, the plugin will automatically be installed in the 'search' plugin folder and will be enabled automatically.
You can now use the Joomla search module to find your component datas.

Implementation

In the component config, simply define "Include Search Plugin" to "Yes"
Search Plugin Config Component
Only the tables with a front-end search filter will be considered as "searchable".

Improved ORM

  • Search: default logic : ‘OR'
  • Select: Use '.' for tableless based namespace
  • SQL concat() function

Improved model

  • LIST : getRoute() for getting item URL
  • Debug state for dumping the query : 'debug.query'

Fixes

  • Logout problem in sandbox fixed

3.1.3 - Router slug

New Feature : Router slug

Your component is now able to re-use the alias (From the alias Wizard) for creating beautiful URLs.
It works also for Foreign Key filters.
The following examples are available in the sample component (Hello My World)

Slug

Here an example with slug :
index.php/component/hellomyworld/city/city/9-canberra

or :
index.php/component/hellomyworld/city/city/canberra

Filters

Example with continent filter:
index.php/component/hellomyworld/cities/cities/europe

Example with country filter (in second position):
index.php/component/hellomyworld/cities/cities/-/france

Example with continent + country filter:
index.php/component/hellomyworld/cities/cities/europe/france

Configuration

To custom the router, simply refers to the bottom of the router.php file, in the XxxxRouteConfig()
The first index is always the view name.
Then, every sub entry represent the order of the segments.

array(

// CITY (ITEM)

    // First segment : VIEW name
    'city' => array(

        // Second segment : LAYOUT name
        array(
            'type' => 'layout'
        ),

        // Third segment : SLUG
        array(
            'type' => 'slug',
            'aliasKey' => 'alias'   // The router must know the alias field to search on
        )
    ),

// CITIES (LIST)

    // First segment : VIEW name
    'cities' => array(

        // Second segment : LAYOUT name
        array(
            'type' => 'layout'
        ),

        // Third segment : FILTER (continent)
        array(
            'type' => 'filter',
            'name' => 'country_continent',  // Filter name
            'model' => 'continent',         // Must know the name of the model to search on
            'aliasKey' => 'alias'           // If the related model has a slug, you can define this alias key (it will automatically instance a slug)
        ),

        // Fourth segment : FILTER (country)
        array(
            'type' => 'filter',             
            'name' => 'country',            // Filter name
            'model' => 'country',           // Must know the name of the model to search on
            'aliasKey' => 'alias'           // If the related model has a slug, you can define this alias key (it will automatically instance a slug)
        ),

        // Fifth segment : FILTER (travellers)
        array(
            'type' => 'filter',             
            'name' => 'travellers',         // Filter name
            // 'model' => 'traveller'       // Model is not required if there is no slug
        )
    ),

// TRAVELER

    // First segment : VIEW name
    'traveller' => array(

        // Second segment : LAYOUT name
        array(
            'type' => 'layout'
        ),

        // Third segment : Primary key (cid)
        array(
            'type' => 'var',    // In this case, the primary key is NOT handled by slug (no alias wizard for this table)
            'name' => 'cid'     // Will simply put an integer value in the segment
        )
    ),
);

This configuration is shared between parseRoute() and buildRoute()
You can try to change the order of the segments to see how your component manage easily the route.

3.1.2 - Integrity Restrict Delete

Integrity Restrict New Feature : Restrict delete of an item when this item is referred by another item.

For using it, simply open the properties of a FK field, and then choose 'Restrict' in the 'FK Integrity' option.

In the following example, if you try to delete China (country), the system will refuse and tell you the related cities:
Integrity Restrict

3.1.1

Sample component Hello My World

New feature : Sample component

We propose you a sample component directly in the builder.
In the projects list, Simply click on the [+] button > Sample > Hello My World
The dataset is also included in this new created project.
You can create on top, delete, customize as you want.

Fixes

  • ORM : Inverted order of groupOrder
  • ORM : Fixed filter directive for null values
  • ORM : Fixed the ID directive for item (for headless calls)
  • Project Cloner : Fixed some dataloss (link layout in grid, xref in list filter (Pivot))

Get Started