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,83 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="headline">
</f:section>
<f:section name="content">
<div class="distribution-detail">
<div class="distribution-detail-previewpane">
<em:distributionImage extensionkey="{extension.extensionKey}" alt="" height="225" width="300" />
</div>
<div class="distribution-detail-body">
<div class="distribution-detail-header">
<h1>{extension.title}</h1>
<p>{extension.description}</p>
</div>
<ul class="distribution-detail-actions">
<f:if condition="{distributionActive}">
<f:else>
<li>
<f:link.action action="installDistribution" controller="Download" arguments="{extension:extension}" class="btn btn-default t3-button-action-installdistribution">
<core:icon identifier="actions-system-extension-import" /> <f:translate key="extensionList.installDistribution">Install</f:translate>
</f:link.action>
</li>
</f:else>
<f:then>
<li>
<button class="btn btn-default distribution-openViewModule" onclick="top.goToModule('web_ViewpageView');">
<core:icon identifier="actions-document-view" /> <f:translate key="distribution.welcome.openViewModule" />
</button>
</li>
<li>
<button class="btn btn-default distribution-openPageModule" onclick="top.goToModule('web_layout');">
<core:icon identifier="actions-open" /> <f:translate key="distribution.welcome.openPageModule" />
</button>
</li>
</f:then>
</f:if>
</ul>
<dl class="dl-horizontal dl-horizontal-wide distribution-detail-summary">
<dt><f:translate key="extensionList.distribution.title" /></dt>
<dd>{extension.title}</dd>
<dt><f:translate key="extensionList.distribution.key" /></dt>
<dd>{extension.extensionKey}</dd>
<dt><f:translate key="extensionList.distribution.version" /></dt>
<dd>{extension.version} (<f:format.date format="d.m.Y">{extension.lastUpdated}</f:format.date>)<br><span class="{extension.stateString}">{extension.stateString}</span></dd>
<dt><f:translate key="extensionList.distribution.author" /></dt>
<dd>{extension.authorName}</dd>
<dt><f:translate key="extensionList.distribution.downloads" /></dt>
<dd>{extension.alldownloadcounter}</dd>
</dl>
<f:if condition="{extension.dependencies}">
<h2><f:translate key="distribution.dependency.headline" /></h2>
<div class="table-fit">
<table class="table table-striped table-hover">
<thead>
<tr>
<td><f:translate key="distribution.dependency.identifier" /></td>
<td><f:translate key="distribution.dependency.type" /></td>
<td><f:translate key="distribution.dependency.version" /></td>
</tr>
</thead>
<tbody>
<f:for each="{extension.dependencies}" as="dependency">
<tr>
<td>{dependency.identifier}</td>
<td>{dependency.type}</td>
<td>
{dependency.lowestVersion}<f:if condition="{dependency.highestVersion}">-{dependency.highestVersion}</f:if>
</td>
</tr>
</f:for>
</tbody>
</table>
</div>
</f:if>
</div>
</div>
</f:section>
@@ -0,0 +1,9 @@
<f:format.raw><f:format.json value="{
result: result,
extension: extension.extensionKey,
installationTypeLanguageKey: installationTypeLanguageKey,
errorCount: '{f:count(subject: unresolvedDependencies)}',
errorTitle: '{f:translate(key: \'downloadExtension.dependencies.errorTitle\')}',
errorMessage: '{f:render(partial: \'List/UnresolvedDependencies\', arguments: \'{_all}\')}',
skipDependencyUri: '{f:uri.action(action: \'installExtensionWithoutSystemDependencyCheck\', format: \'json\', arguments: \'{extension: extension}\')}'
}" /></f:format.raw>
@@ -0,0 +1,41 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main"/>
<f:section name="headline">
<h1><f:translate key="distributions">Get Distributions</f:translate></h1>
</f:section>
<f:section name="content">
<f:if condition="{enableDistributionsView}">
<f:then>
<f:if condition="{showUnsuitableDistributions} == 0">
<div class="row">
<div class="col-sm-6">
<f:form class="typo3-extensionmanager-unsuitable-dist" action="distributions" arguments="{showUnsuitableDistributions: 1}" >
<div class="input-group">
<span class="input-group-btn">
<f:form.submit class="btn btn-default" value="{f:translate(key:'extensionList.showUnsuitableDistributions')}"/>
</span>
</div>
</f:form>
</div>
</div>
</f:if>
<div class="card-container">
<f:for each="{officialDistributions}" as="distribution">
<f:render partial="List/Distribution" arguments="{distribution: distribution, official: 1}" />
</f:for>
<f:for each="{communityDistributions}" as="distribution">
<f:render partial="List/Distribution" arguments="{distribution: distribution, official: 0}" />
</f:for>
</div>
</f:then>
<f:else>
<p>{f:translate(key: 'extensionList.installImpexp')}</p>
<f:link.action action="toggleExtensionInstallationState" controller="Action" arguments="{extensionKey: 'impexp'}" class="btn btn-default t3-button-action-installdistribution">
<span class="fa fa-cloud-download">&nbsp;</span><f:translate key="distribution.installImpexp">Install impexp</f:translate>
</f:link.action>
</f:else>
</f:if>
</f:section>
@@ -0,0 +1,103 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="headline">
<h1><f:translate key="installedExtensions" /></h1>
</f:section>
<f:section name="content">
<f:render partial="List/UploadForm" />
<form class="form-inline">
<div class="form-group">
<f:form.textfield name="Tx_Extensionmanager_extensionkey" placeholder="{f:translate(key:'extensionList.search')}" id="Tx_Extensionmanager_extensionkey" value="{search}" class="form-control" />
</div>
</form>
<br>
<div class="table-fit">
<table id="typo3-extension-list" class="table table-striped table-hover typo3-extension-list">
<thead>
<tr>
<th title="{f:translate(key:'extensionList.header.title.update')}"><f:translate key="extensionList.header.update"/></th>
<th title="{f:translate(key:'extensionList.header.title.activate')}"><f:translate key="extensionList.header.activate"/></th>
<th><f:translate key="extensionList.header.extensionName"/></th>
<th><f:translate key="extensionList.header.extensionKey"/></th>
<th><f:translate key="extensionList.header.extensionVersion"/></th>
<th><f:translate key="extensionList.header.extensionState"/></th>
<th><f:translate key="extensionList.header.extensionType"/></th>
<th><f:translate key="extensionList.header.extensionActions"/></th>
</tr>
</thead>
<tbody>
<f:for each="{extensions}" as="extension" key="extensionKey">
<f:if condition="{extension.terObject}">
<f:then>
<tr id="{extensionKey}" class="{f:if(condition:'{extension.terObject.reviewState} == -1', then:'insecure')}{f:if(condition:'{extension.terObject.reviewState} == -2', then:'outdated')} {f:if(condition:'{extension.installed}', then: '', else: 'inactive')}">
</f:then>
<f:else>
<tr id="{extensionKey}" class="{f:if(condition:'{extension.installed}', then: '', else: 'inactive')}">
</f:else>
</f:if>
<td>
<f:if condition="{extension.updateAvailable}">
<f:if condition="{isComposerMode} || {settings.offlineMode} || {extension.state} == 'excludeFromUpdates'">
<f:then>
<span class="btn btn-default disabled" title="{f:translate(key:'extensionList.updateDisabled')}">
<core:icon identifier="actions-system-extension-update" />
</span>
</f:then>
<f:else>
<f:link.action action="updateCommentForUpdatableVersions"
class="btn btn-default"
additionalAttributes="{data-action:'update-extension'}"
format="json" controller="Download"
arguments="{extension:extension.key, integerVersionStart: extension.terObject.integerVersion, integerVersionStop: extension.updateToVersion.integerVersion}"
title="{f:translate(key:'extensionList.updateToVersion', arguments:'{0:extension.updateToVersion.version}')}"
>
<core:icon identifier="actions-system-extension-update" />
</f:link.action>
</f:else>
</f:if>
</f:if>
</td>
<td data-order="{f:if(condition: extension.installed, then: 'active', else: 'inactive')}">
<em:toggleExtensionInstallationState extension="{extension}" />
</td>
<td>
<f:if condition="{extension.ext_icon}">
<img class="ext-icon" src="../{extension.siteRelPath}{extension.ext_icon}" alt="" />
</f:if>
<span title="{extension.description}">{extension.title}</span>
</td>
<td>
{extensionKey}
</td>
<td>
{extension.version}
</td>
<td>
<span class="label label-{extension.state}">{extension.state}</span>
</td>
<td>
{extension.type}
</td>
<td>
<div class="btn-group">
<em:processAvailableActions extension="{extension}">
<em:updateScript class="btn btn-default" extensionKey="{extension.key}" />
<f:if condition="!{isComposerMode}">
<em:removeExtension class="btn btn-default" extension="{extension}" />
</f:if>
<f:link.action action="downloadExtensionZip" controller="Action" arguments="{extension:extension.key}" title="{f:translate(key:'extensionList.downloadzip')}" class="btn btn-default">
<core:icon identifier="actions-system-extension-download" />
</f:link.action>
<em:reloadSqlData class="btn btn-default" extension="{extension}" />
</em:processAvailableActions>
</div>
</td>
</tr>
</f:for>
</tbody>
</table>
</div>
</f:section>
@@ -0,0 +1,67 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="docheader-buttons">
<a href="{f:uri.action(action: 'ter')}" title="{f:translate(key:'extConfTemplate.backToList')}">
<core:icon identifier="actions-view-go-back" />
</a>
</f:section>
<f:section name="headline">
<h1><f:translate key="showAllVersions" /> {extensionKey}</h1>
</f:section>
<f:section name="content">
<f:if condition="{currentVersion}">
<p><f:format.nl2br>{currentVersion.description}</f:format.nl2br></p>
<table cellpadding="0" cellspacing="0" class="currentVersionInfo">
<tr class="ter-ext-single-info-key">
<th><f:translate key="extensionList.showAllVersions.extensionKey" /></th>
<td><strong>{currentVersion.extensionKey}</strong></td>
</tr>
<tr>
<th><f:translate key="extensionList.showAllVersions.version" /></th>
<td>
{currentVersion.version}
<span class="ter-ext-state ter-ext-state-{currentVersion.stateString}">{currentVersion.stateString}</span>
</td>
</tr>
<tr>
<th><f:translate key="extensionList.showAllVersions.lastUploaded" /></th>
<td>
<f:format.date>{currentVersion.lastUpdated}</f:format.date></td>
</tr>
<tr>
<th><f:translate key="extensionList.showAllVersions.downloads" /></th>
<td>
<f:format.number decimals="0">
{currentVersion.alldownloadcounter}
</f:format.number>
</td>
</tr>
<tr>
<th><f:translate key="extensionList.showAllVersions.category" /></th>
<td>{currentVersion.categoryString}</td>
</tr>
<tr class="ter-ext-single-info-manual">
<th><f:translate key="extensionList.showAllVersions.manual" /></th>
<td>
<a href="https://docs.typo3.org/typo3cms/extensions/{currentVersion.extensionKey}/" target="_blank" rel="noopener noreferrer">
<f:translate key="extensionList.showAllVersions.readOnline" />
</a>
</td>
</tr>
<tr>
<th><f:translate key="extensionList.showAllVersions.author" /></th>
<td>{currentVersion.authorName}</td>
</tr>
</table>
</f:if>
<table id="terVersionTable" class="table table-striped table-hover typo3-extension-list">
<f:render partial="List/TerShowVersionsTable" arguments="{extensions: extensions}" />
</table>
</f:section>
@@ -0,0 +1,44 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="headline">
<h1><f:translate key="getExtensions">Get Extensions</f:translate></h1>
</f:section>
<f:section name="content">
<f:render partial="List/UploadForm" />
<div class="row">
<div class="col-sm-6">
<f:form class="typo3-extensionmanager-searchTerForm form-inline" action="ter">
<div class="input-group">
<f:form.textfield name="search" value="{search}" class="form-control" />
<span class="input-group-btn">
<f:form.submit class="btn btn-default" value="{f:translate(key:'searchTemplate.submitButton')}"/>
</span>
</div>
</f:form>
</div>
<div class="col-sm-6">
<div class="pull-right">
<f:render partial="List/UpdateFromTer" />
</div>
</div>
</div>
<div id="terTableWrapper">
<f:if condition="{search}">
<f:then>
<table id="terSearchTable" class="table table-striped table-hover typo3-extension-list">
<f:render partial="List/TerTable" arguments="{paginatedExtensions:extensions, availableAndInstalled:availableAndInstalled}" />
</table>
</f:then>
<f:else>
<f:render partial="List/TerPaginator" arguments="{extensions:extensions, showVersionList:showVersionList, availableAndInstalled:availableAndInstalled}" />
</f:else>
</f:if>
<div class="splash-receivedata x-mask-loading"><core:icon identifier="spinner-circle-dark" /> <f:translate key="extensionList.updateFromTer.label"/></div>
</div>
</f:section>
@@ -0,0 +1,20 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="headline">
<h1><f:translate key="installExtension">Install extension</f:translate> <small>{f:translate(key: 'downloadExtension.dependencies.errorTitle')}</small></h1>
</f:section>
<f:section name="content">
<f:render partial="List/UnresolvedDependencies" arguments="{_all}" />
<f:be.infobox title="{f:translate(key: 'dependencyCheck.unresolvedDependencies.title')}" state="1">
<f:render partial="List/UnresolvedDependenciesMessage" />
</f:be.infobox>
<f:link.action action="index" class="btn btn-default onClickMaskExtensionManager">
Go back
</f:link.action>
<f:link.action action="installExtensionWithoutSystemDependencyCheck" controller="Action" arguments="{extensionKey: extension.extensionKey}" class="btn btn-danger t3js-dependencies disabled onClickMaskExtensionManager">
<f:translate key="dependencyCheck.unresolvedDependencies.proceed" />
</f:link.action>
</f:section>
@@ -0,0 +1,20 @@
{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
<f:layout name="main" />
<f:section name="headline">
<h1><f:translate key="updateScript.headline" arguments="{0: extensionKey}" /></h1>
</f:section>
<f:section name="content">
<div class="update-script">
<f:if condition="{updateScriptResult}">
<f:then>
<f:format.raw>{updateScriptResult}</f:format.raw>
</f:then>
<f:else>
<f:translate key="updateScript.none" />
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1,27 @@
<f:form enctype="multipart/form-data" id="extensionUploadForm" method="post" controller="UploadExtensionFile" action="extract" class="form-horizontal">
<div class="form-group">
<label for="extensionFile" class="col-sm-2 control-label">
<f:translate key="uploadTemplate.extensionLabel" />
</label>
<div class="col-sm-4">
<f:form.upload name="extensionFile" id="extensionFile" class="form-control"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<div class="checkbox">
<label for="extensionOverwrite">
<f:form.checkbox name="overwrite" id="extensionOverwrite" value="1" />
{f:translate(key:'extensionList.overwriteExtension')}
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<f:form.submit value="{f:translate(key:'uploadTemplate.uploadButton')}" id="extensionUpload" class="btn btn-primary"/>
</div>
</div>
</f:form>