first commit

This commit is contained in:
salam committed 2026-10-19 08:18:39 +02:00
commit 1218dd1517
12716 files changed
+989233

No files matched your search

@@ -0,0 +1,15 @@
# This file restricts access to the fileadmin/_temp_ directory. It is
# meant to protect temporary files which could contain sensible
# information. Please do not touch.
# Apache < 2.3
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
# Apache ≥ 2.3
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
@@ -0,0 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv=Refresh Content="0; Url=/"/>
</head>
</html>
@@ -0,0 +1,15 @@
# This file restricts access to the fileadmin/user_upload/_import_export_ directory. It is
# meant to protect temporary files which could contain sensible
# information. Please do not touch.
# Apache < 2.3
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
# Apache ≥ 2.3
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
@@ -0,0 +1,33 @@
# This file applies Content-Security-Policy (CSP) HTTP headers
# to directories containing (user uploaded) resources like
# /fileadmin/ or /uploads/
<IfModule mod_headers.c>
# matching requested *.pdf files only (strict rules block Safari showing PDF documents)
<FilesMatch "\.pdf$">
Header set Content-Security-Policy "default-src 'self' 'unsafe-inline'; script-src 'none'; object-src 'self'; plugin-types application/pdf;"
</FilesMatch>
# matching anything else, using negative lookbehind pattern
<FilesMatch "(?<!\.pdf)$">
Header set Content-Security-Policy "default-src 'self'; script-src 'none'; style-src 'none'; object-src 'none';"
</FilesMatch>
# =================================================================
# Variations to send CSP header only when it has not be set before.
# Adjust all `Header set` instructions above
# Header set Content-Security-Policy "<directives>"
# with substitutes shown below
#
# -----------------------------------------------------------------
# a) for Apache 2.4 (having `setifempty`)
# -----------------------------------------------------------------
# Header setifempty Content-Security-Policy "<directives>"
#
# -----------------------------------------------------------------
# b) for Apache 2.2 (using fallbacks)
# -----------------------------------------------------------------
# Header append Content-Security-Policy ""
# Header edit Content-Security-Policy "^$" "<directives>"
#
# =================================================================
</IfModule>
@@ -0,0 +1,376 @@
#####
#
# Example .htaccess file for TYPO3 CMS - for use with Apache Webserver
#
# This file includes settings for the following configuration options:
#
# - Compression
# - Caching
# - MIME types
# - Cross Origin requests
# - Rewriting and Access
# - Miscellaneous
# - PHP optimisation
#
# If you want to use it, you have to copy it to the root folder of your TYPO3 installation (if its
# not there already) and rename it to '.htaccess'. To make .htaccess files work, you might need to
# adjust the 'AllowOverride' directive in your Apache configuration file.
#
# IMPORTANT: You may need to change this file depending on your TYPO3 installation!
# Consider adding this file's content to your webserver's configuration directly for speed improvement
#
# Lots of the options are taken from https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
#
####
### Begin: Compression ###
# Compressing resource files will save bandwidth and so improve loading speed especially for users
# with slower internet connections. TYPO3 can compress the .js and .css files for you.
# *) Uncomment the following lines and
# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
# config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
#<FilesMatch "\.js\.gzip$">
# AddType "text/javascript" .gzip
#</FilesMatch>
#<FilesMatch "\.css\.gzip$">
# AddType "text/css" .gzip
#</FilesMatch>
#AddEncoding gzip .gzip
<IfModule mod_deflate.c>
# Force compression for mangled `Accept-Encoding` request headers
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following media types.
#
# (!) For Apache versions below version 2.3.7 you don't need to
# enable `mod_filter` and can remove the `<IfModule mod_filter.c>`
# and `</IfModule>` lines as `AddOutputFilterByType` is still in
# the core directives.
#
# https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/ld+json \
application/manifest+json \
application/rdf+xml \
application/rss+xml \
application/schema+json \
application/vnd.geo+json \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/x-javascript \
application/x-web-app-manifest+json \
application/xhtml+xml \
application/xml \
font/eot \
font/opentype \
image/bmp \
image/svg+xml \
image/vnd.microsoft.icon \
image/x-icon \
text/cache-manifest \
text/css \
text/html \
text/javascript \
text/plain \
text/vcard \
text/vnd.rim.location.xloc \
text/vtt \
text/x-component \
text/x-cross-domain-policy \
text/xml
</IfModule>
<IfModule mod_mime.c>
AddEncoding gzip svgz
</IfModule>
</IfModule>
### End: Compression ###
### Begin: Browser caching of resource files ###
# This affects Frontend and Backend and increases performance.
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/schema+json "access plus 0 seconds"
ExpiresByType application/vnd.geo+json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType image/vnd.microsoft.icon "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 week"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType application/manifest+json "access plus 1 week"
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/bmp "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType image/webp "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rdf+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType font/eot "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType font/woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType text/x-cross-domain-policy "access plus 1 week"
</IfModule>
### End: Browser caching of resource files ###
### Begin: MIME types ###
# Proper MIME types for all files
<IfModule mod_mime.c>
# Security configuration
RemoveType .html .htm
<FilesMatch ".+\.html?$">
AddType text/html .html .htm
</FilesMatch>
RemoveType .svg .svgz
<FilesMatch ".+\.svgz?$">
AddType image/svg+xml .svg .svgz
</FilesMatch>
# Data interchange
AddType application/atom+xml atom
AddType application/json json map topojson
AddType application/ld+json jsonld
AddType application/rss+xml rss
AddType application/vnd.geo+json geojson
AddType application/xml rdf xml
# JavaScript
AddType application/javascript js
# Manifest files
AddType application/manifest+json webmanifest
AddType application/x-web-app-manifest+json webapp
AddType text/cache-manifest appcache
# Media files
AddType audio/mp4 f4a f4b m4a
AddType audio/ogg oga ogg opus
AddType image/bmp bmp
AddType image/webp webp
AddType video/mp4 f4v f4p m4v mp4
AddType video/ogg ogv
AddType video/webm webm
AddType video/x-flv flv
AddType image/x-icon cur ico
# Web fonts
AddType application/font-woff woff
AddType application/font-woff2 woff2
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttc ttf
AddType font/opentype otf
# Other
AddType application/octet-stream safariextz
AddType application/x-bb-appworld bbaw
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType text/vcard vcard vcf
AddType text/vnd.rim.location.xloc xloc
AddType text/vtt vtt
AddType text/x-component htc
</IfModule>
# UTF-8 encoding
AddDefaultCharset utf-8
<IfModule mod_mime.c>
AddCharset utf-8 .atom .css .js .json .manifest .rdf .rss .vtt .webapp .webmanifest .xml
</IfModule>
### End: MIME types ###
### Begin: Cross Origin ###
# Send the CORS header for images when browsers request it.
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
<FilesMatch "\.(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
# Allow cross-origin access to web fonts.
<IfModule mod_headers.c>
<FilesMatch "\.(eot|otf|tt[cf]|woff2?)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
### End: Cross Origin ###
### Begin: Rewriting and Access ###
# You need rewriting, if you use a URL-Rewriting extension (RealURL, CoolUri).
<IfModule mod_rewrite.c>
# Enable URL rewriting
RewriteEngine On
# Store the current location in an environment variable CWD to use
# mod_rewrite in .htaccess files without knowing the RewriteBase
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
RewriteRule ^.*$ - [E=CWD:%2]
# Rules to set ApplicationContext based on hostname
#RewriteCond %{HTTP_HOST} ^dev\.example\.com$
#RewriteRule .? - [E=TYPO3_CONTEXT:Development]
#RewriteCond %{HTTP_HOST} ^staging\.example\.com$
#RewriteRule .? - [E=TYPO3_CONTEXT:Production/Staging]
#RewriteCond %{HTTP_HOST} ^www\.example\.com$
#RewriteRule .? - [E=TYPO3_CONTEXT:Production]
# Rule for versioned static files, configured through:
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
# IMPORTANT: This rule has to be the very first RewriteCond in order to work!
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ %{ENV:CWD}$1.$3 [L]
# Access block for folders
RewriteRule _(?:recycler|temp)_/ - [F]
RewriteRule fileadmin/templates/.*\.(?:txt|ts)$ - [F]
RewriteRule ^(?:vendor|typo3_src|typo3temp/var) - [F]
RewriteRule (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ - [F]
# Block access to all hidden files and directories with the exception of
# the visible content from within the `/.well-known/` hidden directory (RFC 5785).
RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC]
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule (?:^|/)\. - [F]
# Stop rewrite processing, if we are in the typo3/ directory or any other known directory
# NOTE: Add your additional local storages here
RewriteRule ^(?:typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/) - [L]
# If the file/symlink/directory does not exist => Redirect to index.php.
# For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
</IfModule>
# Access block for files
# Apache < 2.3
<IfModule !mod_authz_core.c>
<FilesMatch "(?i:^\.|^#.*#|^(?:ChangeLog|ToDo|Readme|License)(?:\.md|\.txt)?|^composer\.(?:json|lock)|^ext_conf_template\.txt|^ext_typoscript_constants\.txt|^ext_typoscript_setup\.txt|flexform[^.]*\.xml|locallang[^.]*\.(?:xml|xlf)|\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql(?:\..*)?|sqlite(?:\..*)?|sw[op]|git.*|rc)|.*~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
</IfModule>
# Apache ≥ 2.3
<IfModule mod_authz_core.c>
<If "%{REQUEST_URI} =~ m#(?i:/\.|/\x23.*\x23|/(?:ChangeLog|ToDo|Readme|License)(?:\.md|\.txt)?|/composer\.(?:json|lock)|/ext_conf_template\.txt|/ext_typoscript_constants\.txt|/ext_typoscript_setup\.txt|flexform[^.]*\.xml|locallang[^.]*\.(?:xml|xlf)|\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql(?:\..*)?|sqlite(?:\..*)?|sw[op]|git.*|rc)|.*~)$#">
Require all denied
</If>
</IfModule>
# Block access to vcs directories
<IfModule mod_alias.c>
RedirectMatch 404 /\.(?:git|svn|hg)/
</IfModule>
### End: Rewriting and Access ###
### Begin: Miscellaneous ###
# 404 error prevention for non-existing redirected folders
Options -MultiViews
# Make sure that directory listings are disabled.
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
<IfModule mod_headers.c>
# Force IE to render pages in the highest available mode
Header set X-UA-Compatible "IE=edge"
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svgz?|ttf|vcf|webapp|webm|webp|woff2?|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
# Reducing MIME type security risks
Header set X-Content-Type-Options "nosniff"
</IfModule>
# ETag removal
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
### End: Miscellaneous ###
# Add your own rules here.
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
<add name="Cache-Control" value="Public" />
</customHeaders>
</httpProtocol>
<rewrite>
<rules>
<clear />
<rule name="TYPO3 - Block access to composer files">
<match url="composer\.(?:json|lock)" ignoreCase="true" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to flexform files">
<match url="flexform[^.]*\.xml" ignoreCase="true" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to language files">
<match url="locallang[^.]*\.(?:xml|xlf)$" ignoreCase="true" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to static typoscript files">
<match url="ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt" ignoreCase="true" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to miscellaneous protected files">
<match url="/.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$" ignoreCase="true" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to recycler and temporary directories">
<match url="_(?:recycler|temp)_/" ignoreCase="false" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to configuration files stored in fileadmin">
<match url="fileadmin/(?:templates)/.*\.(?:txt|ts)$" ignoreCase="false" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to libraries, source and temporary compiled data">
<match url="^(?:vendor|typo3_src|typo3temp/var)" ignoreCase="false" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Block access to protected extension directories">
<match url="(?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/" ignoreCase="false" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="TYPO3 - Static File Directories" stopProcessing="true">
<match url="^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php|favicon\.ico)$" />
<action type="None" />
</rule>
<rule name="TYPO3 - Version Number in File Name (if set)" stopProcessing="true">
<match url="^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.{R:3}" />
</rule>
<rule name="TYPO3 - If the file/directory does not exist => Redirect to index.php." stopProcessing="true">
<match url="^.*$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="8.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
@@ -0,0 +1,15 @@
# This file restricts access to the typo3temp/var/ directory. It is
# meant to protect temporary files which could contain sensible
# information. Please do not touch.
# Apache < 2.3
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
# Apache ≥ 2.3
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
@@ -0,0 +1,137 @@
*******************************************************************************
Bitstream Vera Sans
"vera.ttf" - A "verdana"-look-alike font. If you want to use the real Verdana
font you should upload the verdana-normal ttf file from your Windows system
(fonts/verdana.ttf).
*******************************************************************************
This file was downloaded from <http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/>.
Copyright Holder: Bitstream, Inc.
License (vera.ttf):
Bitstream Vera Fonts Copyright
The fonts have a generous copyright, allowing derivative works (as
long as "Bitstream" or "Vera" are not in the names), and full
redistribution (so long as they are not *sold* by themselves). They
can be be bundled, redistributed and sold with any software.
The fonts are distributed under the following copyright:
Copyright
=========
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
Vera is a trademark of Bitstream, Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the fonts accompanying this license ("Fonts") and associated
documentation files (the "Font Software"), to reproduce and distribute
the Font Software, including without limitation the rights to use,
copy, merge, publish, distribute, and/or sell copies of the Font
Software, and to permit persons to whom the Font Software is furnished
to do so, subject to the following conditions:
The above copyright and trademark notices and this permission notice
shall be included in all copies of one or more of the Font Software
typefaces.
The Font Software may be modified, altered, or added to, and in
particular the designs of glyphs or characters in the Fonts may be
modified and additional glyphs or characters may be added to the
Fonts, only if the fonts are renamed to names not containing either
the words "Bitstream" or the word "Vera".
This License becomes null and void to the extent applicable to Fonts
or Font Software that has been modified and is distributed under the
"Bitstream Vera" names.
The Font Software may be sold as part of a larger software package but
no copy of one or more of the Font Software typefaces may be sold by
itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Except as contained in this notice, the names of Gnome, the Gnome
Foundation, and Bitstream Inc., shall not be used in advertising or
otherwise to promote the sale, use or other dealings in this Font
Software without prior written authorization from the Gnome Foundation
or Bitstream Inc., respectively. For further information, contact:
fonts at gnome dot org.
Copyright FAQ
=============
1. I don't understand the resale restriction... What gives?
Bitstream is giving away these fonts, but wishes to ensure its
competitors can't just drop the fonts as is into a font sale system
and sell them as is. It seems fair that if Bitstream can't make money
from the Bitstream Vera fonts, their competitors should not be able to
do so either. You can sell the fonts as part of any software package,
however.
2. I want to package these fonts separately for distribution and
sale as part of a larger software package or system. Can I do so?
Yes. A RPM or Debian package is a "larger software package" to begin
with, and you aren't selling them independently by themselves.
See 1. above.
3. Are derivative works allowed?
Yes!
4. Can I change or add to the font(s)?
Yes, but you must change the name(s) of the font(s).
5. Under what terms are derivative works allowed?
You must change the name(s) of the fonts. This is to ensure the
quality of the fonts, both to protect Bitstream and Gnome. We want to
ensure that if an application has opened a font specifically of these
names, it gets what it expects (though of course, using fontconfig,
substitutions could still could have occurred during font
opening). You must include the Bitstream copyright. Additional
copyrights can be added, as per copyright law. Happy Font Hacking!
6. If I have improvements for Bitstream Vera, is it possible they might get
adopted in future versions?
Yes. The contract between the Gnome Foundation and Bitstream has
provisions for working with Bitstream to ensure quality additions to
the Bitstream Vera font family. Please contact us if you have such
additions. Note, that in general, we will want such additions for the
entire family, not just a single font, and that you'll have to keep
both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add
glyphs to the font, they must be stylistically in keeping with Vera's
design. Vera cannot become a "ransom note" font. Jim Lyles will be
providing a document describing the design elements used in Vera, as a
guide and aid for people interested in contributing to Vera.
7. I want to sell a software package that uses these fonts: Can I do so?
Sure. Bundle the fonts with your software and sell your software
with the fonts. That is the intent of the copyright.
8. If applications have built the names "Bitstream Vera" into them,
can I override this somehow to use fonts of my choosing?
This depends on exact details of the software. Most open source
systems and software (e.g., Gnome, KDE, etc.) are now converting to
use fontconfig (see www.fontconfig.org) to handle font configuration,
selection and substitution; it has provisions for overriding font
names and substituting alternatives. An example is provided by the
supplied local.conf file, which chooses the family Bitstream Vera for
"sans", "serif" and "monospace". Other software (e.g., the XFree86
core server) has other mechanisms for font substitution.
Binary file not shown.
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1415814842" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/BackendModule.xlf" date="2011-10-17T20:22:33Z" product-name="install">
<header/>
<body>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Install&#160;Tool</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>Provides a simple link to the Install&#160;Tool. Notice the Install&#160;Tool (in typo3/install/) must be enabled.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Install</source>
</trans-unit>
<trans-unit id="confirmUnlockInstallToolTitle" resname="confirmUnlockInstallToolTitle">
<source>The Install&#160;Tool is locked</source>
</trans-unit>
<trans-unit id="confirmUnlockInstallToolMessage" resname="confirmUnlockInstallToolMessage" xml:space="preserve">
<source>&lt;p&gt;For security reasons the Install&#160;Tool is locked by default.&lt;/p&gt;
&lt;p&gt;To enable the Install&#160;Tool, the file &lt;strong&gt;ENABLE_INSTALL_TOOL&lt;/strong&gt; must be created in the directory &lt;strong&gt;typo3conf/&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Just click the button below, the file will be created for you and the Install&#160;Tool will be unlocked.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security note: &lt;/strong&gt;When you are finished with your work, please log out of the Install&#160;Tool. Otherwise TYPO3 will automatically lock the Install&#160;Tool after one hour.&lt;/p&gt;
</source>
</trans-unit>
<trans-unit id="confirmUnlockInstallToolButton" resname="confirmUnlockInstallToolButton">
<source>Unlock the Install&amp;#160;Tool</source>
</trans-unit>
<trans-unit id="cancel" resname="cancel">
<source>Cancel</source>
</trans-unit>
<trans-unit id="confirm" resname="confirm">
<source>Confirm</source>
</trans-unit>
<trans-unit id="sudoUserPasswordConfirm" resname="sudoUserPasswordConfirm">
<source>Confirm with user password</source>
</trans-unit>
<trans-unit id="sudoInstallToolPasswordConfirm" resname="sudoInstallToolPasswordConfirm">
<source>Confirm with Install Tool password</source>
</trans-unit>
<trans-unit id="sudoPasswordInvalid" resname="sudoPasswordConfirm">
<source>Invalid password</source>
</trans-unit>
<trans-unit id="sudoUserPasswordMode" resname="sudoUserPasswordMode">
<source>Use user password instead</source>
</trans-unit>
<trans-unit id="sudoInstallToolPasswordMode" resname="sudoInstallToolPasswordMode">
<source>Use Install Tool password instead</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1499810435" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/ModuleInstallEnvironment.xlf" date="2017-07-11T22:00:35Z" product-name="environment">
<header/>
<body>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Environment</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>Provides a simple link to the Install&#160;Tool. Notice the Install&#160;Tool (in typo3/install/) must be enabled.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Environment</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1499810638" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/ModuleInstallMaintenance.xlf" date="2017-07-11T22:03:58Z" product-name="maintenance">
<header/>
<body>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Maintenance</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>Provides a simple link to the Install&#160;Tool. Notice the Install&#160;Tool (in typo3/install/) must be enabled.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Maintenance</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1499810656" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/ModuleInstallSettings.xlf" date="2017-07-11T22:04:16Z" product-name="settings">
<header/>
<body>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Settings</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>Provides a simple link to the Install&#160;Tool. Notice the Install&#160;Tool (in typo3/install/) must be enabled.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Settings</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1499810671" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/ModuleInstallUpgrade.xlf" date="2017-07-13T22:04:31Z" product-name="upgrade">
<header/>
<body>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Upgrade</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>Provides a simple link to the Install&#160;Tool. Notice the Install&#160;Tool (in typo3/install/) must be enabled.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Upgrade</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1415814843" source-language="en" datatype="plaintext" original="EXT:install/Resources/Private/Language/Report/locallang.xlf" date="2011-10-17T20:22:33Z" product-name="install">
<header/>
<body>
<trans-unit id="environment.status.title" resname="environment.status.title">
<source>System environment check</source>
</trans-unit>
<trans-unit id="environment.status.value" resname="environment.status.value">
<source>%1$s Test(s)</source>
</trans-unit>
<trans-unit id="environment.status.message.error" resname="environment.status.message.error">
<source>The system environment check returned errors. Those errors will affect the functionality and stability of your TYPO3 CMS instance. Please check the install tool "System environment" for all details.</source>
</trans-unit>
<trans-unit id="environment.status.message.warning" resname="environment.status.message.warning">
<source>The system environment check returned warnings. Those warnings might have a negative effect on the functionality and stability of your TYPO3 CMS instance. Please check the install tool "System environment" for all details.</source>
</trans-unit>
<trans-unit id="environment.status.message.notice" resname="environment.status.message.notice">
<source>The system environment check returned notices. Those should not affect the functionality and stability of your TYPO3 CMS instance. Please check the install tool "System environment" for all details.</source>
</trans-unit>
<trans-unit id="environment.status.message.ok" resname="environment.status.message.ok" xml:space="preserve">
<source />
</trans-unit>
<trans-unit id="environment.status.message.info" resname="environment.status.message.info" xml:space="preserve">
<source />
</trans-unit>
<trans-unit id="status_fileSystem" resname="status_fileSystem">
<source>File System</source>
</trans-unit>
<trans-unit id="status_writable" resname="status_writable">
<source>Writable</source>
</trans-unit>
<trans-unit id="status_missingDirectory" resname="status_missingDirectory">
<source>Required directory missing</source>
</trans-unit>
<trans-unit id="status_nonExistingDirectory" resname="status_nonExistingDirectory">
<source>Directory not existing</source>
</trans-unit>
<trans-unit id="status_recommendedWritableDirectory" resname="status_recommendedWritableDirectory">
<source>Directory should be writable</source>
</trans-unit>
<trans-unit id="status_requiredWritableDirectory" resname="status_requiredWritableDirectory">
<source>Directory not writable</source>
</trans-unit>
<trans-unit id="status_directoryDoesNotExist" resname="status_directoryDoesNotExist">
<source>%s does not exist.</source>
</trans-unit>
<trans-unit id="status_directoryDoesNotExistCouldNotCreate" resname="status_directoryDoesNotExistCouldNotCreate">
<source>%s does not exist and could not be created.</source>
</trans-unit>
<trans-unit id="status_directoryShouldAlsoBeWritable" resname="status_directoryShouldAlsoBeWritable">
<source>Also note that it should be writable, if it did exist.</source>
</trans-unit>
<trans-unit id="status_directoryShouldBeWritable" resname="status_directoryShouldBeWritable">
<source>%s should be writable.</source>
</trans-unit>
<trans-unit id="status_directoryMustBeWritable" resname="status_directoryMustBeWritable">
<source>%s must be writable.</source>
</trans-unit>
<trans-unit id="status_remainingUpdates" resname="status_remainingUpdates">
<source>Remaining updates</source>
</trans-unit>
<trans-unit id="status_remoteFetchException" resname="status_remoteFetchException">
<source>Could not fetch version matrix of TYPO3. Maybe this instance is blocked by a firewall?</source>
</trans-unit>
<trans-unit id="status_isDevelopmentVersion" resname="status_isDevelopmentVersion">
<source>This version of TYPO3 seems to be a development version. Thus no update information exists.</source>
</trans-unit>
<trans-unit id="status_patchLevelNotFoundInReleaseMatrix" resname="status_patchLevelNotFoundInReleaseMatrix">
<source>It seems that this TYPO3 version has never been released. Thus no update information exists.</source>
</trans-unit>
<trans-unit id="status_newVersionSecurityRelevant" resname="status_newVersionSecurityRelevant">
<source>There is a new version of TYPO3 available, updating is security relevant. Please update to version %s.</source>
</trans-unit>
<trans-unit id="status_newVersion" resname="status_newVersion">
<source>There is a new version of TYPO3 available. You can update to version %s.</source>
</trans-unit>
<trans-unit id="status_elts_information" resname="status_elts_information">
<source>The currently installed TYPO3 version %s doesn't receive any community-driven updates anymore, consider subscribing to Extended Long Term Support (ELTS) releases. Get more information at %s.</source>
</trans-unit>
<trans-unit id="status_elts_download" resname="status_elts_download">
<source>Please visit %s to download the release in your ELTS area.</source>
</trans-unit>
<trans-unit id="status_elts_subscribe" resname="status_elts_subscribe">
<source>The currently installed TYPO3 version %s doesn't receive any community-driven updates anymore, consider subscribing to Extended Long Term Support (ELTS) releases. Get more information at %s.</source>
</trans-unit>
<trans-unit id="status_versionOutdated" resname="status_versionOutdated">
<source>The TYPO3 version you're using is not supported anymore. You should update to a supported version.</source>
</trans-unit>
<trans-unit id="status_noAutomaticCheck" resname="status_noAutomaticCheck">
<source>Automatic update checking failed, please check for updates manually.</source>
</trans-unit>
<trans-unit id="status_uptodate" resname="status_uptodate">
<source>Your TYPO3 version is up-to-date.</source>
</trans-unit>
<trans-unit id="status_installToolPassword" resname="status_installToolPassword">
<source>Install Tool Password</source>
</trans-unit>
<trans-unit id="status_installTool" resname="status_installTool">
<source>Install Tool</source>
</trans-unit>
<trans-unit id="status_enabledPermanently" resname="status_enabledPermanently">
<source>Enabled permanently</source>
</trans-unit>
<trans-unit id="status_enabledTemporarily" resname="status_enabledTemporarily">
<source>Enabled temporarily</source>
</trans-unit>
<trans-unit id="status_installEnabledTemporarily" resname="status_installEnabledTemporarily">
<source>The Install Tool is temporarily enabled. Delete the file "%s" when you have finished setting up TYPO3. If not used the Install Tool will be disabled automatically in %s minutes.</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="card-header">
<f:if condition="{icon}">
<div class="card-icon">
<img src="{f:uri.resource(path: icon)}" width="64" height="64" class="card-header-icon-image" />
</div>
</f:if>
<div class="card-header-body">
<f:if condition="{title}">
<h1 class="card-title">{title}</h1>
</f:if>
<f:if condition="{subtitle}">
<span class="card-subtitle">{subtitle}</span>
</f:if>
</div>
</div>
</html>
@@ -0,0 +1,16 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<li class="modulemenu-item t3js-mainmodule" data-controller="{controller}">
<a class="modulemenu-item-link" href="{i:uri.action(controller: controller)}">
<span class="modulemenu-icon modulemenu-item-icon">
<span class="t3js-icon icon icon-size-default icon-state-default">
<span class="icon-markup">
<img src="{f:uri.resource(path: 'Icons/module-install-{controller}.svg')}" width="32" height="32">
</span>
</span>
</span>
<span class="modulemenu-item-title">{label}</span>
</a>
</li>
</html>
@@ -0,0 +1,69 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat searchhit">
<div class="panel-heading" role="tab" id="heading-{extensionKey}">
<h3 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-{extensionKey}" aria-expanded="true" aria-controls="collapse-{extensionKey}" class="collapsed">
<span class="caret"></span>
<strong>{extensionData.packageInfo.packageKey}</strong>
</a>
</h3>
</div>
<div id="collapse-{extensionKey}" class="panel-collapse collapse search-item" role="tabpanel" aria-labelledby="heading-{extensionKey}">
<div class="panel-body">
<div role="tabpanel">
<ul class="nav nav-tabs" role="tablist">
<f:for each="{extensionData.configuration}" as="category" key="categoryName" iteration="iteration">
<f:if condition="{categoryName}">
<li role="presentation" class="{f:if(condition:'{iteration.isFirst}', then:'active')}">
<a class="text-capitalize" href="#{i:format.noSpace(value:'category-{extensionKey}-{categoryName}')}" aria-controls="category-{extensionKey}-{categoryName}" role="tab" data-toggle="tab">{categoryName}</a>
</li>
</f:if>
</f:for>
</ul>
<form action="#" name="configurationform" autocomplete="off" class="t3js-extensionConfiguration-form extensionConfiguration-form" data-extensionKey="{extensionKey}">
<div class="tab-content">
<f:for each="{extensionData.configuration}" as="subcategories" key="categoryName" iteration="iteration">
<f:if condition="{categoryName}">
<div role="tabpanel" class="tab-pane {f:if(condition:'{iteration.isFirst}', then:'active')}" id="{i:format.noSpace(value:'category-{extensionKey}-{categoryName}')}">
<f:for each="{subcategories}" as="subcategory">
<div class="form-section">
<f:for each="{subcategory}" as="configurationItem" iteration="itemIterator">
<f:if condition="{itemIterator.isFirst}">
<h2 class="h4 form-section-headline">{configurationItem.subcat_label}</h2>
</f:if>
<div class="form-group form-group-dashed">
<label for="em-{configurationItem.extensionKey}-{configurationItem.name}">
{configurationItem.labels.0}
</label>
<p>
{categoryName}.{configurationItem.name}
<f:if condition="{configurationItem.type} != 'user'">
<f:if condition="{configurationItem.type}">
({configurationItem.type})
</f:if>
</f:if>
</p>
<div class="form-control-wrap">
<i:form.typoScriptConstants configuration="{configurationItem}"/>
</div>
<f:if condition="{configurationItem.labels.1}">
<div class="help-block">{configurationItem.labels.1 -> f:format.nl2br()}</div>
</f:if>
</div>
</f:for>
</div>
</f:for>
</div>
</f:if>
</f:for>
</div>
<button type="submit" class="btn btn-default" name="save">Save "{extensionKey}" configuration</button>
</form>
</div>
</div>
</div>
</div>
</html>
@@ -0,0 +1,136 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat">
<div class="panel-heading" role="tab" id="heading-{sectionName}">
<h3 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-{sectionName}" aria-expanded="true" aria-controls="collapse-{sectionName}" class="collapsed">
<span class="caret"></span>
<strong>{sectionData.description}</strong> [{sectionName}]
</a>
</h3>
</div>
<div id="collapse-{sectionName}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading-{sectionName}">
<f:for each="{sectionData.items}" as="item">
<a id="{sectionName}-{item.key}"></a>
<div class="item">
<div class="item-heading">
<strong>[{sectionName}]{item.path} </strong>
<f:if condition="{item.type} == 'checkbox'">
<f:then>
=
<f:if condition="{item.value}">
<f:then>true</f:then>
<f:else>false</f:else>
</f:if>
</f:then>
<f:else>
<f:if condition="{item.value} && !{item.hideValue}">
= {item.value -> f:format.crop(maxCharacters: 40, respectWordBoundaries:0, respectHtml:0)}
</f:if>
</f:else>
</f:if>
</div>
<div class="item-body">
<f:if condition="{item.differentValueInCurrentConfiguration}">
<div class="t3js-infobox callout callout-sm callout-warning">
<div class="callout-body">
Note that <code>$GLOBALS['TYPO3_CONF_VARS']</code> currently contains a different value.
This could mean that the value is overwritten in AdditionalConfiguration.php.
</div>
</div>
</f:if>
<f:if condition="{f:count(subject: item.allowedValues)} || {item.dataType} == 'dropdown'">
<f:then>
<div class="form-group">
<span class="help-block">{item.description -> f:format.raw()}</span>
<select data-path="{sectionName}/{item.key}" class="t3-install-form-input-text form-control t3js-localConfiguration-pathValue">
<f:for each="{item.allowedValues}" key="optionKey" as="optionLabel">
<option value="{optionKey}" {f:if(condition: '{item.value} == {optionKey}', then: 'selected="selected"')}>{optionLabel} ({optionKey})</option>
</f:for>
</select>
</div>
</f:then>
<f:else>
<f:if condition="{item.type} == 'checkbox'">
<div class="checkbox">
<label>
<input
type="checkbox"
value="1"
class="t3js-localConfiguration-pathValue"
data-path="{sectionName}/{item.key}"
{f:if(condition: item.checked, then:'checked="checked"')}
/>
{item.description -> f:format.raw()}
</label>
</div>
</f:if>
<f:if condition="{item.type} == 'input'">
<div class="form-group">
<span class="help-block">{item.description -> f:format.raw()}</span>
<input
type="text"
value="{item.value}"
data-path="{sectionName}/{item.key}"
class="t3-install-form-input-text form-control t3js-localConfiguration-pathValue"
autocomplete="off"
/>
</div>
</f:if>
<f:if condition="{item.type} == 'password'">
<div class="form-group">
<span class="help-block">{item.description -> f:format.raw()}</span>
<input
type="password"
value="{item.value}"
data-path="{sectionName}/{item.key}"
class="t3-install-form-input-text form-control t3js-localConfiguration-pathValue"
autocomplete="new-password"
/>
</div>
</f:if>
<f:if condition="{item.type} == 'number'">
<div class="form-group">
<span class="help-block">{item.description -> f:format.raw()}</span>
<input
type="number"
value="{item.value}"
data-path="{sectionName}/{item.key}"
class="t3-install-form-input-text form-control t3js-localConfiguration-pathValue"
autocomplete="off"
/>
</div>
</f:if>
<f:if condition="{item.type} == 'textarea'">
<span class="help-block">{item.description -> f:format.raw()}</span>
<div class="form-group">
<textarea
rows="5"
cols="60"
data-path="{sectionName}/{item.key}"
class="form-control t3js-localConfiguration-pathValue"
autocomplete="off"
>{item.value}</textarea>
</div>
</f:if>
</f:else>
</f:if>
<f:if condition="{item.phpErrorCode}">
<div class="fieldNote">
Current PHP error code <strong>{item.value}</strong> represents:<br/>
<code>
<i:format.phpErrorCode phpErrorCode="{item.value}"/>
</code>
</div>
</f:if>
</div>
</div>
</f:for>
</div>
</div>
</html>
@@ -0,0 +1,29 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo" class="collapsed">
<span class="caret"></span>
Debug settings
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
<p>
In this panel it is possible to select a configuration preset which optimizes multiple settings
to be suited best for production or development environments.
The "Live" preset configures your TYPO3 installation for maximum performance
and suppresses debug and error messages, so that nothing is disclosed to website visitors.
The "Debug" preset enables most debug and error messages which is helpful during development.
As a third option it is possible to manually customize each setting for specific needs.
</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,34 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="1" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-context-custom"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-context-custom" class="t3-install-tool-configuration-radio-label">
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>Custom configuration mixture if no other preset fits.</p>
<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
<div class="form-group">
<label class="col-sm-4 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
<div class="col-sm-8">
<input
id="{feature.name}{preset.name}{configurationKey}"
type="text"
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
value="{configurationValue}"
class="form-control t3js-custom-preset"
data-radio="t3-install-tool-configuration-context-custom"
/>
</div>
</div>
</f:for>
</f:be.infobox>
</html>
@@ -0,0 +1,18 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="0" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-context-debug"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-context-debug" class="t3-install-tool-configuration-radio-label">
<strong>Debug</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>Enable debug output and set logging to info level.</p>
</f:be.infobox>
</html>
@@ -0,0 +1,18 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="0" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-context-live"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-context-live" class="t3-install-tool-configuration-radio-label">
<strong>Live</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>Turn off debug output and set logging to warnings and errors only.</p>
</f:be.infobox>
</html>
@@ -0,0 +1,57 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat">
<div class="panel-heading" role="tab" id="headingFour">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseFour" aria-expanded="true" aria-controls="collapseFour" class="collapsed">
<span class="caret"></span>
Image handling settings
</a>
</h4>
</div>
<div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFour">
<div class="panel-body">
<p>
Advanced image handling in TYPO3 CMS uses the command line tool
GraphicsMagick or ImageMagick. The tool needs to be configured
correctly depending on the version that is available on the system.
</p>
<p>
This module detects the available image handling versions and sets
the system accordingly. If everything is correctly set up the image
tests of the install tool section "Test setup" should be fine.
</p>
<p>
If ImageMagick or GraphicsMagick executables are located in an unusual place,
set the absolute directory name here.
</p>
<div class="form-group">
<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"
/>
<div class="input-group-btn">
<button
class="btn btn-default t3js-presets-image-executable-trigger"
type="button"
>
Find executables in this directory
</button>
</div>
</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,35 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="1" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-image-custom"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-image-custom" class="t3-install-tool-configuration-radio-label">
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>Custom configuration mixture if no other preset fits.</p>
<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
<div class="form-group">
<label class="col-sm-4 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
<div class="col-sm-8">
<input
id="{feature.name}{preset.name}{configurationKey}"
type="text"
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
value="{configurationValue}"
class="form-control t3js-custom-preset"
data-radio="t3-install-tool-configuration-image-custom"
/>
</div>
</div>
</f:for>
</f:be.infobox>
</html>
@@ -0,0 +1,30 @@
<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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-image-graphicsmagick"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-image-graphicsmagick" class="t3-install-tool-configuration-radio-label">
<strong>Graphics Magick</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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,30 @@
<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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-image-imagemagick6"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-image-imagemagick6" class="t3-install-tool-configuration-radio-label">
<strong>Image Magick version 6 or higher</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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,31 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat">
<div class="panel-heading" role="tab" id="headingFive">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseFive" aria-expanded="true" aria-controls="collapseFive" class="collapsed">
<span class="caret"></span>
Mail handling settings
</a>
</h4>
</div>
<div id="collapseFive" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFive">
<div class="panel-body">
<p>
Mailer agent in TYPO3 CMS can use the sendmail command line tool
if transport is configured to sendmail. The tool path needs to be
configured correctly depending on the binary that is available
on the system.
</p>
<p>
This module detects the current sendmail path from PHP settings
and allows to set the correct value in 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,33 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="1" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-mail-custom"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-mail-custom" class="t3-install-tool-configuration-radio-label">
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>Custom mail settings:</p>
<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
<div class="form-group">
<label class="col-sm-6 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
<div class="col-sm-6">
<input
id="{feature.name}{preset.name}{configurationKey}"
type="text"
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
value="{configurationValue}"
class="form-control t3js-custom-preset"
data-radio="t3-install-tool-configuration-mail-custom"
/>
</div>
</div>
</f:for>
</f:be.infobox>
</html>
@@ -0,0 +1,27 @@
<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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-mail-sendmail"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-mail-sendmail" class="t3-install-tool-configuration-radio-label">
<strong>Import sendmail command from PHP settings</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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,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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-mail-smtp"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-mail-smtp" class="t3-install-tool-configuration-radio-label">
<strong>SMTP Settings</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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,32 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="panel panel-default panel-flat">
<div class="panel-heading" role="tab" id="headingSix">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseSix" aria-expanded="true" aria-controls="collapseSix" class="collapsed">
<span class="caret"></span>
Password hashing settings
</a>
</h4>
</div>
<div id="collapseSix" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSix">
<div class="panel-body">
<p>
Passwords in TYPO3 for frontend and backend users are never stored in
plain text in the database. A salted one-way hash algorithm is
used.
</p>
<p>
This module detects available password hash algorithms. If in doubt, select the first
selectable one, it represents the most secure hash algorithm available
on this system. The selected algorithm will be used for new frontend and backend users
and existing users are upgraded to the selected algorithm upon their first 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,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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-passwordHashing-argon2i"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-argon2i" class="t3-install-tool-configuration-radio-label">
<strong>Argon2i</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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,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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-passwordHashing-bcrypt"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-bcrypt" class="t3-install-tool-configuration-radio-label">
<strong>bcrypt</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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 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 availble to use this algorithm. One of these or both are missing. bcrypt however
can be used as a fallback if Argon2i is not available, too. Ask reach out to your hoster to fix both
and prefer Argon2i.
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>
@@ -0,0 +1,37 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="1" disableIcon="true">
<input
type="radio"
class="t3-install-tool-configuration-radio"
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="t3-install-tool-configuration-radio-label">
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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 documentation for details.</p>
<f:for each="{preset.configurationValues}" as="configurationValue" key="configurationKey">
<div class="form-group">
<label class="col-sm-6 control-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
<div class="col-sm-6">
<input
id="{feature.name}{preset.name}{configurationKey}"
type="text"
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
value="{configurationValue}"
disabled="disabled"
class="form-control t3js-custom-preset"
data-radio="t3-install-tool-configuration-passwordHashing-custom"
/>
</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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-passwordHashing-pbkdf2"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-pbkdf2" class="t3-install-tool-configuration-radio-label">
<strong>PBKDF2</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<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 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 Argon2i as hash algorithm is good to go.
</f:then>
<f:else>
PBKDF2 is not available on this system. This is very uncommon. If Argon2i and bcrypt are also not available,
you should seriously question the quality of your current hoster and reach them out to fix this as soon as possible.
</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">
<input
type="radio"
class="t3-install-tool-configuration-radio"
id="t3-install-tool-configuration-passwordHashing-phpass"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition:'{preset.isAvailable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-phpass" class="t3-install-tool-configuration-radio-label">
<strong>phpass</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
In almost all cases, a modern hash algorithm like Argon2i should be preferred and is good to go.
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>
@@ -0,0 +1,43 @@
<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">
<div class="t3js-upgrade-doc panel panel-rst panel-{fileArray.class} risk-medium item" data-item-tags="{fileArray.tagList}" data-item-version="{fileArray.version}" data-item-state="{state}" id="heading{id}">
<div class="panel-heading" role="tab">
<h3 class="panel-title">
<f:if condition="{read}">
<f:then>
<a class="link-action t3js-upgradeDocs-unmarkRead pull-right" data-filepath="{fileArray.filepath}" data-toggle="tooltip" data-placement="top" title="Mark as not read">
<i class="fa fa-lg fa-ban"></i>
<span class="sr-only">restore this document</span>
</a>
</f:then>
<f:else>
<a class="link-action t3js-upgradeDocs-markRead pull-right" data-filepath="{fileArray.filepath}" data-toggle="tooltip" data-placement="top" title="Mark as read">
<i class="fa fa-lg fa-check"></i>
<span class="sr-only">ignore this document</span>
</a>
</f:else>
</f:if>
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{id}" aria-expanded="true" aria-controls="collapse{id}" class="collapsed">
<span class="caret"></span>
<strong>{fileArray.headline}</strong>
</a>
</h3>
</div>
<div id="collapse{id}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{id}">
<div class="rst-tags t3js-tags"></div>
<div class="rst-links">
<f:if condition="{fileArray.url.issue}">
<a href="{fileArray.url.issue}" target="_blank" rel="noreferrer" class="nowrap"><core:icon identifier="actions-window-open" /> Open issue</a>
</f:if>
<f:if condition="{fileArray.url.documentation}">
<a href="{fileArray.url.documentation}" target="_blank" rel="noreferrer" class="nowrap"><core:icon identifier="actions-window-open" /> Open rendered version</a>
</f:if>
</div>
<pre><f:format.raw>{fileArray.parsedContent}</f:format.raw></pre>
</div>
</div>
</html>
@@ -0,0 +1,105 @@
<?php
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Entry point to the install tool and step installer.
*
* There are two main controllers: "step" and "tool".
* The step controller is always called first, and redirects to the tool controller
* if the basic core functionality is given (instance configuration exists, database
* connection works, ...)
* The tool controller is the main "install tool" with all the main functionality.
*
* The step controller handles the basic installation.
* During first installation it creates the basic file and folder structure, the
* configuration files, the database connection and a basic configuration. Those steps
* are cycled through and if some step returns TRUE on "needsExecution", an input
* form of this step is rendered.
* After initial installation, the step installer is still called if the install
* tool is accessed, so it will automatically come up if some basic configuration fails.
* If everything is ok, the step installer will redirect to the main install tool.
* The step installer also has some "silent" update scripts, for example it migrates
* a localconf.php to LocalConfiguration if needed.
*
* This ensures as soon as the tool controller is called, the basic configuration is ok.
*
* Whenever the bootstrap or other core elements figure the installation
* needs an update that is handled within the step controller, it should just
* redirect to the entry script and let the step controller do necessary work.
*
* The step installer initiates browser redirects if steps were executed. This simplifies
* internal logic by separating the different bootstrap states needed during installation
* from each other.
*
* There is also a backend module controller, that basically only shows a screen
* with the "enable install tool" button and then redirects to the entry script. Other
* than that, it does not interfere with step or tool controller and just sets a
* context GET parameter to indicate that the install tool is called within backend context.
*
* To coordinate different tasks within step and install controller and actions, several
* GET or POST parameters are used, all prefixed with "install".
* Parameters allowed as GET and POST are preserved during redirects, POST parameters are
* thrown away between redirects (HTTP status code 303).
*
* The following main GET and POST parameters are used:
* - GET/POST "install[context]" Preserved
* Either empty, 'standalone' or 'backend', fallback to 'standalone'. Set to 'backend'
* if install tool is called form the backend main module (BackendModuleController). This
* changes the view a bit and shows the doc header in the install tool, changes background
* color and such.
*
* - GET/POST "install[controller]" Preserved
* Either empty, 'step' or 'tool', fallback to 'step'. This coordinates whether the step
* or tool controller is called. This parameter is never set externally, so the step
* controller is always called first. It itself sets the type to 'tool' and redirects to
* the tool controller if needed.
* This means you could (but shouldn't) directly call the tool controller, but it
* will still require a login and session, then.
*
* - GET/POST "install[action]" Preserved
* Determine step and tool controller main action sanitized by step / tool controller and
* only executed if user is logged in. Form protection API relies on this.
*
* - GET/POST "install[redirectCount]"
* The install tool initiates redirects to itself if configuration parameters were changed.
* This may lead to infinite redirect loops under rare circumstances. This parameter is
* incremented for each redirect to break a loop after some iterations.
*
* - POST "install[set]"
* Contains keys to determine which sub-action of the action is requested,
* eg. "change install tool password" in "important actions". Set to 'execute' if some
* step should be executed.
*
* - POST "install[values]"
* Data values for a specific "install[set]" action
*
* - POST "install[token]"
* A session and instance specific token created from the instance specific
* encryptionKey (taken care of in an early point in the step controller). This hash
* is used as form protection against CSRF for all POST data. Both the step and tool
* controller will logout a user if the token check fails. The only exception to this
* handling is the very first installation step where no session and no encryption key
* can exist yet.
*/
// Exit early if php requirement is not satisfied.
if (PHP_VERSION_ID < 70200) {
die('This version of TYPO3 CMS requires PHP 7.2 or above');
}
call_user_func(function () {
$classLoader = require __DIR__ . '/../../../../../../vendor/autoload.php';
\TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(1, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_INSTALL);
\TYPO3\CMS\Core\Core\Bootstrap::init($classLoader, true)->get(\TYPO3\CMS\Install\Http\Application::class)->run();
});
@@ -0,0 +1,80 @@
<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.pageRenderer includeRequireJsModules="{0: 'TYPO3/CMS/Install/BackendUserConfirmation'}" />
<be:moduleLayout>
<div class="modal-backdrop in"></div>
<div class="modal modal-severity-warning modal-size-small" tabindex="-1" role="dialog" style="display: block;">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">
<f:if condition="{flagInstallToolPassword}">
<f:then>
<f:translate key="{languageFileReference}:sudoInstallToolPasswordConfirm" />
</f:then>
<f:else>
<f:translate key="{languageFileReference}:sudoUserPasswordConfirm" />
</f:else>
</f:if>
</h4>
</div>
<div class="modal-body">
<div>
<f:if condition="{flagInvalidPassword} || {isJsonRequest}">
<div class="alert alert-danger" id="invalid-sudo">
<f:translate key="{languageFileReference}:sudoPasswordInvalid" />
</div>
</f:if>
<f:form id="confirm-sudo" class="form" method="post" actionUri="{verifyUri}" absolute="true">
<div class="form-group">
<div class="form-control-holder">
<label for="confirmationPassword">
<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.password" />
</label>
<f:form.password name="confirmationPassword" id="confirmationPassword" class="form-control"
data="{f:if(condition:flagInstallToolPassword, else:'{rsa-encryption: \'confirmationPasswordInternal\'}')}"
additionalAttributes="{required: 'required'}" />
<!-- Internal password field, e.g. used for ext:rsaauth -->
<f:if condition="{flagInstallToolPassword}">
<f:else>
<f:form.hidden name="confirmationPasswordInternal" id="confirmationPasswordInternal" />
</f:else>
</f:if>
<f:form.hidden name="flags" value="{flags}" />
</div>
</div>
</f:form>
<div class="text-right">
<a href="{passwordModeUri}">
<f:if condition="{flagInstallToolPassword}">
<f:then>
<f:translate key="{languageFileReference}:sudoUserPasswordMode" />
</f:then>
<f:else>
<f:translate key="{languageFileReference}:sudoInstallToolPasswordMode" />
</f:else>
</f:if>
</a>
</div>
</div>
</div>
<div class="modal-footer">
<f:if condition="{cancelUri}">
<a href="{cancelUri}" class="btn btn-default" role="button">
<f:translate key="{languageFileReference}:cancel" />
</a>
</f:if>
<button type="submit" form="confirm-sudo" class="btn btn-warning" role="button">
<f:translate key="{languageFileReference}:confirm" />
</button>
</div>
</div>
</div>
</div>
</be:moduleLayout>
</html>
@@ -0,0 +1,62 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<h1>Environment</h1>
<div class="card-container">
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Environment Overview', subtitle: 'Environment', icon: 'Icons/modules/install-show-environment.svg'}" />
<div class="card-content">
<p class="card-text">Gives an overview of your host environment including its web server, PHP version and selected database.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="small" data-require="TYPO3/CMS/Install/SystemInformation">Show System Information</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Environment Status', subtitle: 'PHP', icon: 'Icons/modules/install-test-environment.svg'}" />
<div class="card-content">
<p class="card-text">Analyzes your host environment, identifying any issues that may prevent TYPO3 from running correctly.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/EnvironmentCheck">Check Environment</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Directory Status', subtitle: 'Permissions', icon: 'Icons/modules/install-check-directory.svg'}" />
<div class="card-content">
<p class="card-text">Analyzes your folder structure, checking files and directories for correct permissions and identifying any files or directories that may be missing from your installation.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/FolderStructure">Check Directory Status</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'PHP Info', subtitle: 'PHP', icon: 'Icons/modules/install-php-info.svg'}" />
<div class="card-content">
<p class="card-text">Outputs detailed information about your installation of PHP. Including version details and enabled PHP extensions.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/PhpInfo">View PHP Info</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Test Mail Setup', subtitle: 'Mail', icon: 'Icons/modules/install-test-mail.svg'}" />
<div class="card-content">
<p class="card-text">Test your mail configuration by sending out a dummy email via TYPO3.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/MailTest">Test Mail Setup</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Image Processing', subtitle: 'Image Processing', icon: 'Icons/modules/install-test-image.svg'}" />
<div class="card-content">
<p class="card-text">Creates test images and compares them against a set of reference images to help ensure that image processing is working correctly within your environment.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/ImageProcessing">Test Images</a>
</div>
</div>
</div>
</html>
@@ -0,0 +1,14 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>A series of PHP settings and database checks.</p>
<button
class="btn btn-default t3js-environmentCheck-execute"
type="button"
>
Run tests again
</button>
<hr>
<div class="t3js-environmentCheck-output"></div>
</html>
@@ -0,0 +1,30 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>Root Directory: <strong>{publicPath}</strong></p>
<div class="t3js-folderStructure-output"></div>
<div class="t3js-folderStructure-errors" style="display:none">
<hr/>
<h3>These files or folders have errors and may be fixed automatically:</h3>
<div class="t3js-folderStructure-errors-list"></div>
<button
class="btn btn-default t3js-folderStructure-errors-fix"
type="button"
>
Try to fix file and folder permissions
</button>
</div>
<hr/>
<h3>Default File and Directory permissions</h3>
<div class="t3js-folderStructure-permissions"></div>
<div class="t3js-folderStructure-ok" style="display:none">
<hr/>
<h3>These structures don't need to be fixed:</h3>
<div class="t3js-folderStructure-ok-list"></div>
</div>
</html>
@@ -0,0 +1,308 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>A set of various image manipulation testing main processing aspects.</p>
<div style="display:none;">
<div class="t3js-imageProcessing-twinImage-template">
<div class="t3-install-displaytwinimageimages t3js-imageProcessing-images" style="display:none;">
<div class="row">
<div class="col-xs-12 col-md-6">
<h4>Reference</h4>
<div class="bg-transparent-emulation">
<img class="reference"/>
</div>
</div>
<div class="col-xs-12 col-md-6">
<h4>Your system</h4>
<div class="bg-transparent-emulation">
<img class="result"/>
</div>
</div>
</div>
</div>
<div class="t3-install-displaytwinimagetextarea t3js-imageProcessing-command" style="display:none;">
<pre><code class="language-bash t3js-imageProcessing-command-text"></code></pre>
</div>
</div>
</div>
<button
class="btn btn-default t3js-imageProcessing-execute"
type="button"
>
Run image tests again
</button>
<hr>
<h3>True type font tests</h3>
<f:be.infobox title="FreeType2 hint" state="-1">
<p>If the two images below do not look the same, please check your FreeType 2 module.</p>
</f:be.infobox>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingTrueType"></div>
<hr>
<h3>Convert image formats to jpg</h3>
<p>
This verifies that your ImageMagick installation is able to read the default
formats <code>jpg</code>, <code>gif</code>, <code>png</code>, <code>tif</code>, <code>pdf</code> and
<code>ai</code>.
The tool <code>identify</code> is used to read the pixeldimensions of non-web formats and 'convert' is used to
read the image and convert it to <code>jpg</code>.
</p>
<f:be.infobox title="Dark images" state="-1">
<p>
In case the images appear remarkably darker than the reference images,
try to set<br> <code>$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_colorspace'] = sRGB</code>.
</p>
</f:be.infobox>
<h4>Read jpg</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadJpg"></div>
<h4>Read gif</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadGif"></div>
<h4>Read png</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadPng"></div>
<h4>Read tif</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadTif"></div>
<h4>Read pdf</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadPdf"></div>
<h4>Read ai</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingReadAi"></div>
<hr>
<h3>Writing gif and png</h3>
<p>
This verifies that ImageMagick is able to write GIF and PNG files.
The GIF-file is attempted compressed with LZW by the
<code>\TYPO3\CMS\Core\Imaging\GraphicalFunctions::gifCompress()</code> function.
</p>
<h4>Write gif</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingWriteGif"></div>
<h4>Write png</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingWritePng"></div>
<hr>
<h3>Scaling images</h3>
<p>
This shows how ImageMagick reacts when scaling transparent GIF and PNG files.
</p>
<h4>gif to gif</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGifToGif"></div>
<h4>png to png</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingPngToPng"></div>
<h4>gif to jpg</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGifToJpg"></div>
<hr>
<h3>Combining images</h3>
<p>
This verifies that the ImageMagick tools, <code>combine</code>, <code>composite</code>, are able to
combine two images through a grayscale mask.
</p>
<h4>Combine using a GIF mask with only black and white</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingCombineGifMask"></div>
<h4>Combine using a JPG mask with graylevels</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingCombineJpgMask"></div>
<hr>
<h3>GDlib</h3>
<p>
This verifies that the GDLib installation works properly.
</p>
<h4>Create simple image</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGdlibSimple"></div>
<h4>Create image from file</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGdlibFromFile"></div>
<h4>Render text with TrueType font</h4>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGdlibRenderText"></div>
<h4>Render text with TrueType font using 'niceText' option</h4>
<f:be.infobox title="Note on 'niceText'" state="-1">
<p>
'niceText' is a concept that tries to improve the antialiasing of the rendered type by actually
rendering the textstring in double size on a black/white mask, downscaling the mask and masking
the text onto the image through this mask. This involves ImageMagick 'combine'/'composite' and 'convert'.
</p>
</f:be.infobox>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGdlibNiceText"></div>
<h4>Render 'niceText' with a shadow under</h4>
<f:be.infobox title="Note on 'shadow'" state="-1">
<p>
This test makes sense only if the above test had a correct output. But if so, you may not see
a soft dropshadow from the third text string as you should. In that case you are most likely using
ImageMagick 5 and should set the flag <code>$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_effects']</code>.
</p>
</f:be.infobox>
<div class="t3js-imageProcessing-twinContainer" data-test="imageProcessingGdlibNiceTextShadow"></div>
<hr>
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingConfiguration">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseConfiguration" aria-expanded="true" aria-controls="collapseFive" class="collapsed">
<span class="caret"></span>
Current configuration
</a>
</h4>
</div>
<div id="collapseConfiguration" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingConfiguration">
<div class="panel-body">
<table class="table table-striped">
<tr>
<td>{imageProcessingProcessor} enabled:</td>
<td>{f:if(condition:imageProcessingEnabled, then:'Yes', else:'No')}</td>
</tr>
<tr>
<td>ImageMagick or GraphicsMagick:</td>
<td>{imageProcessingProcessor}</td>
</tr>
<tr>
<td>{imageProcessingProcessor} path:</td>
<td>{imageProcessingPath}</td>
</tr>
<tr>
<td>{imageProcessingProcessor} version:</td>
<td>{imageProcessingVersion}</td>
</tr>
<tr>
<td>{imageProcessingProcessor} effects enabled:</td>
<td>{imageProcessingEffects} <span>(Blurring/Sharpening with {imageProcessingProcessor})</span></td>
</tr>
<tr>
<td>GDLib enabled:</td>
<td>{f:if(condition:imageProcessingGdlibEnabled, then:'Yes', else:'No')}</td>
</tr>
<tr>
<td>GDLib using PNG:</td>
<td>{f:if(condition:imageProcessingGdlibPng, then:'Yes', else:'No')}</td>
</tr>
<tr>
<td>File Formats:</td>
<td>{imageProcessingFileFormats}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingVerify">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseVerify" aria-expanded="true" aria-controls="collapseFive" class="collapsed">
<span class="caret"></span>
Verify test results
</a>
</h4>
</div>
<div id="collapseVerify" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingVerify">
<div class="panel-body">
<h4>Verify test results</h4>
<p>
This page performs image processing and displays the result. It's a thorough check
that everything you've configured is working correctly.
</p>
<p>
It's quite simple to verify your installation; Just look down the page, the images
in pairs should look like each other. If some images are not alike, something is
wrong. You may also notice warnings and errors if this tool found signs of any problems.
</p>
<p>
The image to the left is the reference image (how it should be) and to the right
the image made by your server.
</p>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingAbout">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseAbout" aria-expanded="true" aria-controls="collapseFive" class="collapsed">
<span class="caret"></span>
About image handling
</a>
</h4>
</div>
<div id="collapseAbout" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingAbout">
<div class="panel-body">
<p>
TYPO3 is known for its ability to process images on the server.
</p>
<p>
In the backend interface (TBE) thumbnails are automatically generated
as well as icons, menu items and pane tabs (by GDLib).
In the frontend all kinds of graphical elements are processed. Typically images are
scaled down to fit the pages (by ImageMagick) and menu items, graphical headers and
such are generated automatically (by GDLib + ImageMagick). In addition TYPO3 is able
to handle many file formats (thanks to ImageMagick), for example TIF, BMP, PCX, TGA,
AI and PDF in addition to the standard web formats; JPG, GIF, PNG.
</p>
<p>
In order to do this, TYPO3 uses two sets of tools:
</p>
<strong>
ImageMagick / GraphicsMagick:
</strong>
<p>
For conversion of non-web formats to webformats, combining images with alpha-masks,
performing image-effects like blurring and sharpening.
</p>
<p>
ImageMagick is a collection of external programs on the server called by the exec()
function in PHP. TYPO3 uses three of these, namely 'convert' (converting fileformats,
scaling, effects), 'combine'/'composite' (combining images with masks) and 'identify'
(returns image information). GraphicsMagick is an alternative to ImageMagick and can
be enabled by setting [GFX][processor] to 'GraphicsMagick'. This is recommended and enabled
by default. Because ImageMagick and Graphicsmagick are external programs, a requirement
must be met: The programs must be installed on the server and working. ImageMagick is
available for both Windows and Unix. The current version is 6+. ImageMagick homepage is
at <a href="http://www.imagemagick.org/">http://www.imagemagick.org/</a>
</p>
<strong>GDLib:</strong>
<p>
For drawing boxes and rendering text on images with truetype fonts. Also used for
icons, menuitems and generally the TypoScript GIFBUILDER object is based on GDlib,
but extensively utilizing ImageMagick to process intermediate results.
</p>
<p>
GDLib is accessed through internal functions in PHP, you'll need a version of PHP
with GDLib compiled in. Also in order to use TrueType fonts with GDLib you'll
need FreeType compiled in as well.
</p>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTestImages">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTestImages" aria-expanded="true" aria-controls="collapseFive" class="collapsed">
<span class="caret"></span>
About test images
</a>
</h4>
</div>
<div id="collapseTestImages" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTestImages">
<div class="panel-body">
<p>
Test-Image by Rotkaeppchen68 (in de.wikipedia) [<a href="http://www.gnu.org/copyleft/fdl.html">GFDL</a> or
<a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA-3.0</a>],
<a href="https://commons.wikimedia.org/wiki/File%3AFuBK-Testbild.png">via Wikimedia Commons</a>
</p>
</div>
</div>
</div>
</div>
</html>
@@ -0,0 +1,45 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Check the basic mail functionality by entering your email address here and clicking the button.
You should then receive a test email from "{senderEmailAddress}".
</p>
<p>
If no email is received, your setup might be broken. Check the following:
</p>
<ul>
<li>
If <code>$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport']</code> is set to mail or sendmail, TYPO3 tries to use
PHPs internal mail() function. There might be no such program installed.
</li>
<li>
If <code>$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport']</code> is set to smtp, check if the data given in
<code>$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_smtp_*']</code> is valid. Wrong data here results in faulty
requests to the mail server. You can find the resulting messages in the mail server log.
</li>
</ul>
<div class="t3js-module-content" data-mail-test-token="{mailTestToken}">
<div class="t3js-mailTest-output"></div>
<form id="t3js-mailTest-form">
<div class="form-group">
<label for="t3-install-checkmail">Email address:</label>
<input
id="t3-install-checkmail"
type="email"
class="t3-install-form-input-text form-control t3js-mailTest-email"
required
/>
</div>
<button
class="btn btn-default"
type="submit"
>
Send test mail
</button>
</form>
</div>
</html>
@@ -0,0 +1,7 @@
<html xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="table-responsive" id="phpinfo">
<i:phpInfo/>
</div>
</html>
@@ -0,0 +1,58 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<table class="table table-striped table-bordered">
<tr>
<td>Operating system:</td>
<td><strong>{systemInformationOperatingSystem}</strong></td>
</tr>
<tr>
<td>PHP version:</td>
<td class="text-wrap-allowed">
<strong><i:constant name="PHP_VERSION"/></strong>
</td>
</tr>
<tr>
<td>PHP CGI detected:</td>
<td><strong>{f:if(condition:systemInformationCgiDetected, then:'Yes', else:'No')}</strong></td>
</tr>
<f:if condition="{systemInformationDatabaseConnections -> f:count()} > 1">
<tr>
<td>Number of database connections:</td>
<td><strong>{systemInformationDatabaseConnections -> f:count()}</strong></td>
</tr>
</f:if>
<f:for each="{systemInformationDatabaseConnections}" as="connection">
<tr>
<td>Database connection <strong>'{connection.connectionName}'</strong></td>
<td>
<ul>
<li><strong>Database name:</strong> {connection.databaseName}</li>
<li><strong>Username:</strong> {connection.username}</li>
<li><strong>Host:</strong> {connection.host}</li>
<f:if condition="{connection.port}">
<f:then>
<li><strong>Port:</strong> {connection.port}</li>
</f:then>
<f:else>
<li>
<strong>Socket:</strong>
{f:if(condition:connection.socket, then: '{connection.socket}', else:'<em>PHP default</em>')}
</li>
</f:else>
</f:if>
<li class="text-wrap-allowed">
<strong>Version:</strong> {connection.version}
</li>
<li><strong>Tables:</strong> {connection.numberOfTables}</li>
<f:if condition="{connection.numberOfMappedTables}">
<f:then>
<li><strong>Mapped tables:</strong> {connection.numberOfMappedTables}</li>
</f:then>
</f:if>
</ul>
</td>
</tr>
</f:for>
</table>
</html>
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
<head>
<title>Installing TYPO3 CMS</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="{f:uri.resource(path: 'Css/backend.css', extensionName: 'backend')}?{time}" />
<link rel="icon" type="image/vnd.microsoft.icon" href="{f:uri.resource(path: 'Icons/favicon.ico')}?{time}" />
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/RequireJSConfig.js')}?{time}"></script>
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/Contrib/require.js', extensionName: 'Core')}?{time}"></script>
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/Installer.js')}?{time}"></script>
</head>
<body class="backend t3js-body install-tool-installer typo3-install"></body>
</html>
@@ -0,0 +1,17 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="typo3-install-container">
<div class="typo3-install-content">
<div class="typo3-install-content-header">
<img src="{f:uri.resource(path: 'Images/typo3_orange.svg')}" width="130" class="typo3-install-content-header-logo" />
<h1>Installing TYPO3 CMS</h1>
</div>
<div class="typo3-install-content-progress">
<div class="progress t3js-installer-progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="" aria-valuemin="0" aria-valuemax="100" style="width: {currentStep.percent}%;"></div>
</div>
</div>
<div class="t3js-installer-content">
</div>
</div>
</div>
</html>
@@ -0,0 +1,286 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-installer-database-connect-execute-token="{executeDatabaseConnectToken}">
<div class="typo3-install-content-body">
<h2>Select database</h2>
<f:if condition="{hasAtLeastOneOption}">
<f:then>
<p>
You will need to create a database user with the appropriate privileges to access your database.
</p>
<div class="typo3-install-content-spacer"></div>
<div class="t3js-installer-databaseConnect-output"></div>
<div class="typo3-install-content-spacer"></div>
<div class="row">
<div class="col-md-12">
<form method="post" class="form-horizontal">
<div class="form-group">
<label for="t3js-connect-database-driver" class="control-label col-md-2">Connection</label>
<div class="col-md-10">
<select id="t3js-connect-database-driver" class="form-control" name="install[values][availableSet]">
<f:if condition="{hasMysqliManualConfiguration}">
<option
value="mysqliManualConfiguration"
{f:if(condition:'{activeAvailableOption} == mysqliManualConfiguration', then: 'selected="selected"')}
>
Manually configured MySQL TCP/IP connection
</option>
</f:if>
<f:if condition="{hasMysqliSocketManualConfiguration}">
<option
value="mysqliSocketManualConfiguration"
{f:if(condition:'{activeAvailableOption} == mysqliSocketManualConfiguration', then: 'selected="selected"')}
>
Manually configured MySQL socket connection
</option>
</f:if>
<f:if condition="{hasPostgresManualConfiguration}">
<option
value="postgresManualConfiguration"
{f:if(condition:'{activeAvailableOption} == postgresManualConfiguration', then: 'selected="selected"')}
>
Manually configured PostgreSQL connection
</option>
</f:if>
<f:if condition="{hasSqliteManualConfiguration}">
<option
value="sqliteManualConfiguration"
{f:if(condition:'{activeAvailableOption} == sqliteManualConfiguration', then: 'selected="selected"')}
>
Manually configured SQLite connection
</option>
</f:if>
<f:if condition="{hasConfigurationFromEnvironment}">
<option
value="configurationFromEnvironment"
{f:if(condition:'{activeAvailableOption} == configurationFromEnvironment', then: 'selected="selected"')}
>
Configuration from environment variables
</option>
</f:if>
</select>
</div>
</div>
<f:if condition="{hasMysqliManualConfiguration}">
<div id="mysqliManualConfiguration" class="t3-install-driver-data">
<input type="hidden" value="mysqli" name="install[values][driver]"/>
<div class="form-group">
<label for="t3-install-step-mysqliManualConfiguration-username" class="control-label col-md-2">
Username
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliManualConfiguration-username"
class="form-control"
type="text"
value="{mysqliManualConfigurationOptions.username}"
name="install[values][username]"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-mysqliManualConfiguration-password" class="control-label col-md-2">
Password
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliManualConfiguration-password"
class="form-control"
type="password"
value="{mysqliManualConfigurationOptions.password}"
name="install[values][password]"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-mysqliManualConfiguration-host" class="control-label col-md-2">
Host
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliManualConfiguration-host"
class="t3-install-form-input-text form-control"
type="text"
value="{mysqliManualConfigurationOptions.host}"
name="install[values][host]"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-mysqliManualConfiguration-port" class="control-label col-md-2">
Port
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliManualConfiguration-port"
class="t3-install-form-input-text form-control"
type="text"
value="{mysqliManualConfigurationOptions.port}"
name="install[values][port]"
/>
</div>
</div>
</div>
</f:if>
<f:if condition="{hasMysqliSocketManualConfiguration}">
<div id="mysqliSocketManualConfiguration" class="t3-install-driver-data">
<input type="hidden" value="mysqli" name="install[values][driver]"/>
<div class="form-group">
<label for="t3-install-step-mysqliSocketManualConfiguration-username" class="control-label col-md-2">
Username
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliSocketManualConfiguration-username"
class="form-control"
type="text"
value="{mysqliSocketManualConfigurationOptions.username}"
name="install[values][username]"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-mysqliSocketManualConfiguration-password" class="control-label col-md-2">
Password
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliSocketManualConfiguration-password"
class="form-control"
type="password"
value="{mysqliSocketManualConfigurationOptions.password}"
name="install[values][password]"
autocomplete="off"
/>
</div>
</div>
<input type="hidden" value="localhost" name="install[values][host]"/>
<div class="form-group">
<label for="t3-install-step-mysqliSocketManualConfiguration-socket" class="control-label col-md-2">
Socket
</label>
<div class="col-md-10">
<input
id="t3-install-step-mysqliSocketManualConfiguration-socket"
class="t3-install-form-input-text form-control"
type="text"
value="{mysqliSocketManualConfigurationOptions.socket}"
name="install[values][socket]"
placeholder="Default socket or enter name"
/>
</div>
</div>
</div>
</f:if>
<f:if condition="{hasPostgresManualConfiguration}">
<div id="postgresManualConfiguration" class="t3-install-driver-data">
<input type="hidden" value="pdo_pgsql" name="install[values][driver]"/>
<div class="form-group">
<label for="t3-install-step-postgresManualConfiguration-username" class="control-label col-md-2">
Username
</label>
<div class="col-md-10">
<input
id="t3-install-step-postgresManualConfiguration-username"
class="form-control"
type="text"
value="{postgresManualConfigurationOptions.username}"
name="install[values][username]"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-postgresManualConfiguration-password" class="control-label col-md-2">
Password
</label>
<div class="col-md-10">
<input
id="t3-install-step-postgresManualConfiguration-password"
class="form-control"
type="password"
value="{postgresManualConfigurationOptions.password}"
name="install[values][password]"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-postgresManualConfiguration-database" class="control-label col-md-2">
Database
</label>
<div class="col-md-10">
<input
id="t3-install-step-postgresManualConfiguration-database"
class="t3-install-form-input-text form-control"
type="text"
value="{postgresManualConfigurationOptions.database}"
name="install[values][database]"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-postgresManualConfiguration-host" class="control-label col-md-2">
Host
</label>
<div class="col-md-10">
<input
id="t3-install-step-postgresManualConfiguration-host"
class="t3-install-form-input-text form-control"
type="text"
value="{postgresManualConfigurationOptions.host}"
name="install[values][host]"
/>
</div>
</div>
<div class="form-group">
<label for="t3-install-step-postgresManualConfiguration-port" class="control-label col-md-2">
Port
</label>
<div class="col-md-10">
<input
id="t3-install-step-postgresManualConfiguration-port"
class="t3-install-form-input-text form-control"
type="text"
value="{postgresManualConfigurationOptions.port}"
name="install[values][port]"
/>
</div>
</div>
</div>
</f:if>
<f:if condition="{hasSqliteManualConfiguration}">
<div id="sqliteManualConfiguration" class="t3-install-driver-data">
<input type="hidden" value="pdo_sqlite" name="install[values][driver]"/>
</div>
</f:if>
<f:if condition="{hasConfigurationFromEnvironment}">
<div id="configurationFromEnvironment" class="t3-install-driver-data">
</div>
</f:if>
<button class="btn btn-success pull-right t3js-installer-databaseConnect-execute">
Continue
</button>
</form>
</div>
</div>
</f:then>
<f:else>
<div class="t3js-message typo3-message alert alert-danger" role="alert">
<h4>No database driver found</h4>
<p class="messageText">You have no database driver installed or enabled. Please install a driver in order to complete the database connection.</p>
</div>
</f:else>
</f:if>
</div>
</div>
</html>
@@ -0,0 +1,82 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-installer-database-data-execute-token="{executeDatabaseDataToken}">
<div class="typo3-install-content-body">
<h3>Create Administrative User / Specify Site Name</h3>
<p>Use this account to log into the backend of your site.</p>
<p>The password you provide for this account is also used to access the <strong>Install Tool</strong>.</p>
<p>On this page you can also set a name for your new website.</p>
<div class="typo3-install-content-spacer"></div>
<div class="t3js-installer-databaseData-output"></div>
<div class="typo3-install-content-spacer"></div>
<form method="post" id="stepInstaller-databaseData" class="t3-install-form-label-before form-horizontal">
<input type="hidden" value="execute" name="install[set]" />
<div class="form-group">
<label for="password" class="control-label col-md-2">Username</label>
<div class="col-md-10">
<input
class="t3-install-form-input-text form-control"
name="install[values][username]"
id="username"
placeholder="admin"
autocomplete="off"
/>
</div>
</div>
<div class="form-group">
<label for="password" class="control-label col-md-2">Password</label>
<div class="col-md-10">
<input
class="t3-install-form-input-text t3-install-form-password-strength form-control"
name="install[values][password]"
id="password"
type="password"
autocomplete="off"
/>
<div class="checkbox">
<label>
<input
type="checkbox"
id="show-password"
onchange="if (this.checked==true) { document.getElementById('password').type='text'; } else { document.getElementById('password').type='password'; }"
/>
Show password
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-10">
<div class="alert alert-warning">
If compromised, this account will provide an attacker with complete access to your installation. A strong password is recommended. Include lower and upper case characters, special characters and numbers. Your password must be at least eight characters long.
</div>
</div>
</div>
<div class="form-group">
<label for="sitename" class="control-label col-md-2">Site name</label>
<div class="col-md-10">
<input
class="t3-install-form-input-text form-control"
name="install[values][sitename]"
id="sitename"
type="text"
value="{siteName}"
/>
</div>
</div>
<div class="clearfix">
<button class="btn btn-success pull-right t3js-installer-databaseData-execute">
Continue
</button>
</div>
</form>
</div>
</div>
</html>
@@ -0,0 +1,84 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-installer-database-select-execute-token="{executeDatabaseSelectToken}">
<div class="typo3-install-content-body">
<h2>Select a database</h2>
<div class="typo3-install-content-spacer"></div>
<div class="t3js-installer-databaseSelect-output"></div>
<div class="typo3-install-content-spacer"></div>
<f:if condition="{errors -> f:count()}">
<f:for each="{errors}" as="error">
<div class="alert alert-danger">
<h4>Exception</h4>
<p>{error}</p>
</div>
</f:for>
</f:if>
<form method="post" id="stepInstaller-databaseSelect">
<div class="row">
<div class="col-md-12">
<div class="radio">
<label for="t3-install-form-db-select-type-existing">
<input id="t3-install-form-db-select-type-existing" type="radio" name="install[values][type]" value="existing" class="radio" checked="checked" />
Use an existing empty database:
</label>
</div>
<div class="form-group">
<select
id="t3-install-step-database-existing"
name="install[values][existing]"
class="form-control"
onfocus="document.getElementById('t3-install-form-db-select-type-existing').checked=true;"
>
<option value="">-- Select database --</option>
<f:for each="{databaseList}" as="database">
<f:if condition="{database.tables}">
<f:then>
<option value="{database.name}" disabled="disabled">{database.name} ({database.tables} Tables)</option>
</f:then>
<f:else>
<option value="{database.name}">{database.name}</option>
</f:else>
</f:if>
</f:for>
</select>
</div>
<div class="radio">
<label for="t3-install-step-database-new">
<input
id="t3-install-form-db-select-type-new"
type="radio"
name="install[values][type]"
value="new"
class="radio"
/>
Create a new database:
</label>
</div>
<div class="form-group">
<p>
Specify a name for your TYPO3 database.
</p>
<input
id="t3-install-step-database-new"
class="t3-install-form-input-text form-control"
type="text"
name="install[values][new]"
checked="checked"
onfocus="document.getElementById('t3-install-form-db-select-type-new').checked=true;"
/>
</div>
<div class="form-group">
<button class="btn btn-success pull-right t3js-installer-databaseSelect-execute">
Continue
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</html>
@@ -0,0 +1,53 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-installer-default-configuration-execute-token="{executeDefaultConfigurationToken}">
<div class="typo3-install-content-body">
<h2>Installation Complete</h2>
<p>The Installation Wizard can create an empty page at the root of your website to help get you started. If you would like to use this option select "Create empty starting page".</p>
<div class="typo3-install-content-spacer"></div>
<div class="t3js-installer-defaultConfiguration-output"></div>
<div class="typo3-install-content-spacer"></div>
<f:if condition="!{composerMode}">
<div class="alert alert-notice">
<h3>Want a pre-configured site?</h3>
<p>
You currently have an empty installation of TYPO3. If you would like to view a list of pre-configured distributions select “download list of distributions” from the list below.
<strong>Note: This may take some time to load.</strong>
</p>
</div>
</f:if>
<form method="post">
<div class="form-group">
<f:if condition="!{composerMode}">
<div class="radio">
<label for="load-distributions">
<input type="radio" id="load-distributions" name="install[values][sitesetup]" value="loaddistribution" />
Yes, download the list of distributions
</label>
</div>
</f:if>
<div class="radio">
<label for="create-site">
<input type="radio" id="create-site" name="install[values][sitesetup]" value="createsite" />
Create empty starting page
</label>
</div>
<div class="radio">
<label for="do-nothing">
<input type="radio" id="do-nothing" name="install[values][sitesetup]" value="donothing" checked="checked" />
Take me straight to the backend
</label>
</div>
</div>
<div class="clearfix">
<button class="btn btn-success pull-right t3js-installer-defaultConfiguration-execute">
Open the TYPO3 Backend
</button>
</div>
</form>
</div>
</div>
</html>
@@ -0,0 +1,37 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="typo3-install-content-body">
<h2>Environment Overview</h2>
<p>First the Install Wizard needs to inspect your web server and identify any issues that may prevent TYPO3 from running correctly.</p>
<div class="t3js-installer-environment-details" style="display: none;">
<h3>Problems Detected</h3>
</div>
<form class="t3js-installer-environmentFolders-bad" style="display: none;">
<div class="typo3-install-content-spacer-small">
<button class="btn btn-default t3js-installer-environmentFolders-retry">
Scan environment again
</button>
</div>
</form>
<form class="t3js-installer-environmentFolders-bad" style="display: none;">
<div class="typo3-install-content-spacer-small">
<button class="btn btn-danger t3js-installer-environmentFolders-execute">
Continue with errors
<span class="t3-install-form-button-icon-negative">&nbsp;</span>
</button>
</div>
</form>
<form class="t3js-installer-environmentFolders-good" style="display: none;">
<div class="typo3-install-content-spacer-small">
<button class="btn btn-success t3js-installer-environmentFolders-execute">
No problems detected, continue with installation
</button>
</div>
</form>
</div>
</html>
@@ -0,0 +1,15 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="typo3-install-content-body">
<h2>Thank you for choosing TYPO3</h2>
<p>The Installation Wizard will guide you through the necessary steps required to install TYPO3 on your web server.</p>
<p>To begin the installation, create an empty file called
<strong>FIRST_INSTALL</strong> in the document root of your web server.</p>
<hr>
<p class="text-muted">
<strong>Note:</strong>
The filename is case sensitive and it will be deleted once the installation process is complete.
</p>
</div>
</html>
@@ -0,0 +1,24 @@
<!DOCTYPE html>
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
<head>
<title>Install tool on site {siteName}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="{f:uri.resource(path: 'Css/backend.css', extensionName: 'backend')}?{time}" />
<link rel="icon" type="image/vnd.microsoft.icon" href="{f:uri.resource(path: 'Icons/favicon.ico')}?{time}" />
<script>
var TYPO3 = TYPO3 || {};
</script>
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/RequireJSConfig.js')}?{time}"></script>
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/Contrib/require.js', extensionName: 'Core')}?{time}"></script>
<script type="text/javascript" src="{f:uri.resource(path: 'JavaScript/Install.js')}?{time}"></script>
</head>
<body class="backend install-tool-init t3js-body" data-controller="{controller}" data-context="{context}">
<div>
<div id="t3js-ui-block" class="ui-block">
<core:icon identifier="spinner-circle" size="large" />
<h2 id="t3js-ui-block-detail">Initializing</h2>
</div>
</div>
</body>
</html>
@@ -0,0 +1,127 @@
<html xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers" xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<f:if condition="{context} == 'backend'">
<f:then>
<div class="module" data-module-id="" data-module-name="">
<div class="module-docheader t3js-module-docheader" style="height: auto;">
<div class="module-docheader-bar module-docheader-bar-navigation t3js-module-docheader-bar t3js-module-docheader-bar-navigation row" style="height: auto;">
<div class="module-docheader-bar-column-left col-xs-12 col-sm-4 col-md-3">
<div class="form-inline row"></div>
</div>
<div class="module-docheader-bar module-docheader-bar-buttons t3js-module-docheader-bar t3js-module-docheader-bar-buttons" style="height: auto;">
<div class="module-docheader-bar-column-left">
<div class="btn-toolbar" role="toolbar" aria-label=""></div>
</div>
<div class="module-docheader-bar-column-right"></div>
</div>
</div>
</div>
<div class="module-body t3js-module-body" style="padding-top: 89px;">
<div id="t3js-ui-block" class="ui-block">
<core:icon identifier="spinner-circle" size="large" />
<h2 id="t3js-ui-block-detail">Loading cards</h2>
</div>
</div>
</div>
</f:then>
<f:else>
<div class="scaffold t3js-scaffold scaffold-modulemenu-expanded">
<div class="t3js-scaffold-header">
<div class="scaffold-topbar t3js-scaffold-topbar">
<div class="topbar">
<div class="topbar-header t3js-topbar-header" style="padding-left: 0">
<div class="topbar-header-site">
<a href="" target="_top" title="TYPO3.CMS">
<span class="topbar-header-site-logo">
<img src="{f:uri.resource(path: 'Images/typo3_logo_orange.svg')}" width="22" height="22" title="TYPO3 Content Management System" alt="">
</span>
<span class="topbar-header-site-title">
<span class="topbar-header-site-name">Admin tool on site: {siteName}</span>
<span class="topbar-header-site-version">TYPO3 CMS <i:constant name="TYPO3_version" /></span>
</span>
</a>
<button type="button" class="btn btn-default btn-danger pull-right t3js-login-lockInstallTool" style="margin-top: 7px; margin-right: 15px;">
<span class="t3js-icon icon icon-size-small icon-state-default icon-actions-logout" data-identifier="actions-logout">
<span class="icon-markup">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g class="icon-color"><path d="M9 10v4H2V2h7v4h1V1.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V10H9z"></path><path d="M10.983 5.041a.5.5 0 0 1 .812-.39l3.7 2.96a.5.5 0 0 1 0 .78l-3.7 2.96a.5.5 0 0 1-.812-.39V9H6V7h4.983V5.041z"></path></g></svg>
</span>
</span>
Logout
</button>
</div>
</div>
</div>
</div>
</div>
<div class="scaffold-modulemenu t3js-scaffold-modulemenu">
<div class="modulemenu t3js-modulemenu">
<ul class="nav nav-modules" data-role="modulemenu" id="menu">
<li class="modulemenu-group expanded" id="web" data-modulename="web" data-navigationcomponentid="" data-navigationframescript="" data-navigationframescriptparameters="">
<div class="modulemenu-group-header">
<span class="modulemenu-icon modulemenu-group-icon">
<span class="t3js-icon icon icon-size-default icon-state-default icon-module-tools" data-identifier="module-tools">
<span class="icon-markup">
<core:icon identifier="module-tools" size="default"/>
</span>
</span>
</span>
<span class="modulemenu-group-title">
Admin Tools
</span>
</div>
<ul class="modulemenu-group-container">
<f:render partial="Layout/MenuModuleLink" arguments="{controller: 'maintenance', label: 'Maintenance'}" />
<f:render partial="Layout/MenuModuleLink" arguments="{controller: 'settings', label: 'Settings'}" />
<f:render partial="Layout/MenuModuleLink" arguments="{controller: 'upgrade', label: 'Upgrade'}" />
<f:render partial="Layout/MenuModuleLink" arguments="{controller: 'environment', label: 'Environment'}" />
</ul>
</li>
<li class="modulemenu-group expanded" id="context" data-modulename="context" data-navigationcomponentid="" data-navigationframescript="" data-navigationframescriptparameters="">
<ul class="modulemenu-group-container">
<li class="modulemenu-item t3js-mainmodule ">
<a class="modulemenu-item-link" href="index.php">
<span class="modulemenu-icon modulemenu-item-icon">
<span class="t3js-icon icon icon-size-default icon-state-default">
<span class="icon-markup">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g class="icon-color"><path d="M9 10v4H2V2h7v4h1V1.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V10H9z"></path><path d="M10.983 5.041a.5.5 0 0 1 .812-.39l3.7 2.96a.5.5 0 0 1 0 .78l-3.7 2.96a.5.5 0 0 1-.812-.39V9H6V7h4.983V5.041z"></path></g></svg>
</span>
</span>
</span>
<span class="modulemenu-item-title">Backend admin</span>
</a>
</li>
<li class="modulemenu-item t3js-mainmodule ">
<a class="modulemenu-item-link" href="../index.php">
<span class="modulemenu-icon modulemenu-item-icon">
<span class="t3js-icon icon icon-size-default icon-state-default">
<span class="icon-markup">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g class="icon-color"><path d="M9 10v4H2V2h7v4h1V1.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V10H9z"></path><path d="M10.983 5.041a.5.5 0 0 1 .812-.39l3.7 2.96a.5.5 0 0 1 0 .78l-3.7 2.96a.5.5 0 0 1-.812-.39V9H6V7h4.983V5.041z"></path></g></svg>
</span>
</span>
</span>
<span class="modulemenu-item-title">Frontend website</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="scaffold-content t3js-scaffold-content" style="padding-top:25px; overflow: auto;">
<div class="container-fluid">
<div class="t3js-module-body">
<div id="t3js-ui-block" class="ui-block">
<core:icon identifier="spinner-circle" size="large" />
<h2 id="t3js-ui-block-detail">Loading cards</h2>
</div>
</div>
</div>
</div>
</div>
</f:else>
</f:if>
</html>
@@ -0,0 +1,32 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="page-header">
<img src="{f:uri.resource(path: 'Images/typo3_orange.svg')}" width="130" class="logo" />
</div>
<div class="panel panel-warning">
<div class="panel-heading">
<h2 class="panel-title">The Install Tool is locked</h2>
</div>
<div class="panel-body">
<p>
To enable the Install Tool, the file <code>ENABLE_INSTALL_TOOL</code>
must be created in the directory <code>typo3conf/</code>.
The file must be writable by the web server user.
The filename is case-sensitive but the file itself can be empty.
</p>
<p>
<strong>Security note:</strong>
When you are finished with the Install Tool, you should rename or delete this file.
It will automatically be deleted if you log out of the Install Tool or if the file is older than one hour.
</p>
</div>
</div>
</div>
</div>
</div>
</html>
@@ -0,0 +1,64 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:i="http://typo3.org/ns/TYPO3/CMS/Install/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="container">
<div class="page-header">
<h1 class="logo-pageheader">
<img src="{f:uri.resource(path: 'Images/typo3_orange.svg')}" width="130" class="logo" /> Site: {siteName} <small>Login to TYPO3 Install Tool</small>
</h1>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div id="t3-install-box-body">
<form method="post" class="form-inline" id="t3-install-form-login" data-login-token="{loginToken}">
<div class="form-group">
<label for="t3-install-form-password">Password</label>
<input id="t3-install-form-password" type="password" name="install[password]" class="t3-install-form-input-text form-control" autofocus="autofocus" />
</div>
<button type="button" class="btn btn-default btn-success t3js-login-login">
Login
</button>
<f:if condition="!{installToolEnableFilePermanent}">
<button type="button" class="btn btn-default btn-danger pull-right t3js-login-lockInstallTool">
<i class="fa fa-lock"></i> Lock Install Tool again
</button>
</f:if>
</form>
</div>
<div id="t3-install-box-border-bottom">&nbsp;</div>
<div class="t3js-login-output"></div>
<f:if condition="{installToolEnableFilePermanent}">
<div class="panel panel-danger">
<div class="panel-heading"><h3 class="panel-title">Install Tool is permanently enabled</h3></div>
<div class="panel-body">
The Install Tool is permanently enabled because our <code>ENABLE_INSTALL_TOOL</code> file contains
the text <em>KEEP_FILE</em>.<br />
Never use this on production systems!
</div>
</div>
</f:if>
<div class="panel panel-info">
<div class="panel-heading"><h3 class="panel-title">Information</h3></div>
<div class="panel-body">
By default the Install Tool password is the one specified during the installation.
</div>
</div>
<div class="panel panel-warning">
<div class="panel-heading"><h3 class="panel-title">Important</h3></div>
<div class="panel-body">
If you don't know the current password, you can set a new one by setting the value of
<code>$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword']</code> in <code>typo3conf/LocalConfiguration.php</code> to
the hash value of the password you desire, which will be shown if you enter the desired password
in this form and submit it.
<br /><br />
This password gives an attacker full control over your instance if cracked. It should be strong
(include lower and upper case characters, special characters and numbers) and at least eight characters long.
</div>
</div>
</div>
</div>
</div>
</html>
@@ -0,0 +1,93 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<h1>Maintenance</h1>
<div class="card-container">
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Flush TYPO3 and PHP Cache', subtitle: 'Caching', icon: 'Icons/modules/install-clear-cache.svg'}" />
<div class="card-content">
<p class="card-text">This action directly clears all registered caches including opcode cache.
This utility is also present in TYPO3’s backend: Top Bar > Clear Cache > Flush all caches.
A fatal error will be thrown if a broken extension is detected. If this occurs, use the extension tester utility (Upgrade > Check For Broken Extensions).
</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary " data-inline="1" data-require="TYPO3/CMS/Install/Cache">Flush cache</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Analyze Database Structure', subtitle: 'Database', icon: 'Icons/modules/install-database-analyze.svg'}" />
<div class="card-content">
<p class="card-text">Compare and update the database table and field definitions of your installation against the specification defined for every activated extension.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/DatabaseAnalyzer">Analyze database</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Remove Temporary Assets', subtitle: 'Caching', icon: 'Icons/modules/install-clear-files.svg'}" />
<div class="card-content">
<p class="card-text">Clears temporary files including concatenated JS/CSS files and processed images.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/ClearTypo3tempFiles">Scan temporary files</a>
</div>
</div>
<div class="card card-size-fixed-small {f:if(condition:'{composerMode}', then: 'card-disabled')}">
<f:render partial="Card/Header" arguments="{ title: 'Rebuild PHP Autoload Information', subtitle: 'Caching', icon: 'Icons/modules/install-clear-autoload.svg'}" />
<div class="card-content">
<p class="card-text">Resets autoload information for all active third party extensions.</p>
</div>
<f:if condition="{composerMode}">
<f:then>
<div class="card-footer text-muted">
You can't use this feature, because your installation is in composer mode.
Guide: <a href="https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Autoloading/Index.html#loading-classes-with-composer-mode" target="_blank" rel="noopener noreferrer">Composer dumpautoload</a>.
</div>
</f:then>
<f:else>
<div class="card-footer">
<a href="#" class="btn btn-primary " data-inline="1" data-require="TYPO3/CMS/Install/DumpAutoload">Dump autoload</a>
</div>
</f:else>
</f:if>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Clear Persistent Database Tables', subtitle: 'Database', icon: 'Icons/modules/install-clear-database.svg'}" />
<div class="card-content">
<p class="card-text">Truncates persistent database tables, which are not related to caching.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/ClearTables">Scan tables</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Create Administrative User', subtitle: 'Backend Users', icon: 'Icons/modules/install-create-admin.svg'}" />
<div class="card-content">
<p class="card-text">Create new administrative users and grant them system maintainer privileges (optional).</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="small" data-require="TYPO3/CMS/Install/CreateAdmin">Create Administrator</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Reset Backend User Preferences', subtitle: 'Backend Users', icon: 'Icons/modules/install-reset-user.svg'}" />
<div class="card-content">
<p class="card-text">Clears preferences and settings for all backend users. The <code>uc</code> field is then set to an empty string.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary " data-inline="1" data-require="TYPO3/CMS/Install/ResetBackendUserUc">Reset backend user preferences</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Manage Language Packs', subtitle: 'Language', icon: 'Icons/modules/install-manage-language.svg'}" />
<div class="card-content">
<p class="card-text">Download and update language packs for installed extensions.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/LanguagePacks">Manage languages</a>
</div>
</div>
</div>
</html>
@@ -0,0 +1,45 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Some database tables in TYPO3 CMS hold semi-temporary data that is not deleted when clicking "Clear All Cache" in
the backend.
Those can be cleared here,
effectively removing all rows from it. This can be useful in rare cases.
</p>
<p>
Use with care! Clearing tables here can have a negative impact on your site functionality.
You could log out all users, delete all their basket data, and lose logging information!
</p>
<div class="t3js-module-content" data-clear-tables-clear-token="{clearTablesClearToken}">
<div class="t3js-clearTables-output"></div>
<button
class="btn btn-default t3js-clearTables-stats"
type="button"
>
Scan again
</button>
<hr>
<div class="form-group">
<div class="t3js-clearTables-stat-container"></div>
</div>
<div style="display:none;">
<div class="t3js-clearTables-stat-template">
<p class="t3js-clearTables-stat-description">{clearTableStatistic.description}</p>
<button
class="btn btn-warning t3js-clearTables-clear"
type="button"
>
Delete <span class="t3js-clearTables-stat-rows"></span> rows
from table "<span class="t3js-clearTables-stat-name"></span>" table
</button>
<hr class="t3js-clearTables-stat-lastRuler">
</div>
</div>
</div>
</html>
@@ -0,0 +1,47 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
TYPO3 stores processed files and cached images in a dedicated directory.
This directory is likely to grow quickly.
</p>
<p>
With this action you can delete the files in this folder. Afterwards, you
should also clear the cache database tables.
</p>
<p>
The File Abstraction Layer additionally stores a database record for every file
it needs to process. (e.g. image thumbnails). In case you modified some graphics
settings (All Configuration [GFX]) and you need all processed files to get regenerated,
you can use this tool to remove the "_processed_" ones.
</p>
<div class="t3js-module-content" data-clear-typo3temp-delete-token="{clearTypo3tempFilesToken}">
<div class="t3js-clearTypo3temp-output"></div>
<hr>
<div class="form-group">
<div class="t3js-clearTypo3temp-stat-container"></div>
</div>
<div style="display:none;">
<div class="t3js-clearTypo3temp-stat-template">
<button
class="btn btn-warning t3js-clearTypo3temp-delete"
type="button"
>
Delete <span class="t3js-clearTypo3temp-stat-numberOfFiles"></span> files in
<span class="t3js-clearTypo3temp-stat-directory"></span>
</button>
<hr class="t3js-clearTypo3temp-stat-lastRuler">
</div>
</div>
<button
class="btn btn-default t3js-clearTypo3temp-stats"
type="button"
>
Scan again
</button>
</div>
</html>
@@ -0,0 +1,68 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
After you've created the user, log in and add the rest of the user information, like email and real name.
</p>
<div class="t3js-module-content" data-create-admin-token="{createAdminToken}">
<form action="" id="t3js-createAdmin-form" method="post">
<div class="form-group">
<label for="t3-install-admin-username" class="control-label">Username:</label>
<input
id="t3-install-admin-username"
class="t3-install-form-input-text t3js-createAdmin-user form-control"
type="text"
autocomplete="off"
required
/>
</div>
<div class="form-group">
<label for="t3-install-admin-password" class="control-label">Password:</label>
<input
id="t3-install-admin-password"
class="t3-install-form-input-text t3-install-form-password-strength t3js-createAdmin-password form-control"
type="password"
autocomplete="off"
required
minlength="8"
pattern=".{8,}"
title="Password must be at least eight characters long."
/>
</div>
<div class="form-group">
<label for="t3-install-admin-password-repeat" class="control-label">Repeat password:</label>
<input
id="t3-install-admin-password-repeat"
class="t3-install-form-input-text t3js-createAdmin-password-check form-control"
type="password"
autocomplete="off"
required
minlength="8"
pattern=".{8,}"
/>
</div>
<div class="form-group">
<div class="checkbox">
<label>
<input
class="t3-install-form-input-checkbox t3js-createAdmin-system-maintainer"
type="checkbox"
id="add-as-system-maintainer"
/>
Add as system maintainer
</label>
</div>
</div>
<div class="t3js-createAdmin-output"></div>
<button
class="btn btn-default t3js-createAdmin-create"
type="submit"
>
Create administrator user
</button>
</form>
</div>
</html>
@@ -0,0 +1,63 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Compares the database table and field definitions of the current database with the specifications from all loaded
extensions' ext_tables.sql files.
Depending on the specification, the analyzer can update, delete, and change tables and fields.
</p>
<div style="display:none;">
<div class="t3js-databaseAnalyzer-suggestion-block">
<fieldset>
<h4 class="t3js-databaseAnalyzer-suggestion-block-legend"></h4>
<ol class="list-unstyled t3js-databaseAnalyzer-suggestion-list">
<li class="t3-install-form-label-after">
<input
type="checkbox"
class="t3js-databaseAnalyzer-suggestion-block-checkbox"
/>
<label class="t3js-databaseAnalyzer-suggestion-block-label">select/deselect all</label>
</li>
</ol>
</fieldset>
</div>
<ul class="t3js-databaseAnalyzer-suggestion-line-template">
<li class="t3js-databaseAnalyzer-suggestion-line t3-install-form-label-after">
<input
type="checkbox"
class="t3js-databaseAnalyzer-suggestion-line-checkbox"
value="1"
/>
<label class="t3js-databaseAnalyzer-suggestion-line-label">
<span class="t3js-databaseAnalyzer-suggestion-line-statement"></span>
<span class="t3js-databaseAnalyzer-suggestion-line-current" style="display:none;">
<br/>
Current value: <span class="t3js-databaseAnalyzer-suggestion-line-current-value"></span>
</span>
<span class="t3js-databaseAnalyzer-suggestion-line-count" style="display:none;">
<br/>
Rows in table: <span class="t3js-databaseAnalyzer-suggestion-line-count-value"></span>
</span>
</label>
</li>
</ul>
</div>
<div class="t3js-module-content" data-database-analyzer-execute-token="{databaseAnalyzerExecuteToken}">
<div class="t3js-databaseAnalyzer-output"></div>
<button
class="btn btn-default t3js-databaseAnalyzer-analyze"
type="button"
disabled
>
Run database compare again
</button>
<button
class="btn btn-warning t3js-databaseAnalyzer-execute"
type="button"
disabled
>
Apply selected changes
</button>
</div>
</html>
@@ -0,0 +1,25 @@
<html xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers" data-namespace-typo3-fluid="true">
<div style="display:none;">
<div id="t3js-languagePacks-activate-icon"><core:icon identifier="actions-add" /></div>
<div id="t3js-languagePacks-deactivate-icon"><core:icon identifier="actions-remove" /></div>
<div id="t3js-languagePacks-languageUpdate-icon"><core:icon identifier="actions-download" /></div>
<div id="t3js-languagePacks-extensionPack-misses-icon"><core:icon identifier="actions-add" /></div>
</div>
<div
class="t3js-module-content"
data-language-packs-activate-language-token="{languagePacksActivateLanguageToken}"
data-language-packs-deactivate-language-token="{languagePacksDeactivateLanguageToken}"
data-language-packs-update-pack-token="{languagePacksUpdatePackToken}"
data-language-packs-update-iso-times-token="{languagePacksUpdateIsoTimesToken}"
>
<p>
Gives an overview of available languages excluding the default (English) language.
It allows you to activate and deactivate additional localizations and to update language packs from the official TYPO3 translation server.
</p>
<div class="t3js-languagePacks-notifications"></div>
<div class="t3js-languagePacks-output"></div>
<div class="t3js-languagePacks-mainContent"></div>
</div>
</html>
@@ -0,0 +1,62 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<h1>Settings</h1>
<div class="card-container">
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Extension Configuration', subtitle: 'Global Configuration', icon: 'Icons/modules/install-extension-settings.svg'}" />
<div class="card-content">
<p class="card-text">Configure settings for all enabled extensions.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/ExtensionConfiguration">Configure extensions</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Change Install Tool Password', subtitle: 'Access', icon: 'Icons/modules/install-password.svg'}" />
<div class="card-content">
<p class="card-text">Set a new password for the Install Tool when accessed in Standalone mode.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="small" data-require="TYPO3/CMS/Install/ChangeInstallToolPassword">Change Install Tool Password</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Manage System Maintainers', subtitle: 'Access', icon: 'Icons/modules/install-manage-maintainer.svg'}" />
<div class="card-content">
<p class="card-text">Specify which backend administrators have access to the Admin Tools module and Install Tool when accessed in Standalone Mode.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="medium" data-require="TYPO3/CMS/Install/SystemMaintainer">Manage System Maintainers</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Configuration Presets', subtitle: 'Global Configuration', icon: 'Icons/modules/install-manage-presets.svg'}" />
<div class="card-content">
<p class="card-text">Configure image processing, debug/live mode and mail settings.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/Presets">Choose Preset</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Feature Toggles', subtitle: 'Global Configuration', icon: 'Icons/modules/install-manage-features.svg'}" />
<div class="card-content">
<p class="card-text">Enable and disable core features.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="medium" data-require="TYPO3/CMS/Install/Features">Configure Features</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Configure Installation-Wide Options', subtitle: 'Global Configuration', icon: 'Icons/modules/install-manage-settings.svg'}" />
<div class="card-content">
<p class="card-text">Modify settings written to LocalConfiguration.php.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/LocalConfiguration">Configure options</a>
</div>
</div>
</div>
</html>
@@ -0,0 +1,41 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Allows you to set a new Install Tool password. The hash for this password will be written to LocalConfiguration.php
and will overwrite the previously specified password.
</p>
<div class="t3js-module-content" data-install-tool-token="{changeInstallToolPasswordToken}">
<form action="" id="t3js-changeInstallToolPassword-form" method="post">
<div class="form-group">
<label for="t3-install-tool-password" class="control-label">Enter new password:</label>
<input
id="t3-install-tool-password"
class="t3-install-form-input-text t3-install-form-password-strength t3js-changeInstallToolPassword-password form-control"
type="password"
autocomplete="off"
required
/>
</div>
<div class="form-group">
<label for="t3-install-tool-password-repeat" class="control-label">Repeat password:</label>
<input
id="t3-install-tool-password-repeat"
class="t3-install-form-input-text t3js-changeInstallToolPassword-password-check form-control"
type="password"
autocomplete="off"
required
/>
</div>
<div class="t3js-changeInstallToolPassword-output"></div>
<button
class="btn btn-default t3js-changeInstallToolPassword-change"
type="submit"
>
Set new password
</button>
</form>
</div>
</html>
@@ -0,0 +1,20 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-extension-configuration-write-token="{extensionConfigurationWriteToken}">
<div class="t3js-extensionConfiguration-output"></div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Filter by:</span>
<input type="text" class="form-control t3js-extensionConfiguration-search" placeholder="search setting">
</div>
</div>
<div class="panel-group" role="tablist" aria-multiselectable="true">
<f:for each="{extensionsWithConfigurations}" as="extensionData" key="extensionKey">
<f:render partial="Settings/ExtensionConfiguration/ExtensionForm" arguments="{_all}"/>
</f:for>
</div>
</div>
</html>
@@ -0,0 +1,40 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Enable and disable certain core features. Feature toggles in the core are used to globally
use new features of TYPO3 that may be activated on new installations but upgrading installations
can still use the old behaviour.
</p>
<div class="t3js-features-content" data-features-save-token="{featuresSaveToken}">
<strong>Available features:</strong>
<form method="post" class="form-horizontal">
<f:for each="{features}" as="feature">
<div class="checkbox checkbox-type-labeled-toggle">
<input type="checkbox" class="checkbox-input"
value="1"
name="install[values][{feature.name}]"
id="t3-install-tool-features-{feature.name}"
{f:if(condition: '{feature.value} == 1', then: 'checked="checked"')}
>
<label class="checkbox-label" for="t3-install-tool-features-{feature.name}">
<span class="checkbox-label-switch">
<span class="checkbox-label-switch-checked">On</span>
<span class="checkbox-label-switch-unchecked">Off</span>
</span>
<span class="checkbox-label-text">
{feature.name} (default {f:if(condition: '{feature.default} == 1', then: 'on', else: 'off')}): {feature.description}
</span>
</label>
</div>
</f:for>
<button
class="btn btn-default t3js-features-save"
type="button"
>
Save
</button>
</form>
</div>
</html>
@@ -0,0 +1,31 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Modified values are written to LocalConfiguration.php. The optional file AdditionalConfiguration.php is not controlled
by the TYPO3’s core and may override certain settings. Administrators must maintain AdditionalConfiguration.php
manually and should be used with caution.
</p>
<div class="t3js-module-content" data-local-configuration-write-token="{localConfigurationWriteToken}">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Filter by:</span>
<input type="text" autocomplete="off" class="form-control t3js-localConfiguration-search" placeholder="search setting">
</div>
</div>
<div class="panel-group" role="tablist" aria-multiselectable="true">
<f:for each="{localConfigurationData}" as="sectionData" key="sectionName">
<f:if condition="{sectionData.items}">
<f:render partial="Settings/LocalConfiguration/SubSection" arguments="{_all}"/>
</f:if>
</f:for>
</div>
<div>
<span class="btn btn-default t3js-localConfiguration-write">Write configuration</span>
<span class="btn btn-default t3js-localConfiguration-toggleAll">Toggle All</span>
</div>
</div>
</html>
@@ -0,0 +1,31 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
The Configuration Module recommends configuration settings based on information found in your environments setup.
</p>
<p>
TYPO3 can also be run in a specific application context, by setting an environment variable in the web server configuration. The application context can then be accessed e.g. in the AdditionalConfiguration.php file or TypoScript configuration to customize settings accordingly.
</p>
<p>
Changed values are written to LocalConfiguration.php. The optional file AdditionalConfiguration.php is not controlled by the TYPO3’s core and may override certain settings. Administrators must maintain AdditionalConfiguration.php manually and should be used with caution.
</p>
<div class="t3js-presets-content" data-presets-activate-token="{presetsActivateToken}" data-presets-content-token="{presetsGetContentToken}">
<form method="post" class="form-horizontal">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<f:for each="{presetFeatures}" as="feature">
<f:render partial="Settings/Presets/{feature.name}" arguments="{_all}"/>
</f:for>
</div>
</form>
</div>
<div class="t3js-presets-output"></div>
<button
class="btn btn-default t3js-presets-activate"
type="button"
>
Activate
</button>
</html>
@@ -0,0 +1,42 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Administrative users listed here will have full access to the Admin Tools module located in the backend. Note that all
backend administrative users have access to this module when the system is running in development mode.
</p>
<f:if condition="{systemMaintainerIsDevelopmentContext}">
<div class="typo3-message alert alert-info">
<div class="message-body">
This TYPO3 instance is set to "Development" context, all backend admin users
can see the system maintenance related main module entries.
</div>
</div>
</f:if>
<div class="t3js-module-content" data-system-maintainer-write-token="{systemMaintainerWriteToken}">
<div class="form-group">
<div class="input-group t3js-systemMaintainer-chosen" style="display:none">
<span class="input-group-addon">System Maintainer:</span>
<select
class="chosen-select t3js-systemMaintainer-chosen-select"
data-placeholder="none"
style="width:100%;"
multiple
tabindex=""
>
</select>
</div>
</div>
<div class="t3js-systemMaintainer-output"></div>
<button
class="btn btn-default t3js-systemMaintainer-write"
type="button"
>
Save system maintainer list
</button>
</div>
</html>
@@ -0,0 +1,91 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<h1>Upgrade</h1>
<div class="card-container">
<div class="card card-size-fixed-small {f:if(condition:'{composerMode}', then: 'card-disabled')}">
<f:render partial="Card/Header" arguments="{ title: 'Update TYPO3 Core', subtitle: 'Core Upgrade', icon: 'Icons/modules/install-update.svg'}" />
<div class="card-content">
<p class="card-text">Update your TYPO3 installation (support for symbolic links required).</p>
</div>
<f:if condition="{composerMode}">
<f:then>
<div class="card-footer text-muted">
You can't use this feature, because your installation is in composer mode.
Guide: <a href="https://docs.typo3.org/m/typo3/guide-installation/master/en-us/Upgrade/InstallTheNewSource/Index.html" target="_blank" rel="noopener noreferrer">install the new source</a>.
</div>
</f:then>
<f:else>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/CoreUpdate">Update Core</a>
</div>
</f:else>
</f:if>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Upgrade Wizard', subtitle: 'Core Upgrade', icon: 'Icons/modules/install-wizards.svg'}" />
<div class="card-content">
<p class="card-text">Finalises the upgrade process when moving to a major release.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/UpgradeWizards">Run Upgrade Wizard</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'View Upgrade Documentation', subtitle: 'Core Upgrade', icon: 'Icons/modules/install-documentation.svg'}" />
<div class="card-content">
<p class="card-text">View and search for important changes that have been made for every major and minor release of TYPO3.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/UpgradeDocs">View Upgrade Documentation</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Check TCA in ext_tables.php', subtitle: 'TCA', icon: 'Icons/modules/install-check-extables.svg'}" />
<div class="card-content">
<p class="card-text">Identify any extensions that are modifying the Table Control Array (TCA) in ext_tables.php. Changes made to the TCA can result in performance drawbacks.
</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/TcaExtTablesCheck">Check TCA</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Check for Broken Extensions', subtitle: 'Extensions', icon: 'Icons/modules/install-check-brokenextension.svg'}" />
<div class="card-content">
<p class="card-text">Checks the compatibility of all active extensions against the current (installed) version of TYPO3.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-modal-size="small" data-require="TYPO3/CMS/Install/ExtensionCompatTester">Check Extension Compatibility</a>
</div>
</div>
<div class="card card-size-fixed-small">
<f:render partial="Card/Header" arguments="{ title: 'Check TCA Migrations', subtitle: 'TCA', icon: 'Icons/modules/install-check-tca.svg'}" />
<div class="card-content">
<p class="card-text">Identifies any third-party extensions that contain an outdated TCA configuration which should be adapted for the current (installed) version of TYPO3.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/TcaMigrationsCheck">Check TCA Migrations</a>
</div>
</div>
<div class="card card-size-fixed-small {f:if(condition:'!{extensionFoldersInTypo3conf}', then: 'card-disabled')}">
<f:render partial="Card/Header" arguments="{ title: 'Scan Extension Files', subtitle: 'Extensions', icon: 'Icons/modules/install-scan-extensions.svg'}" />
<div class="card-content">
<p class="card-text">Scan extensions for usage of deprecated or outdated TYPO3 API calls.</p>
</div>
<f:if condition="{extensionFoldersInTypo3conf}">
<f:then>
<div class="card-footer">
<a href="#" class="btn btn-default" data-require="TYPO3/CMS/Install/ExtensionScanner">Scan Extension Files</a>
</div>
</f:then>
<f:else>
<div class="card-footer text-muted">
You can't use this feature, because no extension folders were found.
</div>
</f:else>
</f:if>
</div>
</div>
</html>
@@ -0,0 +1,37 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>Automatically updates the TYPO3 CMS core to its latest minor release if these criteria are met:</p>
<ul>
<li>It only works under Unix and MacOS (support of symbolic links is required).</li>
<li><code>typo3_src</code> must be a symbolic link to the extracted TYPO3 source directory.</li>
<li>The symbolic link needs to be writable (and deletable) by the web server user.</li>
<li>The document root directory needs to be writable.</li>
<li>One path above document root (<code>../</code>) needs to be writable (new directories will be created).</li>
<li>The <code>tar</code> command must be available for extracting the TYPO3 source package.</li>
</ul>
<div class="t3js-coreUpdate-output">
<f:if condition="!{coreUpdateComposerMode} && {coreUpdateEnabled} && {coreUpdateIsReleasedVersion} && {coreUpdateIsSymLinkedCore}">
<f:then>
<div class="t3js-coreUpdate-buttonTemplate">
<button class="btn btn-warning t3js-coreUpdate-init" type="submit" name="coreUpdateCheckForUpdate"
data-action="checkForUpdate"
>
Check for core updates
</button>
</div>
</f:then>
<f:else>
<f:be.infobox title="This feature is disabled in this installation">
<p>
<f:if condition="{coreUpdateComposerMode}">Composer Mode is active. Please update using composer commands.<br></f:if>
<f:if condition="!{coreUpdateEnabled}">The environment variable was set <code>TYPO3_DISABLE_CORE_UPDATER=1</code>.<br></f:if>
<f:if condition="!{coreUpdateIsReleasedVersion}">This system uses an unreleased TYPO3 core version.<br></f:if>
<f:if condition="!{coreUpdateIsSymLinkedCore}">This action can only be used with a linked <code>typo3_src</code>.</f:if>
</p>
</f:be.infobox>
</f:else>
</f:if>
</div>
</html>
@@ -0,0 +1,25 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Checks whether the local extensions' ext_tables and ext_localconf files can be included without errors,
meaning they can be loaded without breaking the system.
</p>
<div
class="t3js-module-content"
data-extension-compat-tester-load-ext_localconf-token="{extensionCompatTesterLoadExtLocalconfToken}"
data-extension-compat-tester-load-ext_tables-token="{extensionCompatTesterLoadExtTablesToken}"
data-extension-compat-tester-uninstall-extension-token="{extensionCompatTesterUninstallToken}"
>
<div class="t3js-extensionCompatTester-output"></div>
<div class="btn-group">
<button class="btn btn-default t3js-extensionCompatTester-check" disabled>
Check extensions
</button>
<button class="btn btn-default t3js-extensionCompatTester-uninstall" style="display:none;">
Uninstall extension
</button>
</div>
</div>
</html>
@@ -0,0 +1,107 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
This module scans extensions for usage of deprecated and removed TYPO3 API calls.
The module can be a great help for extension developers and site maintainers when
upgrading to new core versions. However, the detection approach - based on static
code analysis - is limited by concept: false positives/negatives are impossible to avoid.
Further details can be found at
<a style="text-decoration: underline;" target="_blank" rel="noopener noreferrer" href="https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/ExtensionScanner/Index.html">
the official docs.
</a>
</p>
<div style="display: none">
<div id="t3js-extensionScanner-file-hit-template">
<div class="panel panel-flat t3js-extensionScanner-hit-panel risk-medium">
<div class="panel-heading">
<h3 class="panel-title">
<a href="#collapse" class="collapsed t3js-extensionScanner-hit-file-panel-head" data-toggle="collapse">
<span class="caret"></span>
<span class="pull-right badges"></span>
<span class="t3js-extensionScanner-hit-filename file">aFile</span>
<span class="t3js-extensionScanner-hit-message message">aMessage</span>
</a>
</h3>
</div>
<div id="collapse" class="panel-collapse collapse t3js-extensionScanner-hit-file-panel-body">
<div class="panel-body">
<pre><strong class="t3js-extensionScanner-hit-file-line"></strong><span class="t3js-extensionScanner-hit-file-lineContent"></span></pre>
<div class="panel-group-flat t3js-extensionScanner-hit-file-rest-container"></div>
</div>
</div>
</div>
</div>
<div id="t3js-extensionScanner-file-hit-rest-template">
<div class="panel panel-flat t3js-extensionScanner-hit-rest-panel risk-medium">
<div class="panel-heading">
<h3 class="panel-title">
<a href="#collapse-rest"
class="collapsed t3js-extensionScanner-hit-rest-panel-head"
data-toggle="collapse"
>
<span class="badge pull-right">aBadge</span>
<span class="caret"></span>
<strong class="t3js-extensionScanner-hit-rest-headline">restFileHeadline</strong>
</a>
</h3>
</div>
<div id="collapse-rest" class="panel-collapse collapse t3js-extensionScanner-hit-rest-panel-body">
<pre class="t3js-extensionScanner-hit-rest-body">restFileContent</pre>
</div>
</div>
</div>
</div>
<div
class="t3js-module-content"
data-extension-scanner-files-token="{extensionScannerFilesToken}"
data-extension-scanner-scan-file-token="{extensionScannerScanFileToken}"
data-extension-scanner-mark-fully-scanned-rest-files-token="{extensionScannerMarkFullyScannedRestFilesToken}"
>
<div class="progress t3js-extensionScanner-progress-all-extension">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0;">
<span class="text-nowrap"></span>
</div>
</div>
<button class="btn btn-default t3js-extensionScanner-scan-all" type="submit">
Scan all
</button>
<h2>Extensions</h2>
<div class="panel-group panel-group-flat panel-group-scanner-extensions">
<f:for each="{extensionScannerExtensionList}" as="extensionInTypo3conf" iteration="iterator">
<div
class="panel panel-default panel-flat t3js-extensionScanner-extension t3js-extensionScanner-extension-{extensionInTypo3conf.filename}"
data-extension="{extensionInTypo3conf.filename}">
<div class="panel-progress">
<div class="panel-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0;"><span class="sr-only"></span></div>
</div>
<div class="panel-heading">
<h2 class="panel-title">
<a href="#extension-{iterator.index}" class="collapsed" data-toggle="collapse">
<span class="caret"></span>
Extension: <strong>{extensionInTypo3conf.filename}</strong>
<span class="pull-right t3js-extensionScanner-number-of-files"></span>
</a>
</h2>
</div>
<div class="panel-collapse collapse" id="extension-{iterator.index}">
<div class="panel-body hide t3js-extensionScanner-extension-body"></div>
<div class="panel-footer">
<div>Effective lines of code: <span class="t3js-extensionScanner-extension-body-loc">0</span></div>
<div>Files ignored by scanner: <span class="t3js-extensionScanner-extension-body-ignored-files">0</span></div>
<div>Code lines ignored by scanner: <span class="t3js-extensionScanner-extension-body-ignored-lines">0</span></div>
<button class="btn btn-default t3js-extensionScanner-scan-single" type="submit">
Scanning…
</button>
</div>
</div>
</div>
</f:for>
</div>
</div>
</html>
@@ -0,0 +1,26 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Identify any extensions that are modifying the Table Control Array (TCA) in ext_tables.php.
Changes made to the TCA in ext_tables.php can result in performance drawbacks.
</p>
<p>
Since TYPO3 CMS 6.2 changes to $GLOBALS['TCA']
must be stored inside a folder called Configuration/TCA/Overrides with one file per modified table.
<br>
These files are named along the pattern &lt;tablename&gt;.php.
</p>
<p>
Thus if you want to customize the TCA of tx_foo_domain_model_bar,
you’d create the file Configuration/TCA/Overrides/tx_foo_domain_model_bar.php.
</p>
<p>
The advantage of this method is that all such changes are incorporated into
$GLOBALS['TCA'] before it is cached. This is thus far more efficient.
</p>
<div class="t3js-tcaExtTablesCheck-output"></div>
<button class="btn btn-default t3js-tcaExtTablesCheck-check" type="button">
Check loaded extensions
</button>
</html>
@@ -0,0 +1,15 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
Checks whether the current TCA needs migrations and displays the new migration paths which need to be adjusted
manually.
</p>
<div class="t3js-tcaMigrationsCheck-output"></div>
<button
class="btn btn-default t3js-tcaMigrationsCheck-check"
type="button"
>
Check TCA Migrations
</button>
</html>
@@ -0,0 +1,15 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:for each="{upgradeDocsFiles}" key="fileId" as="fileArray">
<f:render partial="Upgrade/UpgradeDocs/PanelItem" arguments="{id: 'file-{fileId}', fileArray: fileArray, state: 'regular'}"/>
</f:for>
<f:for each="{upgradeDocsReadFiles}" key="fileId" as="fileArray">
<f:render partial="Upgrade/UpgradeDocs/PanelItem" arguments="{id: 'file-{fileId}', fileArray: fileArray, state: 'read', read: 'true'}"/>
</f:for>
<f:for each="{upgradeDocsNotAffectedFiles}" key="fileId" as="fileArray">
<f:render partial="Upgrade/UpgradeDocs/PanelItem" arguments="{id: 'file-{fileId}', fileArray: fileArray, state: 'notAffected', read: 'true'}"/>
</f:for>
</html>
@@ -0,0 +1,92 @@
<html xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers" xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="t3js-module-content" data-upgrade-docs-mark-read-token="{upgradeDocsMarkReadToken}" data-upgrade-docs-unmark-read-token="{upgradeDocsUnmarkReadToken}">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Search:</span>
<input
type="text"
class="form-control t3js-upgradeDocs-fulltext-search"
placeholder="search setting"
disabled
>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Filter by:</span>
<select
class="chosen-select t3js-upgradeDocs-chosen-select"
data-placeholder=""
style="width:100%;"
multiple
tabindex=""
disabled
>
</select>
</div>
</div>
</div>
</div>
<div class="panel-group panel-group-rst" role="tablist" aria-multiselectable="true">
<f:for each="{upgradeDocsVersions}" as="version" iteration="iterator">
<div class="panel panel-default panel-version t3js-version-changes" data-version="{version}">
<div class="panel-heading" role="tab" id="heading-{iterator.index}">
<h2 class="panel-title">
<a href="#version-{iterator.index}"
class="collapsed" data-toggle="collapse"
aria-expanded="false"
aria-controls="#version-{iterator.index}"
>
<span class="caret"></span>
Version: <strong>{version}</strong>
<span class="pull-right t3js-panel-loading"><core:icon identifier="spinner-circle" size="small" /></span>
</a>
</h2>
</div>
<div class="panel-collapse collapse"
id="version-{iterator.index}" role="tabpanel" data-group-version="{version}">
<div class="panel-body t3js-changelog-list" role="tablist" aria-multiselectable="false"></div>
</div>
</div>
</f:for>
<div class="panel panel-default panel-version">
<div class="panel-heading" role="tab" id="heading-read">
<h2 class="panel-title">
<a href="#collapseRead" class="collapsed" data-toggle="collapse" aria-expanded="false"
aria-controls="collapseRead">
<span class="caret"></span>
Files marked as read
</a>
</h2>
</div>
<div class="collapse" id="collapseRead" role="tabpanel" data-group-version="read">
<div class="panel-body panel-body-read t3js-changelog-list" role="tablist" aria-multiselectable="false"></div>
</div>
</div>
<div class="panel panel-default panel-version">
<div class="panel-heading" role="tab" id="heading-not-affected">
<h2 class="panel-title">
<a href="#collapseNotAffected" class="collapsed" data-toggle="collapse">
<span class="caret"></span>
Files marked as not affected by extension scanner
</a>
</h2>
</div>
<div class="collapse" id="collapseNotAffected" role="tabpanel" data-group-version="notAffected">
<div class="panel-body panel-body-not-affected t3js-changelog-list" role="tablist" aria-multiselectable="false"></div>
</div>
</div>
</div>
</div>
</html>
@@ -0,0 +1,118 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<p>
If you upgrade your TYPO3 installation from one major version to another (e.g. 8 LTS to 9 LTS),
then the Upgrade Wizards guide you through the necessary steps to upgrade your database
records or explicitly install extensions that ship with the latest TYPO3 version.
</p>
<div style="display: none">
<div class="t3js-upgradeWizards-blocking-charset-template">
<p>
The default database charset of the main MySQL database is not utf-8.
<br />
You have to run this update wizard before you can run any other update
wizard to make sure new tables and fields are created with the correct
charset.
<br />
WARNING: This will NOT convert any existing data.
</p>
<button class="btn btn-default t3js-upgradeWizards-blocking-charset-fix" type="button">
Set default charset to utf8
</button>
</div>
<div class="t3js-upgradeWizards-blocking-adds-template">
<p>
There are tables or fields in the database which need to be created.
<br />
You have to run this update wizard before you can run any other update
wizard to make sure all needed tables and fields are present.
</p>
<div>
<div class="t3js-upgradeWizards-blocking-adds-rows"></div>
</div>
<button class="btn btn-default t3js-upgradeWizards-blocking-adds-execute" type="button">
Create missing tables and fields
</button>
</div>
<div class="t3js-upgradeWizards-list-template">
<h4>Upgrade status</h4>
<p>Progress of upgrade wizards:</p>
<div class="progress">
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar"
aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0%;">
<span>0%</span>
</div>
</div>
<div class="t3js-upgradeWizards-list-rows"></div>
</div>
<div class="t3js-upgradeWizards-list-row-template">
<h4 class="t3js-upgradeWizards-list-row-title"></h4>
<div class="row-explanation t3js-upgradeWizards-list-row-explanation"></div>
<button class="btn btn-default t3js-upgradeWizards-list-row-execute" type="button">
Execute
</button>
<hr />
</div>
<div class="t3js-upgradeWizards-input">
<form>
<h4 class="t3js-upgradeWizards-input-title">{updateData.title}</h4>
<div class="t3js-upgradeWizards-input-html"></div>
<button class="btn btn-warning t3js-upgradeWizards-input-perform" type="button">
Perform updates!
</button>
</form>
</div>
<div class="t3js-upgradeWizards-done-body-template">
<table class="table table-condensed table-striped">
<tbody class="t3js-upgradeWizards-done-rows"></tbody>
</table>
</div>
<div class="t3js-upgradeWizards-done-row-template">
<table>
<tr>
<td>
<button
type="button"
class="btn btn-default t3js-upgradeWizards-done-markUndone"
>
Mark undone
</button>
</td>
<td class="t3js-upgradeWizards-done-title">
</td>
</tr>
</table>
</div>
</div>
<hr>
<div class="t3js-upgrade-status-section">
<div class="upgradeWizards-wizards-output t3js-upgradeWizards-wizards-output"></div>
<hr>
<h4>Wizards marked as done</h4>
<p>
Some wizards fully automatically check whether they should be executed, while others just
set a flag in the system registry if they have been executed once. This "I have been executed"
flag can be reset by selecting specific wizards from the list below, so the according wizards
show up as possible upgrade wizards again.
</p>
<div
class="t3js-module-content"
data-upgrade-wizards-mark-undone-token="{upgradeWizardsMarkUndoneToken}"
data-upgrade-wizards-input-token="{upgradeWizardsInputToken}"
data-upgrade-wizards-execute-token="{upgradeWizardsExecuteToken}"
>
<div class="t3js-upgradeWizards-done-output"></div>
</div>
</div>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.28 594.708"><path fill="#428954" d="M.945.934H595.28v593.774H.945z"/><path fill="#FFF" d="M469.939 243.072H135.908v-71.578h334.031v71.578zm0 95.437H135.908v-71.578h334.031v71.578zm0 95.438H135.908v-71.578h334.031v71.578zM350.643 219.212v-23.859H159.768v23.859h190.875zm0 95.438v-23.859H159.768v23.859h190.875zm0 95.437v-23.859H159.768v23.859h190.875zm83.507-220.699c-9.879 0-17.895 8.015-17.895 17.895s8.016 17.895 17.895 17.895 17.895-8.015 17.895-17.895-8.016-17.895-17.895-17.895zm0 95.438c-9.879 0-17.895 8.015-17.895 17.895 0 9.879 8.016 17.895 17.895 17.895s17.895-8.016 17.895-17.895c0-9.88-8.016-17.895-17.895-17.895zm0 95.437c-9.879 0-17.895 8.016-17.895 17.895s8.016 17.895 17.895 17.895 17.895-8.016 17.895-17.895-8.016-17.895-17.895-17.895z"/></svg>

After

Width:  |  Height:  |  Size: 819 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.28 594.708"><path fill="#D03F38" d="M.011 0h595.27v594.708H.011z"/><path fill="#FFF" d="M209.066 464.474c-4.294 4.294-10.455 6.907-16.802 6.907s-12.508-2.613-16.989-6.907l-19.79-20.163c-4.48-4.293-7.094-10.454-7.094-16.802s2.614-12.509 7.094-16.989l127.137-127.136c9.708 24.457 29.311 44.059 53.768 53.767L209.066 464.474zm-4.854-60.861c-6.534 0-11.948 5.414-11.948 11.948s5.414 11.948 11.948 11.948 11.948-5.414 11.948-11.948-5.414-11.948-11.948-11.948zm246.246-127.884c-11.762 33.231-43.687 56.194-78.971 56.194-46.112 0-83.638-37.525-83.638-83.638s37.525-83.638 83.638-83.638c13.629 0 31.364 4.107 42.752 11.762 1.867 1.307 2.987 2.987 2.987 5.227 0 2.054-1.307 4.107-2.987 5.228l-54.7 31.551v41.819l36.031 19.976c6.161-3.547 49.474-30.804 53.207-30.804 3.734 0 5.975 2.8 5.975 6.534 0 6.161-2.24 13.815-4.294 19.789z"/></svg>

After

Width:  |  Height:  |  Size: 887 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.28 594.708"><path fill="#1D588E" d="M0 0h595.279v594.708H0z"/><path fill="#FFF" d="M364.864 318.26c0 2.427-1.867 5.228-4.294 5.601l-28.939 4.481c-1.494 4.854-3.548 9.521-5.975 14.189 5.228 7.468 10.829 14.376 16.804 21.472.746 1.12 1.307 2.24 1.307 3.733 0 1.308-.374 2.614-1.307 3.548-3.734 5.041-24.646 27.819-30.061 27.819-1.493 0-2.801-.561-3.921-1.308l-21.471-16.803c-4.668 2.427-9.335 4.294-14.376 5.787-.934 9.522-1.867 19.791-4.294 28.939-.747 2.614-2.987 4.481-5.601 4.481h-34.728c-2.614 0-5.228-2.054-5.601-4.668l-4.294-28.565c-4.854-1.494-9.522-3.548-14.003-5.788l-22.031 16.616c-.934.934-2.427 1.308-3.734 1.308-1.494 0-2.8-.561-3.92-1.494-4.854-4.48-26.886-24.458-26.886-29.873 0-1.307.56-2.427 1.307-3.547 5.415-7.095 11.016-14.003 16.43-21.285-2.614-5.041-4.854-10.082-6.535-15.31l-28.379-4.48c-2.614-.374-4.481-2.801-4.481-5.415v-34.541c0-2.427 1.867-5.228 4.294-5.601l28.939-4.481c1.494-4.854 3.547-9.522 5.975-14.189-5.228-7.468-10.829-14.376-16.804-21.471-.747-1.12-1.307-2.427-1.307-3.734s.374-2.614 1.307-3.734c3.734-5.041 24.645-27.633 30.06-27.633 1.494 0 2.801.561 3.921 1.307l21.471 16.804c4.668-2.427 9.335-4.294 14.376-5.975.934-9.335 1.867-19.604 4.294-28.753.747-2.614 2.987-4.481 5.601-4.481h34.728c2.614 0 5.228 2.054 5.601 4.667l4.294 28.566c4.854 1.494 9.522 3.547 14.003 5.788l22.032-16.617c1.12-.934 2.427-1.307 3.733-1.307 1.494 0 2.801.561 3.921 1.494 4.854 4.481 26.886 24.646 26.886 29.873 0 1.307-.56 2.427-1.307 3.547-5.414 7.282-11.016 14.003-16.243 21.285 2.427 5.041 4.667 10.083 6.348 15.31l28.38 4.294c2.613.56 4.48 2.987 4.48 5.601v34.543zm-119.492-65.347c-26.326 0-47.797 21.471-47.797 47.797 0 26.325 21.471 47.797 47.797 47.797s47.797-21.472 47.797-47.797c0-26.326-21.471-47.797-47.797-47.797zm238.984-34.728c0 2.801-24.085 5.415-27.819 5.788-1.493 3.547-3.36 6.721-5.602 9.708 1.681 3.734 9.522 22.405 9.522 25.766 0 .56-.187.934-.747 1.307-2.24 1.307-22.218 13.256-23.151 13.256-2.427 0-16.43-18.67-18.297-21.471-1.867.187-3.734.374-5.602.374s-3.734-.187-5.602-.374c-1.867 2.801-15.87 21.471-18.297 21.471-.934 0-20.911-11.949-23.151-13.256-.561-.374-.747-.934-.747-1.307 0-3.174 7.842-22.031 9.522-25.766-2.241-2.987-4.108-6.161-5.602-9.708-3.734-.374-27.819-2.987-27.819-5.788v-26.139c0-2.801 24.085-5.415 27.819-5.788 1.493-3.361 3.36-6.721 5.602-9.708-1.681-3.734-9.522-22.592-9.522-25.766 0-.374.187-.934.747-1.307 2.24-1.12 22.218-13.069 23.151-13.069 2.427 0 16.43 18.484 18.298 21.284 1.866-.187 3.733-.373 5.601-.373s3.734.187 5.602.374c5.228-7.282 10.828-14.563 17.177-20.911l1.12-.374c.934 0 20.911 11.763 23.151 13.069.561.374.747.934.747 1.307 0 3.361-7.842 22.031-9.522 25.766 2.241 2.987 4.108 6.348 5.602 9.708 3.734.374 27.819 2.987 27.819 5.788v26.139zm0 191.188c0 2.801-24.085 5.415-27.819 5.788-1.493 3.548-3.36 6.722-5.602 9.709 1.681 3.733 9.522 22.404 9.522 25.766 0 .56-.187.933-.747 1.307-2.24 1.307-22.218 13.256-23.151 13.256-2.427 0-16.43-18.671-18.297-21.471-1.867.187-3.734.373-5.602.373s-3.734-.187-5.602-.373c-1.867 2.8-15.87 21.471-18.297 21.471-.934 0-20.911-11.949-23.151-13.256-.561-.374-.747-.934-.747-1.307 0-3.175 7.842-22.032 9.522-25.766-2.241-2.987-4.108-6.161-5.602-9.709-3.734-.373-27.819-2.987-27.819-5.788v-26.139c0-2.801 24.085-5.415 27.819-5.788 1.493-3.36 3.36-6.722 5.602-9.709-1.681-3.733-9.522-22.591-9.522-25.766 0-.373.187-.933.747-1.307 2.24-1.12 22.218-13.069 23.151-13.069 2.427 0 16.43 18.484 18.298 21.284 1.866-.187 3.733-.373 5.601-.373s3.734.187 5.602.373c5.228-7.281 10.828-14.562 17.177-20.911l1.12-.373c.934 0 20.911 11.763 23.151 13.069.561.374.747.934.747 1.307 0 3.361-7.842 22.032-9.522 25.766 2.241 2.987 4.108 6.349 5.602 9.709 3.734.373 27.819 2.987 27.819 5.788v26.139zm-71.695-228.156c-13.069 0-23.898 10.829-23.898 23.898 0 13.256 10.829 23.898 23.898 23.898 13.256 0 23.898-10.829 23.898-23.898s-10.829-23.898-23.898-23.898zm0 191.188c-13.069 0-23.898 10.829-23.898 23.898 0 13.256 10.829 23.898 23.898 23.898 13.256 0 23.898-10.829 23.898-23.898s-10.829-23.898-23.898-23.898z"/></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.28 594.708"><path fill="#6C9DCC" d="M.954.934H595.28v593.774H.954z"/><path fill="#FFF" d="M361.234 253.461h-35.789v161.051c0 3.355-2.61 5.965-5.965 5.965H188.253c-2.237 0-4.474-1.305-5.406-3.355-.932-2.236-.746-4.66.746-6.523l29.824-35.789c1.119-1.306 2.982-2.051 4.66-2.051h59.648V253.461h-35.789c-4.66 0-8.761-2.609-10.811-6.897-1.864-4.101-1.305-9.133 1.677-12.675l59.648-71.578c4.474-5.405 13.793-5.405 18.267 0l59.648 71.578c2.982 3.542 3.729 8.575 1.678 12.675-2.048 4.288-6.149 6.897-10.809 6.897z"/></svg>

After

Width:  |  Height:  |  Size: 571 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="#FF8700" d="M0 0h64v64H0z"/><path fill="#FFF" d="M49.535 29.295l-5.457-1.558a12.594 12.594 0 0 0-.517-1.27l2.751-4.953a.642.642 0 0 0-.108-.766l-2.952-2.952a.643.643 0 0 0-.766-.108l-4.953 2.751a12.69 12.69 0 0 0-1.27-.517l-1.558-5.457a.645.645 0 0 0-.62-.465h-4.171c-.288 0-.54.19-.617.465l-1.561 5.459c-.435.154-.859.319-1.27.517l-4.953-2.751a.64.64 0 0 0-.766.108l-2.949 2.949a.64.64 0 0 0-.108.766l2.751 4.953a12.69 12.69 0 0 0-.517 1.27l-5.459 1.558a.647.647 0 0 0-.465.621v4.173c0 .288.19.54.465.617l5.457 1.558c.154.435.319.859.517 1.27l-2.751 4.953a.642.642 0 0 0 .108.766l2.952 2.952a.643.643 0 0 0 .766.108l4.953-2.751c.411.198.836.363 1.27.517l1.558 5.457c.08.275.332.465.62.465h4.173c.288 0 .54-.19.617-.465l1.558-5.457c.435-.154.859-.319 1.27-.517l4.953 2.751a.642.642 0 0 0 .766-.108l2.952-2.952a.643.643 0 0 0 .108-.766l-2.751-4.953c.198-.411.363-.836.517-1.27l5.457-1.558a.645.645 0 0 0 .465-.62v-4.171a.645.645 0 0 0-.465-.619zM32 39.714c-4.261 0-7.714-3.453-7.714-7.714s3.453-7.714 7.714-7.714 7.714 3.453 7.714 7.714-3.453 7.714-7.714 7.714z"/><path fill="#FFF" d="M32 32h24v24H32z"/><path fill="#FF8700" d="M54 34v20H34V34h20m4-4H30v28h28V30z"/><path fill="#FF8700" d="M36 36h16v2H36zM36 40h16v12H36z"/><path fill="#FFF" d="M42.391 49.625a.574.574 0 0 0 .804-.002l5.636-5.636a.563.563 0 0 0-.003-.809l-.798-.798a.574.574 0 0 0-.802-.011l-4.04 4.04a.557.557 0 0 1-.794-.004l-1.618-1.618a.561.561 0 0 0-.805.007l-.798.798a.566.566 0 0 0-.006.807l3.224 3.226z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#C83C3C" d="M24.8 5H7.2c-.1 0-.2.1-.3.1L4 10.9V26.7c0 .2.1.3.3.3h23.5c.1 0 .3-.1.3-.3V11l-2.9-5.8c-.2-.1-.3-.2-.4-.2z"/><g opacity=".15"><path d="M24.8 5H7.2c-.1 0-.2.1-.3.1l-1 2.2h20.3l-1.1-2.1c-.1-.1-.2-.2-.3-.2zM26.9 8.8H5.1L4 11h24z"/></g><path fill="#FFF" d="M19.9 16.5L17.4 19l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L16 20.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7l2.5-2.5-2.5-2.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0l2.5 2.5 2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z"/></svg>

After

Width:  |  Height:  |  Size: 571 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC857" d="M29 9H15l-4-2H3v18h26V9z"/><path opacity=".25" fill-rule="evenodd" clip-rule="evenodd" d="M29 9H3v16h26V9z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC857" d="M3 13h8l4.1-3H29v15H3V13z"/></svg>

After

Width:  |  Height:  |  Size: 331 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#C83C3C" d="M5 2v28h22V8l-6-6H5z"/><path opacity=".65" fill="#FFF" d="M21 8V2l6 6h-6z"/><path opacity=".15" d="M27 8v6l-6-6h6z"/><g><path fill="#FFF" d="M19.9 15.5L17.4 18l2.5 2.5c.2.2.2.5 0 .7l-.7.7c-.2.2-.5.2-.7 0L16 19.4l-2.5 2.5c-.2.2-.5.2-.7 0l-.7-.7c-.2-.2-.2-.5 0-.7l2.5-2.5-2.5-2.5c-.2-.2-.2-.5 0-.7l.7-.7c.2-.2.5-.2.7 0l2.5 2.5 2.5-2.5c.2-.2.5-.2.7 0l.7.7c.2.2.2.5 0 .7z"/></g></svg>

After

Width:  |  Height:  |  Size: 464 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#59F" d="M27 6H5V3c0-.6.4-1 1-1h20c.6 0 1 .4 1 1v3z"/><path fill="#515151" d="M26 30H6c-.6 0-1-.4-1-1V6h22v23c0 .6-.4 1-1 1z"/><g fill="#FFF"><path d="M22 20v2h-2v-1.5c0-.2-.2-.3-.4-.2l-3.3 2c-.2.1-.2.3 0 .4l3.3 2c.2.1.4 0 .4-.2V23h3v-3h-1zM14 23h1l-1.5-4h-1L11 23h1l.2-.5h1.6l.2.5zm-1.4-1.5l.4-1.2.4 1.2h-.8zM21 15.8c0 .2 0 .4-.1.5-.1.2-.2.3-.4.4l-.6.3H17v-4h2.6c.2 0 .3.1.5.1.2.1.3.2.4.3.1.1.1.3.1.4 0 .2-.1.4-.2.5-.1.1-.3.3-.5.3.3.1.5.2.7.3.3.4.4.6.4.9zm-1.5-1.7c0-.1 0-.1-.1-.2 0-.1-.1-.1-.2-.1H18v.8h.9c.1 0 .2 0 .3-.1.1 0 .2-.1.2-.2 0 0 .1-.1.1-.2zm.2 1.7c0-.1 0-.2-.1-.3-.1-.1-.2-.1-.3-.2h-1.4v1h1c.1 0 .3 0 .4-.1s.2-.1.3-.2c.1-.1.1-.1.1-.2zM15.7 13.3l-3.3-2c-.2-.1-.4 0-.4.2V13H9v3h1v-2h2v1.5c0 .2.2.3.4.2l3.3-2c.1-.1.1-.3 0-.4z"/><path d="M22.5 11h-7c-.3 0-.5.2-.5.5v.2l1 .6V12h6v6h-5v-.5c0-.3-.2-.5-.5-.5H16v-2.3l-1 .6V17H9.5c-.3 0-.5.2-.5.5v7c0 .3.2.5.5.5h7c.3 0 .5-.2.5-.5v-.2l-1-.6v.3h-6v-6h6v3.3l1-.6V19h5.5c.3 0 .5-.2.5-.5v-7c0-.3-.2-.5-.5-.5z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#777BB3" d="M24.8 5H7.2c-.1 0-.2.1-.3.1L4 10.9V26.7c0 .2.1.3.3.3h23.5c.1 0 .3-.1.3-.3V11l-2.9-5.8c-.2-.1-.3-.2-.4-.2z"/><g opacity=".15" fill="#FFF"><path d="M24.8 5H7.2c-.1 0-.2.1-.3.1l-1 2.2h20.3l-1.1-2.1c-.1-.1-.2-.2-.3-.2zM26.9 8.8H5.1L4 11h24z"/></g><g opacity=".15" fill="#FFF"><path d="M4.8 23L6 25v-1h2.7c.2 0 .3-.1.4-.3l1.4-2.5c.1-.2.1-.3 0-.5l-1.4-2.4-1.7 1L9 22H6v-1l-1.2 2zM4 16.7L5 15l1.5 2.6-.9.5H8L9.2 16l-.9.5-1.4-2.4c-.1 0-.3-.1-.5-.1H4v2.7z"/></g><g fill="#FFF"><path d="M10.3 16.7h2.4c.7 0 1.2.2 1.5.6s.4.9.3 1.6c0 .3-.1.6-.3.9-.1.3-.3.6-.6.8-.3.3-.6.5-.9.6-.3.1-.7.1-1 .1h-1.1l-.4 1.7H9l1.3-6.3m1 1l-.5 2.6h.2c.6 0 1 0 1.4-.2.4-.1.6-.6.8-1.3.1-.6 0-1-.3-1.1s-.7-.1-1.2-.1h-.2c-.1.1-.1.1-.2.1M15.9 15h1.2l-.3 1.7h1.1c.6 0 1.1.1 1.3.4.3.2.4.7.3 1.3l-.6 2.9h-1.2l.6-2.8c.1-.3 0-.5-.1-.6s-.3-.2-.6-.2h-1l-.7 3.6h-1.2l1.2-6.3M20.8 16.7h2.4c.7 0 1.2.2 1.5.6s.4.9.3 1.6c0 .3-.1.6-.3.9-.1.3-.3.6-.6.8-.3.3-.6.5-.9.6s-.7.1-1 .1h-1.1l-.4 1.7h-1.2l1.3-6.3m1 1l-.5 2.6h.2c.6 0 1 0 1.4-.2.4-.1.6-.6.8-1.3.1-.6 0-1-.3-1.1s-.7-.1-1.2-.1H22c-.1.1-.1.1-.2.1"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#59F" d="M2 4h22v22H2z"/><ellipse fill="#59F" cx="13" cy="26" rx="11" ry="4"/><ellipse fill="#59F" cx="13" cy="4" rx="11" ry="4"/><ellipse fill="#FFF" cx="13" cy="4" rx="11" ry="4" opacity=".25"/><ellipse cx="13" cy="4" rx="7" ry="2" opacity=".25"/><g><path fill="#FFC857" d="M14 13h16v16H14z"/><ellipse fill="#FFC857" cx="22" cy="29" rx="8" ry="3"/><ellipse fill="#FFC857" cx="22" cy="13" rx="8" ry="3"/><ellipse fill="#FFF" cx="22" cy="13" rx="8" ry="3" opacity=".25"/><ellipse cx="22" cy="13" rx="5" ry="1.5" opacity=".25"/></g><g><path fill="#FFF" d="M20.5 27.8l4.5-5.7c.1-.2.1-.5-.2-.5H23c-.2 0-.3-.1-.2-.3l1.6-2.8c.1-.2.1-.5-.2-.5H21c-.2 0-.4.2-.5.3l-1.4 5c-.1.2.1.3.3.3H21c.2 0 .3.2.2.3 0 0-1.4 3.5-1.4 3.6 0 .2.2.4.4.4.1 0 .2 0 .3-.1-.1.1-.1 0 0 0z"/></g></svg>

After

Width:  |  Height:  |  Size: 841 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#59F" d="M6 5.5h20v21H6z"/><ellipse fill="#59F" cx="16" cy="26.5" rx="10" ry="3.5"/><ellipse fill="#59F" cx="16" cy="5.5" rx="10" ry="3.5"/><ellipse fill="#FFF" cx="16" cy="5.5" rx="10" ry="3.5" opacity=".25"/><ellipse cx="16" cy="5.3" rx="7" ry="1.8" opacity=".25"/><g fill="#FFF"><path d="M19 17.1l1.2-2.1-.9.5-1.4-2.4c-.1-.2-.3-.2-.4-.2h-2.6c-.4 0-.7.2-.9.5l-1.2 2.1 1.7 1L16 14l1.5 2.6-.9.5H19zM15.8 22l1.2 2v-1h2.7c.2 0 .3-.1.4-.3l1.4-2.5c.1-.2.1-.3 0-.5l-1.4-2.4-1.7 1L20 21h-3v-1.1L15.8 22zM13.2 16.9h-2.4l.9.5-1.4 2.4c-.1.2-.1.3 0 .5l1.4 2.5c.1.2.3.3.4.3h2.8v-2L12 21l1.5-2.6.9.5-1.2-2z"/></g></svg>

After

Width:  |  Height:  |  Size: 679 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#FFC857" d="M6 5.5h20v21H6z"/><ellipse fill="#FFC857" cx="16" cy="26.5" rx="10" ry="3.5"/><ellipse fill="#FFC857" cx="16" cy="5.5" rx="10" ry="3.5"/><ellipse fill="#FFF" cx="16" cy="5.5" rx="10" ry="3.5" opacity=".25"/><ellipse cx="16" cy="5.3" rx="7" ry="1.8" opacity=".25"/><g fill="#FFF"><path d="M19 17.1l1.2-2.1-.9.5-1.4-2.4c-.1-.2-.3-.2-.4-.2h-2.6c-.4 0-.7.2-.9.5l-1.2 2.1 1.7 1L16 14l1.5 2.6-.9.5H19zM15.8 22l1.2 2v-1h2.7c.2 0 .3-.1.4-.3l1.4-2.5c.1-.2.1-.3 0-.5l-1.4-2.4-1.7 1L20 21h-3v-1.1L15.8 22zM13.2 16.9h-2.4l.9.5-1.4 2.4c-.1.2-.1.3 0 .5l1.4 2.5c.1.2.3.3.4.3h2.8v-2L12 21l1.5-2.6.9.5-1.2-2z"/></g></svg>

After

Width:  |  Height:  |  Size: 688 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#FF8700" d="M27.4 23.2c-3-.8-5-2-7.1-2.8.1.4.1.6-.1.9-2.1 2.3-6.5 2.1-8.4 0-.3-.3-.2-.5-.1-.9-2.1.8-4.1 2-7.1 2.8 0 0-2.5 1.4-2.6 6.8h28c-.2-5.6-2.6-6.8-2.6-6.8z"/><path fill="#FFC857" d="M16 17.8c-1.2 0-2.5-.7-3.5-1.7-.1 4.2-1.3 4.6-.7 5.2 1.9 2.1 6.3 2.3 8.4 0 .6-.6-.5-1-.7-5.3-1 1-2.2 1.8-3.5 1.8z"/><path opacity=".05" d="M16 17.8c-1.2 0-2.5-.7-3.5-1.7-.1 4.2-1.3 4.6-.7 5.2 1.9 2.1 6.3 2.3 8.4 0 .6-.6-.5-1-.7-5.3-1 1-2.2 1.8-3.5 1.8z"/><path fill="#FFC857" d="M16 17.8c-3 0-5.9-4-5.9-6.8V7.1c0-2.8 2.4-5.1 5.3-5.1h1.4c3 0 5.3 2.3 5.3 5.1V11c-.2 2.7-3.1 6.8-6.1 6.8z"/><path opacity=".15" fill="#FFF" d="M16 17.8c-3 0-5.9-4-5.9-6.8V7.1c0-2.8 2.4-5.1 5.3-5.1h1.4c3 0 5.3 2.3 5.3 5.1V11c-.2 2.7-3.1 6.8-6.1 6.8z"/></svg>

After

Width:  |  Height:  |  Size: 796 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#79A548" d="M6 5.5h20v21H6z"/><ellipse fill="#79A548" cx="16" cy="26.5" rx="10" ry="3.5"/><ellipse fill="#79A548" cx="16" cy="5.5" rx="10" ry="3.5"/><ellipse fill="#FFF" cx="16" cy="5.5" rx="10" ry="3.5" opacity=".25"/><ellipse cx="16" cy="5.3" rx="7" ry="1.8" opacity=".25"/><g fill="#FFF"><path d="M22.1 17.9c-.1-.1-.2-.2-.4-.2h-.9c-.1-2.5-2.2-4.5-4.7-4.5-.8 0-1.7.2-2.4.7l-.3.1.7 1.2.2-.1c.5-.3 1.1-.5 1.7-.5 1.8 0 3.3 1.4 3.4 3.2h-.8c-.2 0-.3.1-.4.2-.1.1-.1.3 0 .4l1.5 2.5c.2.1.3.1.5.1s.3-.1.4-.2l1.5-2.5c.1-.1.1-.2 0-.4zM17.6 21c-.5.3-1.1.4-1.7.4a3.4 3.4 0 0 1-3.4-3.2h.8c.2 0 .3-.1.4-.2.1-.1.1-.3 0-.4l-1.5-2.5c-.2-.2-.6-.2-.7 0L10 17.6c-.1.1-.1.3 0 .4.1.1.2.2.4.2h.9c.1 2.5 2.2 4.5 4.7 4.5.8 0 1.6-.2 2.4-.6l.2-.1-.7-1.1-.3.1z"/></g></svg>

After

Width:  |  Height:  |  Size: 818 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#9F6358" d="M6 4h20v26H6z"/><path opacity=".2" fill="#FFF" d="M6 4h2v26H6z"/><path opacity=".2" d="M8 4h1v26H8z"/><path opacity=".8" fill="#FFF" d="M21.8 12h-9.5c-.1 0-.3-.1-.3-.3V7.3c0-.2.1-.3.3-.3h9.5c.1 0 .2.1.2.3v4.5c0 .1-.1.2-.2.2z"/><path fill="#7C4C46" d="M26 4H6l1-2h18z"/><path opacity=".2" fill="#FFF" d="M8 4H6l1-2h2z"/><path opacity=".2" d="M9 4H8l1-2h1z"/><path opacity=".8" fill="#FFF" d="M25.8 3.5H7l.5-1h17.8z"/><path fill="#FFF" d="M17.8 26.1h-.1c-.4 0-.9-1.4-.9-1.8 0-.2 0-.2.1-.3-.5.1-1 .2-1.2.5-.1 0-.1.1-.1.3 0 .7.8 2.3 1.3 2.3.1-.1.5-.5.9-1m-.3-2.1c.5 0 1 .1 1 .4 0 .5-.4 1.2-.5 1.2-.3 0-.7-.9-.7-1.3 0-.3 0-.3.2-.3"/></svg>

After

Width:  |  Height:  |  Size: 718 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="#FFC857" d="M24.8 5H7.2c-.1 0-.2.1-.3.1L4 10.9V26.7c0 .2.1.3.3.3h23.5c.1 0 .3-.1.3-.3V11l-2.9-5.8c-.2-.1-.3-.2-.4-.2z"/><g opacity=".15"><path d="M24.8 5H7.2c-.1 0-.2.1-.3.1l-1 2.2h20.3l-1.1-2.1c-.1-.1-.2-.2-.3-.2zM26.9 8.8H5.1L4 11h24z"/></g><path opacity=".75" fill="#3E3E3E" d="M20 19.4v-.9h-.1l-.9-.4-.3-.6.5-1-.6-.6h-.1l-.9.5-.6-.3-.6-1.1h-.9v.1l-.4.9-.6.3-1-.5-.6.6v.1l.5.9-.3.6-1.1.6v.9h.1l.9.4.3.6-.5 1 .6.7.1-.1.9-.5.6.3.4 1.1h.9v-.1l.4-.9.6-.3 1 .5.6-.6v-.1l-.5-.9.3-.6 1.3-.6zM16 21c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>

After

Width:  |  Height:  |  Size: 618 B

Loaded 100 of 12716 files, more files were not shown because too many files have changed in this diff. Show more