2) Step #1 of removing eTemplate's limitation on allowing only a grid as root element of the widget tree (which can NOT directly contain further grids, thought references to other templates/grids are ok). The storage layer allows now a real tree. Redering and editing only works on the old data variable, which is now a reference to the first grid in the tree.
More to come ...
2) added the possebility to select multiple tpls from the search-list to delete them
3) added the developer_tools solangfile class to etemplate to be able to write lang-files, even if the developer-tools are not installed
- load_via works now in boetemplate::read
- included templates are relative to the includeing tpl, if they contain no '.'
- xul_io is alway writing the comple/absolute name
- HBox gets width=100% if alignment other then left set (new!)
- added links as 2. option to label
- added header function to uietemplate
- added vbox and hbox support: container to put widgets in one row or column
- complete rows and column can now be disabled (even with a simple comparison with a variable in content, eg. disabled if the var is empty)
- labels and helptexts from tpls with 'test' in there name, get no longer written to the lang-file
- update the documentation
- editor warns now if newer version of template exists
- import xml is not longer Show-template page (etemplate.editor.buttons splitted in 2 templates one for show and one for edit)
The widget got automaticaly loaded from the app's inc dir (or etemplate's inc dir).
Two examples ilustrate how to use the interface:
- date: class.date_widget.inc.php reads dates via sbox.getDate
- datefield: class.datefield_widget.inc.php reads dates via 3 textfields
db_tools: import of existing db-tables via schema proc (needs some modification in the schema proc-class to allow calls from regular app !!!)
lots of other changes and improvments