Epic #72584: sysext:impexp
Improve usability of impexp and add documentation
While being highly configurable, this useful tool does not have sane defaults, which work in a standard setting, so you often wind up not getting it right. Also some of the options in tab "Configuration" are not easy to use.
Example: In a standard introduction / bootstrap_package TYPO3 9, you get errors using the defaults (see below for explanation).
IMHO: The defaults should work in most cases and you would only need to change the settings if necessary.
- it is difficult to understand how it works and when to use "Include tables", "Include relations to tables" and "Use static relations for tables", even for technical people, but expecially for non-technical people.
- "Use static relations for tables" is not intuitive. what does "to keep relations untouched for" mean?
- the sorting of the extensions in the Advanced options "Extension dependencies" is not alphabetically and selection is extremely tedious. There are better solutions around, e.g list picker used for static includes in Template.
- some text of the output of "Structure to be exported" is cut off, there is no information if this is also being written to a logfile. There is no option to select output in logfile.
- on tab "File & Preset" you have buttons "update", "Download export" and "Save to filename". Might make sense to have these 3 buttons in a general section on the page where they are always displayed (because they are not specific to the tab).
- The presets are saved in a DB table tx_impexp_presets so you can't just easily edit them as text and put them in version control. Nowadays, you might rather use Yaml for this (as in the sites module) and you might want to add presets for impexp in an extension (like you do for Backend modules).
- After saving a preset, the module jumps back to the first Tab "Configuration"
- When saving a preset with the same name, I would expect it to overwrite the already existing one. However, it creates a new one.
Example / Reproduce¶
1. Use a fresh bootstrap_package / introduction with latest TYPO3 9
2. Select top page "Congratulations" and do not change defaults (Levels "This page" will be selected)
3. Look at "Structure to be exported" at the bottom.
There are several errors. The first of which is a "LOST RELATION" to page 54 "Home". Why does he even bother with that page. Selected page level was 1 (default)?
In a diferent installation, 2 other problems occured, where I am still not quite sure which options to select:
- no files were exported
- too many things were exported, including files linked to a tt_content on a different page, which was hidden (even thought "Exclude disabled elements" was selected)
- Add documentation with some examples, including sample presets you can copy-paste
- use sane defaults which should work in most cases (test this with introducation / bootstrap_package)
- Better explain "Include tables", "Include relations to tables" and "User static relations for tables"
* Example: Why would I include "pages" in "Include relations to tables", I've already defined in "Levels"
which relations to other pages I want. * Example: If I want news in my exports, should I check "Include tables" or "Include relations to tables" or both? When in fact, everything is a relation anyway (a relation to the page).
- Use Yaml for configuration or at least make it import / exportable as yaml.
- Use selectMultipleSideBySide list picker to select extensions, and the db tables
- Put generic buttons ("Update", "Downlaod export", "Save to filename") at the bottom with a seperator and show it in all 3 tabs
- Log output to file (optional)
- don't jump to different tab after changing something, stay in currently selected tab.
Probably some general things should be clarified:
- what format and where to save presets (currently serialized array in db)
- what formats to use for saving export (currently XML, T3D, compressed T3D), see #58801
Note: Some of what is mentioned here might be due to user error or misunderstanding of mine, but that only proves the point: This tool should not be terribly difficult to use.