[TYPO3-dev] Inline-Relational-Record Editing

Oliver Hader oh at inpublica.de
Mon Oct 2 08:13:32 CEST 2006

Hi developers,

some weeks ago the first proof-of-concept approach on "Dynamic Backend
Editing" was published. As this title was a bit confusing, we have
chosen to name it "Inline-Relational-Record Editing". I will work mostly
all of October 2006 on this topic so that it could be hopefully be
finished for the core of TYPO3 4.1. Here I'd like to show some of the
cornerstones and thoughts, so we can discuss about architecture and how
to implement the things.

Main focus in abstract
We want to provide a solution that makes editing of data and creating
relations to foreign records easier for the user. Unneccessary clicks on
using wizards should be prevented. This also includes the complete
reload of an input view. So the user should be able to make his changes
on one view, as far as possible. The relations between objects can be
1:n and 1:1 (and n:m would possibly also come).

Technics used and core-parts being affected
To be able to combine input forms of different tables in one single
view, we have to use some "dynamic" functionality, such as
JavaScript/AJAX. The "dynbeedit" extension used tx_xaJax, but there is
still a discussion going on what framework should be used in the core
environment - it also could be possible to use more than one framework
there, like prototype, xaJax or whatever (it's not the intend of this
post to restart the whole big AJAX discussion here!).

As this is a project aiming to be worth for the core, we extend the core
code and do not develop as an extension. This would mean, that we extend
the t3lib_TCEforms with new functions. We don't overwrite existing types
or subtypes like "group" or "db", but there will be a new type e.g.

These desires could possibly also be implemented now, but we have to
talk about, if it's neccessary at all and in some case, how we can do this:

* Inline sorting functions (e.g. sort all inline records of one type by
  some selectable field).
* Automatic saving of unsaved data (e.g. every 60 seconds, could be
  configured). It would be possible, but we need a concept/discussion
  about "how" to solve the whole problem.
* Cardinality n:m with the possibility to store attributes on each
  relation, but how? Hava a look at a discussion about this [1].
  Sebastian and Ingmar added some nice mm-features to the SNV trunk,
  maybe this suffices...
* Integration of conditions. So e.g. an selectbox becomes available or
  editable if a checkbox like "has_something" was checked before. This
  is kind of "eval" and could affect other fields.
  Another example in that case is the switching between different types
  of tt_content elements ("text", "text/image", ...)
* Integration of clipboard-functionality (cut/copy/paste) - do we need?
* Inline editing of images and/or files with possibly adding an
  descriptive field for each file where the author, date, title, etc.
  could be stored. Also the DAM concept could be used here.
* Interface to/for dynaflex for inline-sorting, moving, whatever.
* Solution for handling many records (just imagine you once have 200
  inline records...)
* Later on: Migration for TCA to the new "inline" way.

That's it for now, please don't hesitate to publish your thoughts or
additonal ideas here. I'd like to start with that project (hm, maybe it
already has started) by the beginning of October 2006 ("now").

Thanks in advance for all of your feedback!


Oliver Hader

More information about the TYPO3-dev mailing list