[TASK] Optimize number_format calls

This change optimizes number_format calls in ViewHelpers by
explicitly casting the number argument to float.
A benchmark shows this increases performance of the number_format
call by a factor of 2-3.

Change-Id: I8e07703949ceb3781a101db80ee2b706d21a8f58
Releases: master, 2.0
Resolves: #36207
[FEATURE] Added autofocus attribute to textfield and textarea

The ViewHelpers f:form.textfield and f:form.textarea were lacking the
HTML5 "autofocus" attribute. It is available for button, input and
textarea. Now Fluid reflects this correctly by adding this attribute to
the initializeArguments methods for TextareaViewHelper and
TextfieldViewHelper.

Resolves: #49726
Releases: master
Change-Id: I00480dc4e76b2854dc0be36d150d32c7b432d93d
[BUGFIX] Base64-encode widget context

In order to avoid various null-byte-issues as they occur
when serializing an object with protected members (see
[1]); for example with Suhosin or some reverse proxy
implementations; the context object is transferred
in a Base64 encoded state now.

As there is no need to urlencode it anymore, this additionally
saves some bytes.

[1] http://php.net/serialize section "Parameters", subsection Note

Fixes: #35090
Releases: master
Change-Id: Idc9d1bbd944324db0f24ff3ac7fed766d2c473b1
[FEATURE] Fallback paths

With this change it will be possible to define multiple values
for the ``template``, ``partial`` and ``layout`` root path configuration.

Each of the respective options will now have a corresponding setter
that enables configuration of multiple paths to look up when loading a
Fluid template file::

	$view->setTemplateRootPaths(array('first/path', 'second/path', …));

The old setters will be kept and they overrule the fallback paths. So::

	$view->setTemplateRootPath('some/path');

would disable the fallback paths of the previous example. The same is true
for ``setPartialRootPath()`` and ``setLayoutRootPath()``.

The rootPath-getters have been deprecated in favor of
``getTemplateRootPaths()``, ``getPartialRootPaths()`` and
``getLayoutRootPaths()``.

Change-Id: I530e9a1fadbbd210c980c62cf2022c38fa81bb56
Resolves: #39870
Releases: master
[FEATURE] Add supportedOptions to templateView

This changes the templateView to make use of the new
way to set options by the view configuration change.
See I93acc3ed3d9578a5d00d494b367aa7201138255b

Resolves: #42176
Change-Id: I7596f6fc7f8349f3c43d05e6b5916b7946d412d5
[TASK] Major cosmetic cleanup

This adjusts the package to recent CGL changes, fixes loads of
minor spelling and includes further cleanups:

* Fix package key in class doc comments
* Import namespaces in order to avoid FQNs
* Add inline @var annotations for better maintainability
* Remove deprecated ViewHelpers "identity.json", "link.widget" & "uri.widget"
* Remove obsolete DocbookGenerator (use XsdGenerator instead)
* Fix unit and functional tests!

Change-Id: Ifaf093a8098585494e4c546e08e98d9a53833c94
Releases: master
Merge "[FEATURE] Added autofocus attribute to textfield and textarea"
[TASK] Fix license in file level docblocks

Change-Id: I4e1bdaadd9a313fd52a56bd152e08f37104c423b
Related: #50835
Releases: master, 2.0
[FEATURE] Introduce TemplateObjectAccessInterface

This change is needed to handle TypoScript objects, simple types and
Eel expressions in the same way.

With the additional call to $node->objectAccess() for implementations of
TemplateObjectAccessInterface the evaluation of TypoScript objects can
be deferred until the actual rendering to be as lazy as possible.

Change-Id: I85fb7c0837ea906502fa3f008fd9457f4d8c886f
Releases: master
Related: #48359
[BUGFIX] Don't use folders as templates, partials and layouts

The PHP function ``file_exists()`` returns TRUE for files as well as
directories.
This change adjusts Template- and StandaloneView to use ``is_file()``
instead.

Change-Id: Ib19cce211e61aa6601d809ff9ae95347e99df0f1
Fixes: #47188
Releases: master, 2.0
[BUGFIX] Additional Identity Properties not set on mapping error

When binding Fluid forms to nested objects, Fluid automatically adds
hidden fields with the identifiers of all affected objects so that
the persistence layer can update all objects correctly.

When a form was redisplayed due to property mapping errors, the
identity fields for the nested sub objects were no longer created.

This change fixes this by making sure all identity fields are rendered
recursively also after property mapping errors.

Example code to verify this::

	<f:form action="update" object="{user}" objectName="user">
	  <f:form.textfield property="firstName" />
	  <f:for each="{user.invoices}" as="invoice" iteration="iteration">
	    {iteration.cycle}:
	    <f:form.textfield property="invoices.{iteration.index}.subject" />
	  </f:for>
	  <f:form.submit value="update" />
	</f:form>

When submitting the form with validation errors, the redisplayed form
should contain a div with a hidden field named
"user[__identity]" for the user and one for each invoice.

Change-Id: I3debbc135d31278e91b83b3ac375bd5f62d13923
Fixes: #29290
Releases: master, 2.0
[TASK] initializeAction methods have to be protected

Change-Id: Ib6ee5ab2e0b876e565c7b630aecddd66a8029e70
Merge "[TASK] initializeAction methods have to be protected"
[BUGFIX] Form ViewHelpers throw exception if no formObject is set

When using forms with object binding Fluid throws an exception for FormField
ViewHelpers bound to nested properties if no form object is available.
This is the case for example in newAction() where the object is usually NULL::

	<f:form action="create" objectName="user">
	  <f:form.textfield property="name.firstName" />
	</f:form>

Change-Id: I3b0af1667e45c9e5cbe56b5bca69d717ba206320
Related: #29290
Releases: master, 2.0
[TASK] Remove PHP closing tag

Releases: master
Change-Id: I4593c98382a57e69446af181da47f802046bfd8e
[TASK] CGL Fixes

* Removes indent from inline comments
* Fixes several docblock issues
* Fixes incorrect spacing
* Fixes several other CGL issues

Change-Id: I5f10b4ce01abe406d357cc8105e3bb1fb482cf75
Releases: master
Merge "[TASK] Optimize number_format calls"
[FEATURE] Make NumberViewHelper regard locale

This change makes the NumberViewHelper use the forceLocale attribute
like the Currency and DateViewHelper do.
It also abstracts the locale awareness away into a seperate abstract
ViewHelper class to lay a foundation for other such ViewHelpers.

Change-Id: Ib3c05586160a521e0bc380373296b85b09bb0872
Releases: master
Resolves: #48218
[TASK] IfAccessViewHelper now avoids exceptions in Security.log

Previously this view helper was just calling decideOnResource() in
order to find out if a resource was accessible and caught any exception
thrown by that method. Now the correct method hasAccessToResource() is
called instead.

Because the logging aspect registered even caught exceptions, any call
to this view helper resulted in an Access Denied entry in Security.log

Change-Id: I39abae46be9e553954e3967ecabe229124acb551
Releases: master
[TASK] Regard system role AuthenticatedUser in IfHasRole VH

This patch makes the ViewHelper regard the new system role
`AuthenticatedUser` which was introduced in
Ia00bea27e81b2e4a172ad4f998dfa30581dd71dd.

Change-Id: Id29b3d8f2fd6a3ae6104ef2b6fe3643156544432
Releases: master
Resolves: #53800