Ja:Inline Relational Record Editing

From TYPO3Wiki

Jump to: navigation, search
 List Projects The Inline Relational Record Editing-project
list pages
See Current Project Members, Wishlist 
    you can help if you like!
Example of data structureA more complex structure covering data over more levels, that could be editable with Inline-Relational-Record-Editing
Example of data structure
A more complex structure covering data over more levels, that could be editable with Inline-Relational-Record-Editing
Screenshot of extension dynbeedit 0.0.2How it could work in TYPO3
Screenshot of extension dynbeedit 0.0.2
How it could work in TYPO3

This is a current project, so this is a HOT page.


Contents

[edit] Main focus in abstract

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 ????? 1 ? 1 ??????(??????? n ? m ?????????????)? ?????????? TYPO3 ??? (????? t3lib_TCEform) ??????????????TYPO3 4.1 ????? (???????????) ???? (???????????????????TYPO3 4.2 ????????????????)?

????????? Oliver Hader ? Hof ???????????????????????????????????? (??????????????) ?????? (???????????????????????????????????) ???????????

[edit] You want to try it?

IRRE TYPO3 4.1 (download) ??????????

???TER ??????? [TYPO3-Extension "irre_tutorial" not found] ????????????????????????????????????????????????????????????????????????????? ????irre_tutorial ???????? Test-Suite-Extension T3X_irre_testsuite.t3x ?????????????

[edit] Documentation

TYPO3 Core API ??????? "inline" ???????????????????????????TCA ??????????????????????????????????

???????????????Oliver Hader ???????????????????

??????????????????: http://typo3.org/development/projects/irre/

[edit] Feedback/Discussion

????????????bug-tracker ?????????????
Inline Relational Record Editing ??????????????????????????mailing-list ??? news-group ????????????? typo3.projects.irre ??????????

[edit] A closer look

  • TCEforms ???? TCA ???? "inline" ????????????????? getMainFields ????????????????????????????
  • TCEmain ????????? uid ???? (select ??????)?MM ?????? (select/group ??????) ?????foreign_field alternative ????????????
  • prototype ? JavaScript ???????? AJAX ?????? ??????????????????? inline ???????????
  • prototype/script.aculo.us ?????inline ???????? DOM ?????????????????????????????
  • (alt_doc.php ??? SC_alt_doc ???????) alt_doc_ajax.php ????? AJAX ??????????????????????TCEforms ??????????

[edit] Functionality of Inline Relational Record Editing

???? "Inline Relational Record Editing" ??????????????????

[edit] Database Storage

TYPO3 ???1:n ?????????????????? 1 ??????????????????????????????"company"?"addresse" ??? "person" ? 3 ??????"company ??? person" ? "addrss ?????? person" ???????????????????????????????????????

[edit] 1:n relations

????????Inline Relational Record Editing 1:n ??????????

???1:n ???????????????????????????????????????????????????????????????????????????????????????????????

[edit] m:n relations

Inline Relational Record Editing ?????MM ????????????????????????????????????????????????????? MM ??????????????????????????????????? uid ? pid ???????????

[edit] Attributes on relations

????????Inline Relational Record Editing Attributes ??????????


[edit] Inline interaction with data

  • inline ??????$TCA: $TCA[<table>]['ctrl']['sortby'] ????????????????????????????????????????????????????????
  •  ?????? inline ????????????$TCA[<table>]['ctrl']['sortby'] ????????????Web > ????????????????????????????????????????
  •  ??? inline ?????????????????????????????????????????inline ??????????? uid ????????????(??????????????) ????????????????????????1:n ????????????????????????????????????????????? "deleded='1'" ??????????????????

[edit] Relations

Other relating projects to Party Information Framework (edit this, in alphabetical order)

  • Commerce Shop Extension This extension use an 1:N relation for addresses and included an own addressmanagement, which should be part of the Party Information Framework.
  • Enhanced Rights Management - a pear class for a RBAC / Role Based Access Control.
  • Inline Relational Record Editing - 1:n relations for BackEnd-Forms -- Oliver Hader
  • Newloginbox development coordination - Ingmar Schlecht and Stefan Strasser
    The User list plugin (pi3) of Newloginbox is related to the Party Framework. If the Party Framework will ship with a user listing plugin, the pi3 of Newloginbox wouldn't be needed any more.
  • Users Addresses - relations between fe_user and tt_address, best practice discussion - Elmar Hinz
  • dkd_feuser_belogin - relation between fe_user and be_user


[edit] Timeline

  • Proof-of-concept extension "dynbeedit": beginning of september
  • Programming-part of the project as new TCEform type: october 1st 2006 - november 1st 2006
  • Code-Review by Ingmar Schlecht and Sebastian Kurfürst: november 10th-12th 2006
  • Bug-Fixing and integration tests to the TYPO3 Core 4.1: until november 15th 2006
  • Publish on Core-Developer List for reviewing/accepting the changes: november 16th 2006
  • Bug-Fixing and necessary changes to meet conditions of the core-developers: until february 1st 2007
  • "Big" Documentation of the work (= Diploma thesis): after all points above have been finished, until end of february 2007

[edit] Current To-Do-List

  • Core-Features
    • refactoring and try to remove the "FIXME"s
    • OK minitems in TCA configuration has to be evaluated in the forms view (TCEforms)
    • OK use new t3lib_befunc::getRecordTitle of David Brühlmeier for header titles
    • OK allow automatic sorting for child records, currently foreign_sortby writes only a manual sorting!
    • OK import-/export-functionality bugfix for using intermediate tables and symmetric relations
    • OK bugfixing RTE problems for cascaded inline fields over more levels (positioning, width, height)
    • OK special bugfix for Internet Explorer issues
    • REMOVED attributes on MM relations to handle attributes AND child record as well (two combined inline tables)
    • OK bidirectional symmetric relations with attributes and sorting for each side of the relation
    • OK attributes on a own intermediate table (foreign_field) with the possibility to edit embedded children directly, child-records are reusable (0:n) (inline releational editing over two levels)
    • OK dynamically change header/label field of a record container while editing
    • OK drag&drop sorting with script.aculo.us ("Sortable")
    • OK check uniqueness on pointer tables (foreign_field), that are used as intermediate tables with attributes on client-side
    • OK replace xaJax by prototype (handling of AJAX with JSON)
    • OK recursively delete child records
    • OK recursively undelete child records (history/undo)
    • OK recursively copy child records
    • OK handle 1:n with item list (comma separated)
    • OK handle 1:n with pointer field on foreign table ("foreign_field")
    • OK handle m:n/1:n allow usage of regular MM-tables (also bidirectional)
  • Appearance-Features
    • add save button to each inline fields (i.e. with notificator that something was changed)
    • change script.aculo.us effect-animations for deletion & sorting of records
    • TSconfig if child-records should show up collapsed by default, etc.
    • OK save expanded/collapsed state for child-records for each user in BE_USER->uc (like in pagetree)
  • Related-Features
    • Implement the type "inline" for tx_kickstarter

[edit] Wishlist

Here a some features that should be discussed and maybe become part of "Inline-Relational-Record-Editing" at some time.

  • 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.
  • 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?
  • Integration of workspaces and localization
  • 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. (see Bernhard Krafts extension: http://typo3.org/extensions/repository/view/kb_tca_section/0.0.1/)
    -- Annotation: this is already possible with IRRE, the question was about a better integration for e.g. DAM - olly
  • Interface to/for dynaflex for inline-sorting, moving, whatever.
  • Solution for handling many records in one view (just imagine you once have 200 inline records...)

[edit] Current Project Members

  • Project Leader, developer: Oliver Hader <oh(at)inpublica(dot)de>
  • Reviewing, committing to Core: Ingmar Schlecht, Sebastian Kurfürst
  • Testing: Thomas Oppelt, Volker Graubaum, David Brühlmeier

[edit] Proof-Of-Concept

There is a proof-of-concept extension that shows in a few aspects, what could be done with inline editing. Of course it's not complete, but covers the idea behind. That extension is called dynbeedit and available in the TER. - I fixed the link. kind regards, Daniel

Personal tools