[TYPO3-core] RFC: Inline Relational Record Editing (IRRE)

Ingmar Schlecht ingmar at typo3.org
Tue Dec 12 22:35:49 CET 2006


Hi guys,

here's Oliver's IRRE patch for Beta 2.

It contains the following changes:
  - The possibility to have relations from different parent pages to a
    child table
  - Automatic sorting by a "sortby" field (e.g. the title)
  - Whether the child records are expanded/collapsed is saved in uc now
  - Bugfixes to:
	* IRRE relation to the same table - relation field within child
	  elements isn't shown (http://bugs.typo3.org/view.php?id=4616)
	* IRRE relation to the same table shows new records twice
	  (http://bugs.typo3.org/view.php?id=4617)

Oliver and me have just gone through the patch bit by bit during a Skype
session, and everything seems to be fine to me.

If no-one objects, I'd like to commit it on Thursday.

cheers
Ingmar

Ingmar Schlecht wrote:
> This is a SVN patch request.
> 
> This patch introduces Inline Relational Record Editing (IRRE) for
> tceforms and is written by Oliver Hader as his diploma thesis. It has
> been intensively reviewed by Sebastian and me during a real-life meeting
> in Hof, Germany, last weekend.
> 
> Description:
> The main feature of IRRE is as simple as editing sub-records inside the
> parent record, and being able to add new sub-records just by clicking a
> "+" icon, which then loads the form for the sub-record using AJAX,
> without annoying form submits in between.
> Examples of such 1:n sub-record relationships would be "products" that
> have multiple "prices", or "persons" that have many "email-addresses".
> However, IRRE doesn't only offer to manage those sub-record
> relationships (1:n relations), but can also be used to manage m:n
> relationships (with or without attributes) by treating the records of
> the mm-table itself as exactly the same kind of sub-record table
> mentioned above, with the slight addition of a uniqueness-check.
> 
> Example for a normal 1:n relationship:
> Say you have two tables, products and prices and you want to be able to
> add multiple prices to a product with the prices displayed inside of the
> products form (inline). First you need to configure both of the tables
> as usual in TCA, and then add a new field called "prices" of the type
> "inline" to the products table with the foreign_table configured to be
> "prices". The TCA-Configuration of the "prices" field of the "products"
> table would look like this:
> 
>     "prices" => Array (
>         "label" => "Prices",
>         "config" => Array (
>             "type" => "inline",
>                 // Name of the child table:
>             "foreign_table" => "prices",
>                  // Field of the prices table in which the uid of the
> product it belongs to is stored:
>             "foreign_field" => "product",
>         )
>     )
> 
> Further reading:
> http://wiki.typo3.org/index.php/Inline_Relational_Record_Editing (it's a
> must-read for patch reviewers)
> 
> You can try the feature with the test extension and the source tarball
> located at http://inpublica.de/typo3/
> 
> Branch: trunk
> 
> Now, for those who want to review the patch:
> 
> Changes have mainly been made to these four classes:
> 	tcemain	      writing data
> 	tceforms      displaying the form, makes use of
> 		      the new class t3lib_tceforms_inline
> 	transferdata  preprocessing of relation data
> 	loaddbgroup   managing relations
> 
> New files are:
> 	t3lib/jsfunc.inlinerelational.js
> 		JavaScript for the AJAX stuff
> 
> 	t3lib/class.t3lib_tceforms_inline.php
> 		New functions that could have been put into tceforms are
> 		put to a separate file to not make tceforms even bigger
> 
> 	typo3/json.php
> 		BSD-licensed PHP class to convert PHP arrays to
> 		JavaScript JSON objects. Very handy for AJAX development
> 
> 	typo3/alt_doc_ajax.php
> 		Script that's called by the AJAX request when you add a
> 		new sub-item.
> 
> Still missing in the attached patch is support for refindex, but Oliver
> has already added that in the meantime (see
> http://svn.t3.digitaldistrict.de/cgi-bin/trac.cgi/changeset/5788) and
> I'll include it when finally committing it.
> 
> I think this patch should go into trunk soon, so there is enough time to
> test and fix it if needed.
> 
> cheers
> Ingmar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: typo3_4.1-beta2-irre.patch
Type: text/x-diff
Size: 57102 bytes
Desc: not available
Url : http://lists.netfielders.de/pipermail/typo3-team-core/attachments/20061212/30df38b8/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: doc_core_api.sxw
Type: application/vnd.sun.xml.writer
Size: 57960 bytes
Desc: not available
Url : http://lists.netfielders.de/pipermail/typo3-team-core/attachments/20061212/30df38b8/attachment-0001.sxw 


More information about the TYPO3-team-core mailing list