TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:02 +02:00
commit b53992613d
22 changed files with 2485 additions and 0 deletions
+359
View File
@@ -0,0 +1,359 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:belog/Resources/Private/Language/locallang.xlf" date="2011-10-17T20:22:32Z" product-name="belog">
<header/>
<body>
<trans-unit id="adminLog">
<source>Administration log</source>
</trans-unit>
<trans-unit id="allUsers">
<source>[All users]</source>
</trans-unit>
<trans-unit id="any">
<source>[Any]</source>
</trans-unit>
<trans-unit id="viaUser">
<source>via</source>
</trans-unit>
<trans-unit id="live">
<source>LIVE</source>
</trans-unit>
<trans-unit id="draft">
<source>Draft</source>
</trans-unit>
<trans-unit id="self">
<source>Self</source>
</trans-unit>
<trans-unit id="userGroup">
<source>Group</source>
</trans-unit>
<trans-unit id="set">
<source>Filter</source>
</trans-unit>
<trans-unit id="reset">
<source>Reset</source>
</trans-unit>
<trans-unit id="all">
<source>[all]</source>
</trans-unit>
<trans-unit id="actionAll">
<source>All</source>
</trans-unit>
<trans-unit id="actionDatabase">
<source>Database</source>
</trans-unit>
<trans-unit id="actionFile">
<source>File</source>
</trans-unit>
<trans-unit id="actionCache">
<source>Cache</source>
</trans-unit>
<trans-unit id="actionSettings">
<source>Settings</source>
</trans-unit>
<trans-unit id="actionLogin">
<source>Login</source>
</trans-unit>
<trans-unit id="actionErrors">
<source>Errors</source>
</trans-unit>
<trans-unit id="group">
<source>Group</source>
</trans-unit>
<trans-unit id="user">
<source>User</source>
</trans-unit>
<trans-unit id="users">
<source>Users</source>
</trans-unit>
<trans-unit id="time">
<source>Time</source>
</trans-unit>
<trans-unit id="max">
<source>Max</source>
</trans-unit>
<trans-unit id="showHistory">
<source>Show History</source>
</trans-unit>
<trans-unit id="action">
<source>Action</source>
</trans-unit>
<trans-unit id="channel">
<source>Channel</source>
</trans-unit>
<trans-unit id="levels">
<source>Levels</source>
</trans-unit>
<trans-unit id="workspace">
<source>Workspace</source>
</trans-unit>
<trans-unit id="overview">
<source>Overview</source>
</trans-unit>
<trans-unit id="type_1">
<source>DB</source>
</trans-unit>
<trans-unit id="action_1_1">
<source>Insert</source>
</trans-unit>
<trans-unit id="action_1_2">
<source>Update</source>
</trans-unit>
<trans-unit id="action_1_3">
<source>Delete</source>
</trans-unit>
<trans-unit id="action_1_4">
<source>Move</source>
</trans-unit>
<trans-unit id="action_1_5">
<source>Check</source>
</trans-unit>
<trans-unit id="msg_1_0_1">
<source>Referer host '%s' and server host '%s' did not match!</source>
</trans-unit>
<trans-unit id="msg_1_1_11">
<source>Attempt to insert record on page '%s' (%s) where this table, %s, is not allowed</source>
</trans-unit>
<trans-unit id="msg_1_1_12">
<source>Attempt to insert a record on page '%s' (%s) from table '%s' without permissions. Or non-existing page.</source>
</trans-unit>
<trans-unit id="msg_1_2_1">
<source>Attempt to modify table '%s' without permission</source>
</trans-unit>
<trans-unit id="msg_1_2_2">
<source>Attempt to modify record '%s' (%s) without permission. Or non-existing page.</source>
</trans-unit>
<trans-unit id="msg_1_2_10">
<source>Record '%s' (%s) was updated.</source>
</trans-unit>
<trans-unit id="msg_1_2_12">
<source>MySQL error: '%s' (%s)</source>
</trans-unit>
<trans-unit id="msg_1_4_1">
<source>Attempt to move record '%s' (%s) to after a non-existing record (uid=%s)</source>
</trans-unit>
<trans-unit id="msg_1_4_2">
<source>Moved record '%s' (%s) to page '%s' (%s)</source>
</trans-unit>
<trans-unit id="msg_1_4_3">
<source>Moved record '%s' (%s) from page '%s' (%s)</source>
</trans-unit>
<trans-unit id="msg_1_4_4">
<source>Moved record '%s' (%s) on page '%s' (%s)</source>
</trans-unit>
<trans-unit id="msg_1_4_10">
<source>Attempt to move page '%s' (%s) to inside of its own rootline (at page '%s' (%s))</source>
</trans-unit>
<trans-unit id="msg_1_4_11">
<source>Attempt to insert record on page '%s' (%s) where this table, %s, is not allowed</source>
</trans-unit>
<trans-unit id="msg_1_4_12">
<source>Attempt to insert a record on page '%s' (%s) from table '%s' without permissions. Or non-existing page.</source>
</trans-unit>
<trans-unit id="msg_1_4_13">
<source>Attempt to move record '%s' (%s) to after another record, although the table has no sorting row.</source>
</trans-unit>
<trans-unit id="msg_1_4_14">
<source>Attempt to move record '%s' (%s) without having permissions to do so</source>
</trans-unit>
<trans-unit id="msg_1_5_1">
<source>You cannot change the 'doktype' of page '%s' to the desired value.</source>
</trans-unit>
<trans-unit id="msg_1_5_2">
<source>'doktype' of page '%s' could not be changed because the page contains records from disallowed tables; %s</source>
</trans-unit>
<trans-unit id="msg_1_5_3">
<source>Too few items in the list of values. (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_10">
<source>Could not delete file '%s' (does not exist). (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_11">
<source>Copying file '%s' failed!: No destination file (%s) possible!. (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_12">
<source>File extension '%s' is not allowed. (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_13">
<source>File size (%s) of file '%s' exceeds limit (%s). (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_14">
<source>The destination (%s) or the source file (%s) does not exist. (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_15">
<source>Copying to file '%s' failed! (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_16">
<source>Copying file '%s' failed!: The destination path (%s) may be write protected. Please make it write enabled!. (%s)</source>
</trans-unit>
<trans-unit id="msg_1_5_4">
<source>The value of the field "%s" has been changed from "%s" to "%s" as it is required to be unique.</source>
</trans-unit>
<trans-unit id="type_2">
<source>FILE</source>
</trans-unit>
<trans-unit id="action_2_1">
<source>Upload</source>
</trans-unit>
<trans-unit id="action_2_2">
<source>Copy</source>
</trans-unit>
<trans-unit id="action_2_3">
<source>Move</source>
</trans-unit>
<trans-unit id="action_2_4">
<source>Delete</source>
</trans-unit>
<trans-unit id="action_2_5">
<source>Rename</source>
</trans-unit>
<trans-unit id="action_2_6">
<source>New</source>
</trans-unit>
<trans-unit id="action_2_7">
<source>Unzip</source>
</trans-unit>
<trans-unit id="action_2_8">
<source>New file</source>
</trans-unit>
<trans-unit id="action_2_9">
<source>Edit</source>
</trans-unit>
<trans-unit id="msg_2_9_1">
<source>File saved to '%s', bytes: %s, MD5: %s </source>
</trans-unit>
<trans-unit id="type_3">
<source>CACHE</source>
</trans-unit>
<trans-unit id="action_3_1">
<source>Clear Cache</source>
</trans-unit>
<trans-unit id="type_4">
<source>EXTENSION</source>
</trans-unit>
<trans-unit id="type_5">
<source>ERROR</source>
</trans-unit>
<trans-unit id="action_5_0">
<source>Error handler</source>
</trans-unit>
<trans-unit id="type_254">
<source>SETTING</source>
</trans-unit>
<trans-unit id="action_254_1">
<source>Change</source>
</trans-unit>
<trans-unit id="type_255">
<source>LOGIN</source>
</trans-unit>
<trans-unit id="action_255_1">
<source>LOGIN</source>
</trans-unit>
<trans-unit id="action_255_2">
<source>LOGOUT</source>
</trans-unit>
<trans-unit id="action_255_3">
<source>ATTEMPT</source>
</trans-unit>
<trans-unit id="chLog_title">
<source>Admin Changelog</source>
</trans-unit>
<trans-unit id="chLog_users_0">
<source>All users</source>
</trans-unit>
<trans-unit id="chLog_users_-1">
<source>Self</source>
</trans-unit>
<trans-unit id="chLog_time_0">
<source>This week</source>
</trans-unit>
<trans-unit id="chLog_time_1">
<source>Last week</source>
</trans-unit>
<trans-unit id="chLog_time_2">
<source>Last 7 days</source>
</trans-unit>
<trans-unit id="chLog_time_10">
<source>This month</source>
</trans-unit>
<trans-unit id="chLog_time_11">
<source>Last month</source>
</trans-unit>
<trans-unit id="chLog_time_12">
<source>Last 31 days</source>
</trans-unit>
<trans-unit id="chLog_time_20">
<source>No limit</source>
</trans-unit>
<trans-unit id="chLog_l_time">
<source>Time</source>
</trans-unit>
<trans-unit id="chLog_l_user">
<source>User</source>
</trans-unit>
<trans-unit id="chLog_l_action">
<source>Action</source>
</trans-unit>
<trans-unit id="chLog_l_channel">
<source>Channel</source>
</trans-unit>
<trans-unit id="chLog_l_types">
<source>Type</source>
</trans-unit>
<trans-unit id="chLog_l_level">
<source>Level</source>
</trans-unit>
<trans-unit id="chLog_l_table">
<source>Table</source>
</trans-unit>
<trans-unit id="chLog_l_details">
<source>Details</source>
</trans-unit>
<trans-unit id="chLog_menuUsers">
<source>Users</source>
</trans-unit>
<trans-unit id="chLog_menuPageId">
<source>Page</source>
</trans-unit>
<trans-unit id="chLog_menuDepth">
<source>Depth</source>
</trans-unit>
<trans-unit id="chLog_menuTime">
<source>Time</source>
</trans-unit>
<trans-unit id="systemmessage.errorsInPeriod">
<source><![CDATA[We have found %1$d error(s). Please check your <a href="%2$s">system log</a>.]]></source>
</trans-unit>
<trans-unit id="actions">
<source>Actions</source>
</trans-unit>
<trans-unit id="actions.delete">
<source>Delete similar errors</source>
</trans-unit>
<trans-unit id="actions.deleteWarnings">
<source>Delete similar warnings</source>
</trans-unit>
<trans-unit id="actions.delete.message">
<source>Total entries deleted: %1$d</source>
</trans-unit>
<trans-unit id="actions.delete.noRowFound">
<source>Log entry could not be found.</source>
</trans-unit>
<trans-unit id="info.noRecords.message">
<source>No records found.</source>
</trans-unit>
<trans-unit id="info.selectPage.title">
<source>No page selected</source>
</trans-unit>
<trans-unit id="info.selectPage.message">
<source>Select a page to display logs for.</source>
</trans-unit>
<trans-unit id="error.noAccess.title">
<source>No access!</source>
</trans-unit>
<trans-unit id="error.noAccess.message">
<source>You don't have access to the selected page.</source>
</trans-unit>
</body>
</file>
</xliff>
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:belog/Resources/Private/Language/module.xlf" date="2025-11-10T13:37:37Z" product-name="belog">
<header/>
<body>
<trans-unit id="title">
<source>Log</source>
</trans-unit>
<trans-unit id="short_description">
<source>Viewing log</source>
</trans-unit>
<trans-unit id="description">
<source>Allows you access to the full backend changelog in TYPO3.</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,157 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:belog="http://typo3.org/ns/TYPO3/CMS/Belog/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:form object="{constraint}" action="list" name="constraint">
<f:variable name="dateFormat" value="{f:constant(name: '\TYPO3\CMS\Core\Domain\DateTimeFormat::ISO8601_LOCALTIME')}" />
<div class="form-row">
<div class="form-group">
<label for="belog-users" class="form-label"><f:translate key="users" /></label>
<f:form.select
property="userOrGroup"
class="form-select"
id="belog-users"
>
<f:form.select.option value="0">{f:translate(key:'allUsers')}</f:form.select.option>
<f:form.select.option value="-1">{f:translate(key:'self')}</f:form.select.option>
<f:form.select.optgroup label="{f:translate(key:'group')}">
<f:for each="{userGroups.groups}" as="label" key="key">
<f:form.select.option value="{key}">{label}</f:form.select.option>
</f:for>
</f:form.select.optgroup>
<f:form.select.optgroup label="{f:translate(key:'user')}">
<f:for each="{userGroups.users}" as="label" key="key">
<f:form.select.option value="{key}">{label}</f:form.select.option>
</f:for>
</f:form.select.optgroup>
</f:form.select>
</div>
<div class="form-group">
<label for="belog-max" class="form-label"><f:translate key="max" /></label>
<f:form.select
property="number"
options="{selectableNumberOfLogEntries}"
class="form-select"
id="belog-max"
/>
</div>
<f:if condition="{showWorkspaceSelector}">
<div class="form-group">
<label for="belog-workspaces" class="form-label"><f:translate key="workspace" /></label>
<f:form.select
property="workspaceUid"
options="{workspaces}"
class="form-select"
id="belog-workspaces"
/>
</div>
</f:if>
<div class="form-group">
<label for="belog-pageId" class="form-label"><f:translate key="chLog_menuPageId" /></label>
<div class="input-group">
<f:form.textfield
type="number"
property="pageId"
value="{pageId}"
id="belog-pageId"
class="form-control"
/>
<button
class="btn btn-default t3js-element-browser"
data-target="{f:be.uri(route: 'wizard_element_browser')}"
data-trigger-for="belog-pageId"
data-mode="db"
title="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.browse_db')}"
>
<core:icon identifier="actions-insert-record" />
</button>
</div>
</div>
<f:if condition="{pageId}">
<div class="form-group">
<label for="belog-depth" class="form-label"><f:translate key="chLog_menuDepth" /></label>
<f:form.select
property="depth"
options="{pageDepths}"
class="form-select"
id="belog-depth"
/>
</div>
</f:if>
<div class="form-group">
<label for="belog-channel" class="form-label"><f:translate key="channel" /></label>
<f:form.select
property="channel"
options="{channels}"
prependOptionLabel="{f:translate(key='all')}"
prependOptionValue=""
class="form-select"
id="belog-channel"
value="{channel}"
/>
</div>
<div class="form-group">
<label for="belog-level" class="form-label"><f:translate key="levels" /></label>
<f:form.select
property="level"
options="{levels}"
prependOptionLabel="{f:translate(key='all')}"
prependOptionValue=""
class="form-select"
id="belog-level"
value="{level}"
/>
</div>
<div class="form-group">
<label for="manualDateStart" class="form-label"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:from" /></label>
<div class="input-group">
<f:form.textfield
property="manualDateStart"
value="{f:if(condition: constraint.manualDateStart, then: \"{f:format.date(format: dateFormat, date: '{constraint.manualDateStart}')}\")}"
id="manualDateStart"
additionalAttributes="{'autocomplete': 'off'}"
class="form-control form-control-clearable t3js-datetimepicker"
data="{date-type: 'datetime'}"
/>
<label class="btn btn-default" for="manualDateStart">
<core:icon identifier="actions-calendar" />
</label>
</div>
</div>
<div class="form-group">
<label for="manualDateStop" class="form-label"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:to" /></label>
<div class="input-group">
<f:form.textfield
property="manualDateStop"
value="{f:format.date(format: dateFormat, date: '{constraint.manualDateStop}')}"
additionalAttributes="{'autocomplete': 'off'}"
id="manualDateStop"
class="form-control form-control-clearable t3js-datetimepicker"
data="{date-type: 'datetime'}"
/>
<label class="btn btn-default" for="manualDateStop">
<core:icon identifier="actions-calendar" />
</label>
</div>
</div>
<div class="form-group align-self-end">
<f:form.button type="submit" name="operation" value="filter" class="btn btn-default">{f:translate(key: 'set')}</f:form.button>
<f:form.button type="submit" name="operation" value="reset-filters" class="btn btn-link">{f:translate(key: 'reset')}</f:form.button>
</div>
</div>
</f:form>
</html>
@@ -0,0 +1,135 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
xmlns:belog="http://typo3.org/ns/TYPO3/CMS/Belog/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:if condition="{groupedLogEntries -> f:count()} > 0">
<f:then>
<f:for each="{groupedLogEntries}" as="pidEntry" key="pid">
<f:for each="{pidEntry}" as="day" key="dayTimestamp">
<h3>
<f:format.date format="{settings.dateFormat}">@{dayTimestamp}</f:format.date>
</h3>
<div class="table-fit">
<table class="table table-striped table-hover">
<thead>
<tr>
<th></th>
<th><f:translate key="chLog_l_time"/></th>
<th colspan="2"><f:translate key="chLog_l_user"/></th>
<th>
<f:if condition="{pageId}">
<f:then>
<f:translate key="chLog_l_table"/>
</f:then>
<f:else>
<f:translate key="chLog_l_level"/>
</f:else>
</f:if>
</th>
<th><f:translate key="chLog_l_channel"/></th>
<th><f:translate key="chLog_l_details"/></th>
<th class="col-control"></th>
</tr>
</thead>
<tbody>
<f:for each="{day}" as="logItem">
<tr>
<td class="col-icon">
<f:if condition="{logItem.errorIconClass}">
<core:icon identifier="{logItem.errorIconClass}" />
</f:if>
</td>
<td class="col-time">
<f:format.date format="H:i:s">{logItem.tstamp}</f:format.date>
</td>
<td class="col-avatar">
<f:if condition="{belog:username(uid:logItem.backendUserUid)}">
<be:avatar backendUser="{logItem.backendUserUid}" showIcon="true"/>
</f:if>
</td>
<td>
<f:if condition="{belog:username(uid:logItem.backendUserUid)}">
<f:then>
<belog:username uid="{logItem.backendUserUid}"/>
</f:then>
<f:else>[{logItem.backendUserUid}]</f:else>
</f:if>
<f:if condition="{logItem.logData.originalUser}">
({f:translate(key:'viaUser')}
<f:if condition="{belog:username(uid:logItem.logData.originalUser)}">
<f:then>
<belog:username uid="{logItem.logData.originalUser}"/>
</f:then>
<f:else>[{logItem.logData.originalUser}]</f:else>
</f:if>
)
</f:if>
<f:if condition="{workspaces}">
<br>
<span class="text-variant">
<f:if condition="{belog:workspaceTitle(uid:logItem.workspaceUid)}">
<f:then><belog:workspaceTitle uid="{logItem.workspaceUid}"/></f:then>
<f:else>[{logItem.workspaceUid}]</f:else>
</f:if>
</span>
</f:if>
</td>
<td>
<f:if condition="{pageId}">
<f:then>
{logItem.tableName}
</f:then>
<f:else>
{logItem.level}
</f:else>
</f:if>
</td>
<td>
{logItem.channel}
</td>
<td class="col-word-break" lang="en">
<belog:formatDetails logEntry="{logItem}"/>
</td>
<td class="col-control">
<f:if condition="{logItem.error} == 1">
<f:form.button class="btn btn-sm btn-warning" form="form-delete-message" type="submit" name="errorUid" value="{logItem.uid}">
<core:icon identifier="actions-delete" size="small"/>
<f:translate key="actions.deleteWarnings"/>
</f:form.button>
</f:if>
<f:if condition="{logItem.error} == 2">
<f:form.button class="btn btn-sm btn-danger" form="form-delete-message" type="submit" name="errorUid" value="{logItem.uid}">
<core:icon identifier="actions-delete" size="small"/>
<f:translate key="actions.delete"/>
</f:form.button>
</f:if>
<f:if condition="{logItem.logData.history}">
<a class="btn btn-sm btn-default" href="{be:moduleLink(route: 'record_history', arguments: '{historyEntry: logItem.logData.history}')}" title="{f:translate(key: 'showHistory')}">
<core:icon identifier="actions-document-history-open" />
<f:translate id="showHistory" />
</a>
</f:if>
</td>
</tr>
</f:for>
</tbody>
</table>
</div>
</f:for>
</f:for>
<f:form action="deleteMessage" id="form-delete-message" method="post" class="hidden"/>
</f:then>
<f:else>
<f:be.infobox
message="{f:translate(key: 'LLL:EXT:belog/Resources/Private/Language/locallang.xlf:info.noRecords.message')}"
state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::NOTICE')}"
/>
</f:else>
</f:if>
</html>
@@ -0,0 +1,34 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="Module"/>
<f:section name="Content">
<f:asset.module identifier="@typo3/backend/global-event-handler.js"/>
<f:asset.module identifier="@typo3/belog/backend-log.js"/>
<h1>
<f:translate key="adminLog" />
</h1>
<f:render partial="Content/Filter" arguments="{_all}" />
<f:if condition="{access}">
<f:then>
<f:render partial="Content/LogEntries" arguments="{_all}" />
</f:then>
<f:else if="!{pageId}">
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::INFO')}" title="{f:translate(key: 'LLL:EXT:belog/Resources/Private/Language/locallang.xlf:info.selectPage.title')}">
<p><f:translate key="LLL:EXT:belog/Resources/Private/Language/locallang.xlf:info.selectPage.message" /></p>
</f:be.infobox>
</f:else>
<f:else>
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::ERROR')}" title="{f:translate(key: 'LLL:EXT:belog/Resources/Private/Language/locallang.xlf:error.noAccess.title')}">
<p><f:translate key="LLL:EXT:belog/Resources/Private/Language/locallang.xlf:error.noAccess.message" /></p>
</f:be.infobox>
</f:else>
</f:if>
</f:section>
</html>