New extension evo_chained_selector

By: Bartosz Aninowski Tuesday, 10 November 2009 15:09 comments: 3

TAGI:chain, prototype, select, tca

Evo_chained_selector is BE extension allows you to create relations between records by using "chained selection"

Origins of this associate with implementation we've worked on lately. Website contains expanded legal acts base with the structure as

Legal acts -> article  -> paragraphs & chapters -> section

The editor while creating new record tt_news is able to connect proper paragraph to the new news. We thought over an elastic solution that would allow the editor quickly and effectively create new relations and we decided to develop this new module.

Evo_chained_selector is a mechanism based on ajax which analyzes structure of table indicated in:

zaznacz
  1.  
  2.  $TCA[$table]['field']['config']['params']['table']
  3.  

and checks if selected in first input record possesses children, and if so, adds another input.

Records range in multiple choice field is dynamically limited while entering key word. This way each level can operate on unlimited number of records without causing long loading of record editing form

Integration in own BE modules

Relation is built with TCA type user, where in userFunc key one has to define call to  tx_evochainedselector_client->render function. Table to which we create relation has to have tree structure therefore parentField key should refer to parent_uid filed (in this case table pages: pid)

zaznacz
  1.  
  2. #tca.php
  3. "myfield" => Array (
  4. "exclude" => 1,
  5. "label" => "Select record",
  6. "config" => Array (
  7. "type" => "user",
  8. "userFunc" => "tx_evochainedselector_client->render",
  9. 'params' => array(
  10. 'table' => 'pages',
  11. 'parentField' => 'pid',
  12. 'title' => '###title###',
  13. // title of records in autocomplete form
  14. 'searchFields' => 'title',
  15. // which fields to search
  16. 'limit' => 20,
  17. 'order' => 'title',
  18. 'additionalWhere' => ''
  19. )
  20. )
  21. ),
  22.  

In the database is saved UID of the last selected element in the chain.

Screenshots

evo_chain_selector

Zrzut ekranu 2009-10-29 (godz. 21.10.03)

 

VIDEO

###YOUTUBEVIDEO###

To do

This is th initial version of this extension. Many things can be improved and added.

Waiting for your suggestions and questions.

Files to download:

blog comments powered by Disqus