used for extensions
- if extension is called with empty name, it can set a name in
cell[name], which then get's used for the content (extensions can use
eg. an option to select the name)
- can be used via html class like:
$clean_html = html::purify($html);
- using it now in eTemplate to remove malicious code from html:
a) when displaying "formatted text"
b) when "formatted text" get's input by the user
the request. Here's an example:
$content['my-label'] = $id ? 'Edit' : 'Add';
You can use it now in the template of an nextmatch row for the label:
@@my-label
Saved the need to import these kind of data in the get_rows function
into the rows.
- on php5.3+ they get directly called via a variable: $callback($query,$rows,$readonlys)
- on php < 5.3 we instancate the class, an call the method non-static: $obj->$method($query,$rows,$readonlys)
--> allows application code to be prepared for static callbacks
Note:
- we can not use call_user_func, as it does NOT support passing by reverence, which is required for $rows and $readonlys parameter
- static callbacks allow to NOT instanciate the class again for the callback (without current dirty methods like placing the object in $GLOBALS[$class])"
--> allow to enclose comma-separated checkbox and radio-button option values in quotes (\"), so they can contain commas
eg. file-names containing commas in the filemanager"
form get's summited via ajax (without the _FILES array), which caused the process_show for 'files' to stall the the ajax request
--> get's ignored now"
- sqlfs can store now symlinks (implements symlink and readlink)
- vfs resolves symlinks before calling a mounted stream-wrapper
--> symlinks can be between different mount-points
- filemanger can create symlinks and follows them
- etemplate vfs_widget displays symlinks (to be improved)
Happy testing :-)
- the etemplate_request object which stores the request data in the
a) session (as before) or
b) compressed and encrypted in the form transmitted to the user
Benefit of b) is that the session does not grow and the form can
be submitted as long as the session exists, as we need no garbadge
collection. Of cause more data needs to be submitt between
browser and webserver. b) is choosen automatic if mcrypt and
gzcompress are available, but can be turned off via setting
etemplate_request::$request_class = 'etemplate_request_session';
- static class variables instead of the before used global ones
--> This new version of eTemplate is fully backward compatible with 1.6!
[] to the name of the widget, eg. "upload[]". In that case attaching a
file adds an other file upload via javascript direct under the current
upload and etemplate returns an array of files (each with keys
'tmp_name', 'name', etc.).
values, to match the number of header lines in the rows template
--> allows to customize the template (number of header lines) without
the need to patch the code
(fixed pm's element list with uses 2 header lines, but required exactly
one pad done by the old code)
In the example the tab itself is named "tabs", with tabs "one", "two"
and "three". Therefore the name of the tab-widget (where the select tab
gets reported and used to disable a single tab) does no longer depend on
the available tabs. This allows for a deeper customization.
Examples on how to use it are in the next two commits: tracker and pm
get_rows($value,$rows,$readonlys) instead get_rows($value,$value['rows'],$readonlys)
because $values['rows'] as reference would be stored in the session, when apps store $query parameter in the session
"
link)
- made bo_tracking abstract
- added default return null to bo_tracking::get_config and removed it
from extensions implementing no config
- fixed signature of get_config($name,$data,$old=null)
- egw_vfs::download_url as not encoding + or ' ' in pathes
- HTTP_WebDAV_Server was urldecoding $_SERVER[PATH_INFO], which is
wrong, as it is NOT encoded
- HTTP_WebDAV_Server was NOT urlencoding the pathes in PROPFIND
responses, causing eg. cadaver not to be able to use dirs containing
+ or space
Reworked it not in the following way:
- numerical limit or total disabling (setting "no"), are only valid for
non-admins
- addressbook has it's own value, but uses now the global one, if no
addressbook specific limit is set
+ path with clickable components
+ human readable size, mode, ...
+ mime icon with integrated thumbnail creation
- link widget uses now vfs-mime for it's icons
- thumbnail creation is now switched on with size 32px by default, it can
be switched of by the admin or user, in doing so explicitly
- mime-icons are moved from filemanager to etemplate, as not everyone
installs filemanager
- filemanager has now 3 display modi:
+ Current directory (with subdirs always on top)
+ Subdirs sorted in
+ Files from subdirs (shows recursive all files and you
can click on the path components thanks to new vfs widget)
- size need to be configured in admin >> site config
--> disable no pref to display thumbnail if admin did not configure size
--> fixed last commit to use configured size for thumbnails