Introduction
Sometimes, we hope to get A items list as selector in B edit interface. In the past, we have to use sql to query
 this list and build as a HTML <select>. In windwalker, every MVC have their own list and modal formfield. We can
 add them in XML anytime.
Basic List Modal
We look sakura first, there is two files in:
- model/field/sakura/list.php
- model/field/sakura/modal.php
List
Now we can use sakura_list to fetch sakura items as a select list.
<field name="sakura_id"
    type="sakura_list"
    label="Select Sakura"
    description="COM_FLOWER_SELECT_SAKURA_DESC"
>
    <option>JOPTION_DO_NOT_USE</option>
</field>
In config.xml, we need include fields:
<fieldset
    name="component"
    addfieldpath="administrator/components/com_flower/model/field"
>
Result

Modal
Same as list, we use sakura_modal to select sakuras:
<field name="sakura_id"
    type="sakura_modal"
    label="Select Sakura"
    description="COM_FLOWER_SELECT_SAKURA_DESC"
/>


Using some attributes to target other extensions or table
List
We can using itemlist to choose table items from other extension, Foe example, if we want to get city list in
 com_address, so we can use this xml:
<field name="city_id"
    type="itemlist"
    label="Select City"
    extension="com_address"
    view_list="cities"
    view_item="city"
>
    <option>JOPTION_DO_NOT_USE</option>
</field>
The Itemlist formfield will get #__addresses_cities table as list source.
Modal
Same as itemlist.
<field name="city_id"
    type="modal"
    label="Select City"
    extension="com_address"
    view_list="cities"
    view_item="city"
>
    <option>JOPTION_DO_NOT_USE</option>
</field>
Note: Our view need modal.php in view tmpl folder taht we can get this modal work.
Extends ItemList and Modal formfield
We can see Sakura_list first:
// model/field/sakura/list.php
include_once JPATH_LIBRARIES . '/windwalker/src/init.php';
JForm::addFieldPath( AKPATH_FORM.'/fields');
JFormHelper::loadFieldClass('itemlist');
class JFormFieldSakura_List extends JFormFieldItemlist
{
    public $type = 'Sakura_List';
    public $value = null;
    public $name = null;
    protected $view_list = 'sakuras' ;
    protected $view_item = 'sakura' ;
    protected $extension = 'com_flower' ;
}
It's very simple, this class extends from JFormFieldItemlist, and add $view_list, $view_item , $extension
 three properties then formfield will auto fetch lst we want.
If you need more functions, please override getOptions() ans setElement().
Quick Add
Add these attributes in xml:
<field name="sakura_list"
     type="sakura_list"
     label="Select Sakura"
     quickadd="true"
>
    <option>JOPTION_DO_NOT_USE</option>
 </field>
Now we'll see quickadd button.

Click and enter input.

Now quickadd will use ajax to add new item.

Customize QuickAdd fields
In model/form/sakura.xml, we'll see this fields:
<!-- For Quick Ajax AddNew -->
<fieldset name="quickadd">
    <field name="title"
        type="text"
        label="JGLOBAL_TITLE"
        description="JFIELD_TITLE_DESC"
        required="true"
        size="50"
        class="input-xlarge"
        />
    <field name="catid"
        type="category"
        label="JCATEGORY"
        description="JFIELD_CATEGORY_DESC"
        extension="com_flower"
        >
        <option value="0">COM_FLOWER_TITLE_UNCATEGORISED</option>
    </field>
    <field name="state"
        type="list"
        label="State"
        >
        <option value="0">Unpublished</option>
        <option value="1">Published</option>
    </field>
</fieldset>
Just add field here, fieldname should same as sql column. The new field will appear in modal box.

QuickAdd attributes
| Attribute | Description | 
|---|---|
| task | Using which task (controller) to handle quickadd ajax. | 
| quickadd | Need TRUE to enable this function. | 
| table | Database table name, default is #__{component}_{view_list} | 
| key_field | Select option value. | 
| value_field | Select option text. | 
| formpath | Quickadd form xml path. Default is model/form/{view_item}.xml | 
| quickadd_handler | Which component get our ajax to handle quickadd, need windwalker component. | 
| title | Quickadd modal box and button title. | 
Found a typo? Help us improve this document.
This document is for Windwalker Joomla RAD, if you are finding Windwalker PHP framework, please see: Windwalker Framework