- 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])"
- 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!
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)
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
"
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
also fixed number-of-rows selection, which worked only on the 2. go
--> both problems were introduced by the memory saving fix applied after the last RC"
The select_widget allways used the cats of the current application. That's still the default, but it can be overwritten now via an option. The nextmatch_widget has now and optional parameter 'cat_app', which defaults to the app of the get_rows method.
- improved printing:
+ disabled unnecessary UI-elements in nextmatch
+ nextmatch has now selection for the number of rows to display
+ nextmatch-filters (selectboxes) are now printed as text