TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-parent="#accordion"
|
||||
data-bs-target="#collapseSeven"
|
||||
aria-controls="collapseSeven"
|
||||
aria-expanded="false"
|
||||
id="headingSeven"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>Cache settings</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapseSeven" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSeven">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
Configure how TYPO3 caches are stored to optimize performance for your hosting environment.
|
||||
</p>
|
||||
<p>
|
||||
<strong>The default configuration</strong> works well for most installations. Depending on your setup,
|
||||
performance can be improved by choosing a different cache storage type.<br>
|
||||
<strong>Database storage</strong> is typically the best choice for standard environments and installations
|
||||
using network file systems (NFS), where frequent file access may reduce performance.<br>
|
||||
<strong>File-based caches</strong> can be more efficient in shared hosting environments or when using
|
||||
distributed databases.<br>
|
||||
For advanced installations, <strong>memory-based cache backends</strong> such as Redis
|
||||
or Memcached can provide additional performance improvements. These require further
|
||||
configuration in <code>system/settings.php.</code>
|
||||
</p>
|
||||
<p>
|
||||
Select <strong>Custom settings</strong> to configure the storage backend for each
|
||||
cache individually.
|
||||
</p>
|
||||
|
||||
<p>Cache types:</p>
|
||||
<dl>
|
||||
<dt>Page</dt>
|
||||
<dd>Stores the cached content of individual pages.</dd>
|
||||
|
||||
<dt>Page Section</dt>
|
||||
<dd>Stores TypoScript instructions and data required to generate page content and the
|
||||
handling of non-cacheable objects.</dd>
|
||||
|
||||
<dt>Hash</dt>
|
||||
<dd>Stores internal data used during page generation, such as menu structures.</dd>
|
||||
|
||||
<dt>Rootline</dt>
|
||||
<dd>Stores the full hierarchy of pages leading to the current page, including translation
|
||||
and timing information. Used for menus and link generation.</dd>
|
||||
|
||||
<dt>Image Sizes</dt>
|
||||
<dd>Stores calculated image dimensions separately to reduce file system access.</dd>
|
||||
</dl>
|
||||
<f:for each="{feature.presetsOrderedByPriority}" as="preset">
|
||||
<f:render partial="Settings/Presets/{feature.name}/{preset.name}" arguments="{_all}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-cache-custom"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-cache-custom" class="form-check-label">
|
||||
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Custom cache settings:</p>
|
||||
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-6 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
|
||||
<div class="col-sm-6">
|
||||
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
|
||||
<input
|
||||
id="{feature.name}{preset.name}{configurationKey}"
|
||||
type="text"
|
||||
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
|
||||
value="{configuration.value}"
|
||||
class="form-control t3js-custom-preset"
|
||||
data-radio="t3-install-tool-configuration-cache-custom"
|
||||
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-cache-database"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-cache-database" class="form-check-label">
|
||||
<strong>Prefer database storage for caching</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-cache-file"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-cache-file" class="form-check-label">
|
||||
<strong>Prefer File storage for caching</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,46 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-parent="#accordion"
|
||||
data-bs-target="#collapseTwo"
|
||||
aria-controls="collapseTwo"
|
||||
aria-expanded="false"
|
||||
id="headingTwo"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>Debug settings</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
Choose a configuration preset optimized for development or production environments.
|
||||
</p>
|
||||
<p>
|
||||
The <strong>Live</strong> preset prioritizes performance and hides debug and error
|
||||
messages from website visitors.
|
||||
</p>
|
||||
<p>
|
||||
The <strong>Debug</strong> preset enables detailed debug and error messages to support
|
||||
development and troubleshooting.
|
||||
</p>
|
||||
<p>
|
||||
Select <strong>Custom configuration</strong> to adjust each setting individually.
|
||||
</p>
|
||||
<f:for each="{feature.presetsOrderedByPriority}" as="preset">
|
||||
<f:render partial="Settings/Presets/{feature.name}/{preset.name}" arguments="{_all}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,39 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-context-custom"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-context-custom" class="form-check-label">
|
||||
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Custom configuration mixture if no other preset fits.</p>
|
||||
|
||||
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-4 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
|
||||
<div class="col-sm-8">
|
||||
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
|
||||
<input
|
||||
id="{feature.name}{preset.name}{configurationKey}"
|
||||
type="text"
|
||||
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
|
||||
value="{configuration.value}"
|
||||
class="form-control t3js-custom-preset"
|
||||
data-radio="t3-install-tool-configuration-context-custom"
|
||||
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,21 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-context-debug"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-context-debug" class="form-check-label">
|
||||
<strong>Debug</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Enable debug output and set logging to info level.</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,21 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-context-live"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-context-live" class="form-check-label">
|
||||
<strong>Live</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Turn off debug output and set logging to warnings and errors only.</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-parent="#accordion"
|
||||
data-bs-target="#collapseFour"
|
||||
aria-controls="collapseFour"
|
||||
aria-expanded="false"
|
||||
id="headingFour"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>Image handling settings</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFour">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
Configure the image processing tool used by TYPO3.
|
||||
</p>
|
||||
<p>
|
||||
TYPO3 uses <strong>GraphicsMagick</strong> or <strong>ImageMagick</strong> for advanced
|
||||
image processing. The correct configuration depends on the version available on your system.
|
||||
Available image processing tools are detected automatically and appropriate settings are
|
||||
recommended.<br>
|
||||
When configured correctly, image processing tests in the
|
||||
<strong>Install Tool → Test Setup</strong> section should pass.
|
||||
</p>
|
||||
<p>
|
||||
If the <strong>ImageMagick</strong> or <strong>GraphicsMagick</strong> executables
|
||||
are installed in a non-standard location, specify the absolute path to the directory here.
|
||||
</p>
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-12">
|
||||
<div class="input-group">
|
||||
<input
|
||||
type="text"
|
||||
name="install[values][{feature.name}][additionalSearchPath]"
|
||||
value="{feature.additionalSearchPath}"
|
||||
class="form-control t3js-presets-image-executable"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<button
|
||||
class="btn btn-default t3js-presets-image-executable-trigger"
|
||||
type="button"
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
>
|
||||
Find executables in this directory
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<f:for each="{feature.presetsOrderedByPriority}" as="preset">
|
||||
<f:render partial="Settings/Presets/{feature.name}/{preset.name}" arguments="{_all}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-image-custom"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-image-custom" class="form-check-label">
|
||||
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<p>Custom configuration mixture if no other preset fits.</p>
|
||||
|
||||
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-4 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
|
||||
<div class="col-sm-8">
|
||||
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
|
||||
<input
|
||||
id="{feature.name}{preset.name}{configurationKey}"
|
||||
type="text"
|
||||
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
|
||||
value="{configuration.value}"
|
||||
class="form-control t3js-custom-preset"
|
||||
data-radio="t3-install-tool-configuration-image-custom"
|
||||
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,32 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-image-graphicsmagick"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-image-graphicsmagick" class="form-check-label">
|
||||
<strong>Graphics Magick</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
GraphicsMagick was found in path <code>{preset.foundPath}</code>.
|
||||
</f:then>
|
||||
<f:else>
|
||||
GraphicsMagick was not found in standard system paths. If it is
|
||||
installed in an unusual location on your system, set the path in the
|
||||
input box above and search again.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,32 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-image-imagemagick6"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-image-imagemagick6" class="form-check-label">
|
||||
<strong>Image Magick version 6 or higher</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
An ImageMagick version 6 or higher was found in path <code>{preset.foundPath}</code>.
|
||||
</f:then>
|
||||
<f:else>
|
||||
ImageMagick version 6 or higher was not found in standard system paths.
|
||||
If it is installed in an unusual location on your system, set the path in the
|
||||
input box above and search again.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,44 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-parent="#accordion"
|
||||
data-bs-target="#collapseFive"
|
||||
aria-controls="collapseFive"
|
||||
aria-expanded="false"
|
||||
id="headingFive"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>Mail handling settings</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapseFive" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFive">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
Configure how TYPO3 sends email messages.
|
||||
</p>
|
||||
<p>
|
||||
TYPO3 can use the <strong>sendmail</strong> command line tool when the mail
|
||||
transport is set to <code>sendmail</code>.
|
||||
The correct executable path depends on the binary available on your system
|
||||
</p>
|
||||
<p>
|
||||
The current sendmail path is detected from the PHP configuration and can be applied
|
||||
to the TYPO3 settings.
|
||||
</p>
|
||||
<f:for each="{feature.presetsOrderedByPriority}" as="preset">
|
||||
<f:render partial="Settings/Presets/{feature.name}/{preset.name}" arguments="{_all}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-mail-custom"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
{f:if(condition: '!{isWritable}', then: 'disabled')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-mail-custom" class="form-check-label">
|
||||
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Custom mail settings:</p>
|
||||
|
||||
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-6 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
|
||||
<div class="col-sm-6">
|
||||
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
|
||||
<input
|
||||
id="{feature.name}{preset.name}{configurationKey}"
|
||||
type="{f:if(condition: '{configurationKey} == "MAIL/transport_smtp_password"', then: 'password', else: 'text')}"
|
||||
autocomplete="{f:if(condition: '{configurationKey} == "MAIL/transport_smtp_password"', then: 'new-password', else: 'off')}"
|
||||
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
|
||||
value="{configuration.value}"
|
||||
class="form-control t3js-custom-preset"
|
||||
data-radio="t3-install-tool-configuration-mail-custom"
|
||||
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,29 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-mail-sendmail"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-mail-sendmail" class="form-check-label">
|
||||
<strong>Import sendmail command from PHP settings</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
<p>If you enable this setting the sendmail command will be set to:</p>
|
||||
<p><pre>{preset.sendmailPath}</pre></p>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<p>Sendmail was not found in your PHP settings.</p>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-mail-smtp"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-mail-smtp" class="form-check-label">
|
||||
<strong>SMTP Settings</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>To set up the mailer agent in TYPO3 CMS to use SMTP it's necessary to configure a SMTP server that will take care of the delivery of your emails.
|
||||
Luckily, the configuration of a SMTP server is generally very easy. This option set some default values for you.</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,46 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<div class="panel panel-default">
|
||||
<h2 class="panel-heading" role="tab">
|
||||
<div class="panel-heading-row">
|
||||
<button
|
||||
class="panel-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-parent="#accordion"
|
||||
data-bs-target="#collapseSix"
|
||||
aria-controls="collapseSix"
|
||||
aria-expanded="false"
|
||||
id="headingSix"
|
||||
>
|
||||
<div class="panel-title">
|
||||
<strong>Password hashing settings</strong>
|
||||
</div>
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</h2>
|
||||
<div id="collapseSix" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSix">
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
Configure the password hashing algorithm used for frontend and backend users.
|
||||
</p>
|
||||
<p>
|
||||
TYPO3 never stores passwords in plain text. Instead, passwords are stored using
|
||||
a salted one-way hash.
|
||||
Available hashing algorithms are detected automatically.
|
||||
</p>
|
||||
<p>
|
||||
<strong>If unsure, select the first available option, which represents the most secure algorithm
|
||||
supported by the system.</strong><br>
|
||||
The selected algorithm is used for new backend and frontend users. Existing users
|
||||
are automatically upgraded to the new algorithm after their next successful login.
|
||||
</p>
|
||||
<f:for each="{feature.presetsOrderedByPriority}" as="preset">
|
||||
<f:render partial="Settings/Presets/{feature.name}/{preset.name}" arguments="{_all}" />
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,35 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-argon2i"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-argon2i" class="form-check-label">
|
||||
<strong>Argon2i</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
Select this one if in doubt: Argon2i is a modern key derivation function that was selected as
|
||||
the winner of the Password Hashing Competition in July 2015.
|
||||
</f:then>
|
||||
<f:else>
|
||||
Argon2i is not available on this system. This is sad since it is a modern password hash
|
||||
algorithm and the winner of the Password Hashing Competition in July 2015. It is easily
|
||||
available on all platforms since PHP version 7.2. There is no sane reason to run PHP >7.2
|
||||
without argon2i. Please reach out to your hoster to fix this and select this hash algorithm
|
||||
as soon as it is available.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,33 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-argon2id"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-argon2id" class="form-check-label">
|
||||
<strong>Argon2id</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
<strong>Use Argon2id if you are using PHP >= 7.3 on all instances (local, test, production, ...)!</strong><br />
|
||||
Argon2id is a modern key derivation function. It provides better resistance
|
||||
to some forms of attack compared to Argon2i.
|
||||
</f:then>
|
||||
<f:else>
|
||||
Argon2id is not available on this system. If you want to use Argon2id make sure you are using PHP >= 7.3
|
||||
with Argon support.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-bcrypt"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-bcrypt" class="form-check-label">
|
||||
<strong>bcrypt</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
bcrypt is a good password hashing algorithm. It however needs some additional quirks
|
||||
for long passwords in PHP and should only be used if Argon2id or Argon2i is not available.
|
||||
</f:then>
|
||||
<f:else>
|
||||
bcrypt is not available on this system. TYPO3 password storage not only requires bcrypt itself,
|
||||
but also sha384 to be available to use this algorithm. One of these or both are missing.
|
||||
bcrypt is also used as a fallback if Argon2id or Argon2i are not available.
|
||||
Reach out to your hoster to fix these issues and prefer installation of Argon2id or Argon2i.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-custom"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
disabled="disabled"
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-custom" class="form-check-label">
|
||||
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>Custom password hash settings. This interface does not allow modification of the values, they are just shown.
|
||||
Configuring custom hash settings is for advanced users who know exactly what they are doing. Refer to the
|
||||
core <be:link.documentation identifier="t3coreapi:password-hashing" class="text-decoration-underline">documentation</be:link.documentation> for details.</p>
|
||||
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-6 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
|
||||
<div class="col-sm-6">
|
||||
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
|
||||
<input
|
||||
id="{feature.name}{preset.name}{configurationKey}"
|
||||
type="text"
|
||||
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
|
||||
value="{configuration.value}"
|
||||
class="form-control t3js-custom-preset"
|
||||
data-radio="t3-install-tool-configuration-passwordHashing-custom"
|
||||
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-pbkdf2"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-pbkdf2" class="form-check-label">
|
||||
<strong>PBKDF2</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
PBKDF2 is a key derivation function recommended by IETF in RFC 8018 as part of the PKCS series, even
|
||||
though newer password hashing functions such as Argon2id or Argon2i are designed to address weaknesses of PBKDF2.
|
||||
It could be a preferred password hash algorithm if storing passwords in a FIPS compliant way is necessary.
|
||||
Usually, selecting Argon2id or Argon2i if available as hash algorithm is ideal.
|
||||
</f:then>
|
||||
<f:else>
|
||||
PBKDF2 is not available on this system. This is very uncommon. If Argon2id, Argon2i and bcrypt are also not available,
|
||||
you should reach out to your hoster to fix this as soon as possible.
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
|
||||
<div class="form-check">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input"
|
||||
id="t3-install-tool-configuration-passwordHashing-phpass"
|
||||
name="install[values][{feature.name}][enable]"
|
||||
value="{preset.name}"
|
||||
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
|
||||
{f:if(condition: preset.isActive, then:'checked="checked"')}
|
||||
/>
|
||||
<label for="t3-install-tool-configuration-passwordHashing-phpass" class="form-check-label">
|
||||
<strong>phpass</strong> {f:if(condition: preset.isActive, then:' [Active]')}
|
||||
</label>
|
||||
</div>
|
||||
<p>
|
||||
<f:if condition="{preset.isAvailable}">
|
||||
<f:then>
|
||||
In almost all cases, a modern hash algorithm like Argon2id or Argon2i should be preferred.
|
||||
phpass is a portable public domain password hashing framework for use in PHP applications since 2005.
|
||||
The implementation should work on almost all PHP builds. It might be a suitable password storage hash
|
||||
method in seldom cases if third party systems must use the same password hash on a low database level
|
||||
and no sane different authentication service can be used for whatever reason.
|
||||
</f:then>
|
||||
<f:else>
|
||||
That's funny: phpass is always available!
|
||||
</f:else>
|
||||
</f:if>
|
||||
</p>
|
||||
</f:be.infobox>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user