TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:if condition="!{isLocked}">
|
||||
<f:then>
|
||||
<div class="form-group">
|
||||
<div class="form-field-item">
|
||||
<div class="form-control-wrap">
|
||||
<div class="form-control-holder">
|
||||
<input type="text" inputmode="numeric" id="recoveryCode" class="form-control input-login" name="rc" value="" autofocus="autofocus" autocomplete="one-time-code" required="required" maxlength="8" minlength="8" pattern="[0-9]+" aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:auth.recoveryCodes.inputLabel')}" placeholder="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:auth.recoveryCodes.inputLabel')}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<p>
|
||||
<core:icon identifier="actions-lock"/>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:locked"/>
|
||||
</p>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,80 @@
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.head"/>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{name}">
|
||||
<f:then>
|
||||
{name}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<input type="text" id="name" name="name" value="" class="form-control" placeholder="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.nameInputPlaceholder')}"/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.recoveryCodesLeft"/>
|
||||
</td>
|
||||
<td>
|
||||
{amountOfCodesLeft}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUsed"/>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{lastUsed}">
|
||||
<f:then>{lastUsed}</f:then>
|
||||
<f:else><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUsed.default"/></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<f:if condition="{updated}">
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUpdated"/>
|
||||
</td>
|
||||
<td>
|
||||
{updated}
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<h3><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.regenerate"/></h3>
|
||||
<p><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.regenerate.description" arguments="{0: amountOfCodesLeft}"/></p>
|
||||
<f:comment>
|
||||
TODO: The following should be a button which directly triggers a form submit
|
||||
with the information to regenerate the recovery codes saved in some hidden field.
|
||||
</f:comment>
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" name="regenerateCodes" id="regenerateCodes" class="form-check-input" value="1" />
|
||||
<label class="form-check-label" for="regenerateCodes">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.regenerate.inputLabel"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
<fieldset class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3">
|
||||
<label for="recoveryCodes" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.1"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.recoveryCodes.InputLabel"/>
|
||||
</label>
|
||||
<div class="form-field-item">
|
||||
<span id="recoveryCodesHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.recoveryCodes.InputHelp"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<input type="hidden" id="recoveryCodes" value="{recoveryCodes}" name="recoveryCodes" />
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<pre><code>{recoveryCodes}</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<f:be.link
|
||||
route="mfa"
|
||||
parameters="{action: 'setup', identifier: 'recovery-codes'}"
|
||||
class="btn btn-default btn-sm"
|
||||
title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.recoveryCodes.reloadTitle')}"
|
||||
>
|
||||
<core:icon identifier="actions-refresh" />
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.recoveryCodes.reloadLabel"/>
|
||||
</f:be.link>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="mb-3">
|
||||
<label for="name" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.2"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.name.label"/>
|
||||
</label>
|
||||
<div class=form-field-item">
|
||||
<span id="nameHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.name.help"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<input type="text" id="name" name="name" value="" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="checksum" value="{checksum}"/>
|
||||
</fieldset>
|
||||
@@ -0,0 +1,27 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:if condition="!{isLocked}">
|
||||
<f:then>
|
||||
<div class="form-group">
|
||||
<div class="form-field-item">
|
||||
<div class="form-control-wrap">
|
||||
<div class="form-control-holder">
|
||||
<label class="form-label" for="totp"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:auth.totp.inputLabel" /></label>
|
||||
<input type="text" inputmode="numeric" id="totp" class="form-control input-login" name="totp" value="" autofocus="autofocus" autocomplete="one-time-code" required="required" maxlength="6" minlength="6" pattern="[0-9]+" aria-label="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:auth.totp.inputLabel')}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<p>
|
||||
<core:icon identifier="actions-lock"/>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:locked"/>
|
||||
</p>
|
||||
</f:else>
|
||||
</f:if>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,53 @@
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="table-fit">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.head"/>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{name}">
|
||||
<f:then>
|
||||
{name}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<input type="text" id="name" name="name" value="" class="form-control" placeholder="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.nameInputPlaceholder')}"/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUsed"/>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{lastUsed}">
|
||||
<f:then>{lastUsed}</f:then>
|
||||
<f:else><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUsed.default"/></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
<f:if condition="{updated}">
|
||||
<tr>
|
||||
<td>
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:edit.table.lastUpdated"/>
|
||||
</td>
|
||||
<td>
|
||||
{updated}
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,79 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:asset.module identifier="@typo3/core/authentication/mfa-provider/totp.js"/>
|
||||
|
||||
<fieldset class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="mt-3">
|
||||
<label for="qr-code" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.1a"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.qrCode.label"/>
|
||||
</label>
|
||||
<div class="form-field-item">
|
||||
<span id="qrCodeHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.qrCode.help"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<div id="qr-code" class="border float-start">{qrCode -> f:format.raw()}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="mt-3 mb-3">
|
||||
<label for="secret" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.1b"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.secret.label"/>
|
||||
</label>
|
||||
<div class="form-field-item">
|
||||
<span id="secretHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.secret.help"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<div class="input-group">
|
||||
<input type="text" id="secret" name="secret" value="{secret}" readonly="readonly" class="form-control"/>
|
||||
<typo3-mfa-totp-url-info-button
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.totpAuthUrlButton.title')}"
|
||||
data-url="{totpAuthUrl}"
|
||||
data-title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.totpAuthUrlModal.title')}"
|
||||
data-description="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.totpAuthUrlModal.description')}"
|
||||
data-button-ok="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.totpAuthUrlModal.ok')}">
|
||||
<core:icon identifier="actions-info"/>
|
||||
</typo3-mfa-totp-url-info-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="name" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.2"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.name.label"/>
|
||||
</label>
|
||||
<div class="form-field-item">
|
||||
<span id="nameHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.name.help"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<input type="text" id="name" name="name" value="" class="form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="totp" class="form-label">
|
||||
<span class="badge badge-primary"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:setup.step.3"/></span> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:totpInputLabel"/>
|
||||
</label>
|
||||
<div class="form-field-item">
|
||||
<span id="totpHelp" class="text-variant">
|
||||
<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_mfa_provider.xlf:totpInputHelp"/>
|
||||
</span>
|
||||
<div class="form-control-wrap mt-1">
|
||||
<input type="text" id="totp" name="totp" value="" autocomplete="one-time-code" required="required" class="form-control" maxlength="6" minlength="6" pattern="[0-9]+"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="checksum" value="{checksum}"/>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<f:layout name="SystemEmail" />
|
||||
<f:section name="Title">{headline}</f:section>
|
||||
<f:section name="Main">
|
||||
<f:if condition="{introduction}">
|
||||
<h4>{introduction}</h4>
|
||||
</f:if>
|
||||
<p>{content}</p>
|
||||
</f:section>
|
||||
@@ -0,0 +1,5 @@
|
||||
<f:layout name="SystemEmail" />
|
||||
<f:section name="Title">{headline}</f:section>
|
||||
<f:section name="Main">{introduction}
|
||||
|
||||
{content}</f:section>
|
||||
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="noindex, follow">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{title}</title>
|
||||
<style nonce="{f:security.nonce(directive: 'style-src-elem')}"><f:format.raw>
|
||||
body {
|
||||
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212121;
|
||||
background-color: #f2f2f2;
|
||||
display: flex;
|
||||
margin: 0;
|
||||
padding: 2rem;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
min-height: 100dvh;
|
||||
}
|
||||
*,:after,:before {
|
||||
box-sizing: border-box
|
||||
}
|
||||
h1,p {
|
||||
margin-top: 0
|
||||
}
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: inherit
|
||||
}
|
||||
p {
|
||||
line-height: 1.5;
|
||||
margin-bottom: .5rem
|
||||
}
|
||||
.typo3-error-page-container {
|
||||
max-width: 600px;
|
||||
text-align: center
|
||||
}
|
||||
.typo3-error-page-statuscode {
|
||||
font-size: calc(6rem + 2vw);
|
||||
font-weight: 600;
|
||||
line-height: 1;
|
||||
margin-bottom: .5rem
|
||||
}
|
||||
.typo3-error-page-title {
|
||||
font-size: calc(1.5rem + .75vw);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
.typo3-error-page-footer {
|
||||
margin-top: 4rem
|
||||
}
|
||||
.typo3-error-page-logo {
|
||||
width: 6rem;
|
||||
margin: 0 auto;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
.typo3-error-page-copyright {
|
||||
font-size: .75rem;
|
||||
opacity: .75
|
||||
}
|
||||
.typo3-error-page-copyright a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-weight: 600
|
||||
}
|
||||
</f:format.raw></style>
|
||||
</head>
|
||||
<body class="typo3-error-page">
|
||||
|
||||
<div class="typo3-error-page-container">
|
||||
<f:if condition="{httpStatusCode}"><div class="typo3-error-page-statuscode">
|
||||
{httpStatusCode}
|
||||
</div></f:if>
|
||||
<h1 class="typo3-error-page-title">{title}</h1>
|
||||
<p class="typo3-error-page-message">{message}</p>
|
||||
<f:if condition="{errorCode} > 0">
|
||||
<p class="typo3-error-page-message-help">More information regarding this error might be available <a href="{errorCodeUrlPrefix}{errorCode}" target="_blank" rel="noreferrer">online</a>.</p>
|
||||
</f:if>
|
||||
<p class="typo3-error-page-requestid">Request: {requestId}</p>
|
||||
<div class="typo3-error-page-footer">
|
||||
<svg class="typo3-error-page-logo" alt="TYPO3 logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 484 130"><path fill="#FF8700" d="M96.1 88.8c-1.9.6-3.4.8-5.4.8-16.2 0-39.9-56.5-39.9-75.3 0-6.9 1.6-9.2 4-11.2C35 5.3 11.2 12.6 3.6 21.8 2 24.1 1 27.7 1 32.4c0 29.4 31.3 96 53.4 96 10.3 0 27.5-16.9 41.7-39.6M85.8 1c20.4 0 40.9 3.3 40.9 14.8 0 23.4-14.9 51.8-22.4 51.8-13.5 0-30.4-37.6-30.4-56.4C73.9 2.7 77.2 1 85.8 1"/><path d="M195.3 42.5v86h-12v-86H162V32.1h54.4v10.5l-21.1-.1zm63.1 41.2v44.8H246V83.7L221.3 32h13.2l18.2 40.1L270.9 32h12.5l-25 51.7zm63.1 8.4h-11.6v36.4h-12V32.1s11.8-1 23.3-1c20.9 0 27 13 27 29.9 0 20.9-7.2 31.1-26.7 31.1zm1.4-51.1c-7.6 0-13 .8-13 .8V82h13c7.7 0 13.1-5.1 13.1-20.1-.1-13.7-3.4-20.9-13.1-20.9zm70 88.5c-22.7 0-28.8-16.5-28.8-50.3 0-32.4 6.1-48.1 28.8-48.1 22.7 0 28.8 15.7 28.8 48.1 0 33.7-6.1 50.3-28.8 50.3zm0-88.4c-12.4 0-16.5 8.4-16.5 38.7 0 29.6 4.1 39.5 16.5 39.5s16.5-9.9 16.5-39.5c0-30.2-4.1-38.7-16.5-38.7zm65.8 88.4c-6.7 0-16.8-2.1-18.1-2.3v-10.3c3.3.7 11.9 2.2 17.9 2.2 7 0 11.6-5.8 11.6-16.4 0-12.8-2.1-19.2-11.9-19.2H447V73.4h9.9c11.2 0 11.7-11.4 11.7-16.9 0-10.9-3.4-15.3-10.3-15.3-6.1 0-13 1.5-17 2.3V33.4c1.5-.3 9.6-2.3 16.7-2.3 14.2 0 22.3 6.1 22.3 26.6 0 9.4-2.9 17.6-10.5 20 9 1.2 12.1 10.1 12.1 23.6.1 20.5-7.9 28.2-23.2 28.2z"/></svg>
|
||||
<div class="typo3-error-page-copyright">
|
||||
TYPO3 is an open source content management system. To maintain the quality of the system and to improve it, please help us by <a href="{donationUrl}" target="_blank" rel="noreferrer">donating</a>.
|
||||
Copyright © {copyrightYear} Kasper Skårhøj. Extensions are copyright of their respective owners. Go to <a href="https://typo3.org/" target="_blank" rel="noreferrer">typo3.org</a> for details.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,29 @@
|
||||
###XMLPROLOG_DOCTYPE###
|
||||
###HTMLTAG###
|
||||
###HEADTAG###
|
||||
<meta charset="utf-8"###TRAILING_SLASH_FOR_SELF_CLOSING_TAG###>
|
||||
|
||||
###INLINECOMMENT###
|
||||
|
||||
###SHORTCUT###
|
||||
###TITLE###
|
||||
###META###
|
||||
|
||||
###CSS_LIBS###
|
||||
###CSS_INCLUDE###
|
||||
###CSS_INLINE###
|
||||
|
||||
###JS_LIBS###
|
||||
###JS_INCLUDE###
|
||||
###JS_INLINE###
|
||||
|
||||
###HEADERDATA###
|
||||
|
||||
</head>
|
||||
###BODY###
|
||||
###JS_LIBS_FOOTER###
|
||||
###JS_INCLUDE_FOOTER###
|
||||
###JS_INLINE_FOOTER###
|
||||
###FOOTERDATA###
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user