Skip to content
Snippets Groups Projects
Commit 6d06b400 authored by Tim Wagner's avatar Tim Wagner
Browse files

[TASK] Create backend preview for latest news plugin

parent 7801c702
No related branches found
No related tags found
1 merge request!24[FEATURE] Plugin Backend Previews
......@@ -74,6 +74,37 @@ class PluginRenderer implements PageLayoutViewDrawItemHookInterface {
$view->assign('data', $templateData);
$itemContent .= $view->render();
break;
case 'sgnews_latest':
$drawItem = FALSE;
$view = $this->createViewWithTemplate('Latest');
$view->assign('uid', $row['uid']);
$this->adaptPluginHeaderContent($headerContent, $row);
// Get available plugin settings and their values from flexform
$pluginConfiguration = GeneralUtility::xml2array(
$row['pi_flexform'], 'T3DataStructure'
)['data']['main']['lDEF'];
$templateData = [
'limit' => $pluginConfiguration['settings.limit']['vDEF'],
'categories' => $this->addTitlesToRecordIdList(
'pages',$pluginConfiguration['settings.categories']['vDEF']
),
'tags' => $this->addTitlesToRecordIdList(
'sys_category', $pluginConfiguration['settings.tags']['vDEF']
),
'starttime' => $pluginConfiguration['settings.starttime']['vDEF'],
'endtime' => $pluginConfiguration['settings.endtime']['vDEF'],
'sortBy' => $pluginConfiguration['settings.sortBy']['vDEF']
];
$view->assign('data', $templateData);
$itemContent .= $view->render();
break;
default:
......@@ -147,9 +178,7 @@ class PluginRenderer implements PageLayoutViewDrawItemHookInterface {
*/
protected function addTitlesToRecordIdList(string $table, string $recordIdList): string {
$backendUtility = GeneralUtility::makeInstance(BackendUtility::class);
// Filtering because explode returns [0 => ''] if $recordIdList is empty (i.e. '')
// but we want an empty array in that case.
$recordIdsArray = array_filter(explode(',', $recordIdList));
$recordIdsArray = GeneralUtility::intExplode(',', $recordIdList, TRUE);
$recordsWithTitlesArray = [];
foreach ($recordIdsArray as $recordId) {
......
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2020-07-17T14:09:42Z">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2020-07-17T15:32:34Z">
<header>
<type>module</type>
<description>Language labels for the backend module belonging to extension 'sg_news'</description>
......@@ -65,6 +65,14 @@
<source><![CDATA[[News] News Single View]]></source>
<target><![CDATA[[News] News Einzelansicht]]></target>
</trans-unit>
<trans-unit id="plugin.preview.latest.categories" approved="yes">
<source><![CDATA[Only show news from these categories]]></source>
<target><![CDATA[Zeige nur News dieser Kategorien]]></target>
</trans-unit>
<trans-unit id="plugin.preview.latest.tags" approved="yes">
<source><![CDATA[Only show news with these tags]]></source>
<target><![CDATA[Zeige nur News mit diesen Tags]]></target>
</trans-unit>
<trans-unit id="titleLatestPlugin" approved="yes">
<source><![CDATA[Latest News]]></source>
<target><![CDATA[Neueste News]]></target>
......
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2019-06-21T20:03:43Z">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2020-07-17T15:31:49Z">
<header>
<type>database</type>
<description>Language labels for database tables/fields belonging to extension 'sg_news'</description>
......@@ -29,10 +29,6 @@
<source><![CDATA[Pagetitle (automatically generated from Last Update + Headline)]]></source>
<target><![CDATA[Seitentitel (automatisch generiert aus Letzte Aktualisierung + Schlagzeile)]]></target>
</trans-unit>
<trans-unit id="pages.tx_sgnews_news_author" approved="yes">
<source><![CDATA[Author]]></source>
<target><![CDATA[Autor]]></target>
</trans-unit>
<trans-unit id="pages.tx_sgnews_content_from_another_page" approved="yes">
<source><![CDATA[Show the content from another page]]></source>
<target><![CDATA[Zeige den Inhalt einer anderen Seite an]]></target>
......@@ -61,6 +57,10 @@
<source><![CDATA[Don't show in "Latest News"]]></source>
<target><![CDATA[Nicht in "letzten News" anzeigen]]></target>
</trans-unit>
<trans-unit id="pages.tx_sgnews_news_author" approved="yes">
<source><![CDATA[Author]]></source>
<target><![CDATA[Autor]]></target>
</trans-unit>
<trans-unit id="pages.tx_sgnews_related_news" approved="yes">
<source><![CDATA[Related Elements]]></source>
<target><![CDATA[Verwandte Elemente]]></target>
......@@ -235,4 +235,4 @@
</trans-unit>
</body>
</file>
</xliff>
</xliff>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2020-07-17T14:09:42Z">
<file source-language="en" datatype="plaintext" original="messages" date="2020-07-17T15:32:34Z">
<header>
<type>module</type>
<description>Language labels for the backend module belonging to extension 'sg_news'</description>
......@@ -57,6 +57,12 @@
<trans-unit id="pageTypeTitlePluginSingle.news">
<source><![CDATA[[News] News Single View]]></source>
</trans-unit>
<trans-unit id="plugin.preview.latest.categories">
<source><![CDATA[Only show news from these categories]]></source>
</trans-unit>
<trans-unit id="plugin.preview.latest.tags">
<source><![CDATA[Only show news with these tags]]></source>
</trans-unit>
<trans-unit id="titleLatestPlugin">
<source><![CDATA[Latest News]]></source>
</trans-unit>
......
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2019-06-21T20:03:43Z">
<file source-language="en" datatype="plaintext" original="messages" date="2020-07-17T15:31:49Z">
<header>
<type>database</type>
<description>Language labels for database tables/fields belonging to extension 'sg_news'</description>
......@@ -27,9 +27,6 @@
<trans-unit id="pages.tx_sgnews_content_from_another_page">
<source><![CDATA[Show the content from another page]]></source>
</trans-unit>
<trans-unit id="pages.tx_sgnews_news_author">
<source><![CDATA[Author]]></source>
</trans-unit>
<trans-unit id="pages.tx_sgnews_date_end">
<source><![CDATA[Date until]]></source>
</trans-unit>
......@@ -48,6 +45,9 @@
<trans-unit id="pages.tx_sgnews_never_highlighted">
<source><![CDATA[Don't show in "Latest News"]]></source>
</trans-unit>
<trans-unit id="pages.tx_sgnews_news_author">
<source><![CDATA[Author]]></source>
</trans-unit>
<trans-unit id="pages.tx_sgnews_related_news">
<source><![CDATA[Related Elements]]></source>
</trans-unit>
......@@ -179,4 +179,4 @@
</trans-unit>
</body>
</file>
</xliff>
</xliff>
\ No newline at end of file
{namespace be=TYPO3\CMS\Backend\ViewHelpers}
<f:debug>{data}</f:debug>
<be:link.editRecord table="tt_content" uid="{uid}">
<br/>
<table class="table table-striped table-bordered">
<f:render partial="PluginDataTableHeader"/>
<tbody>
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.latest.flexForm.newsLimit"/>
</th>
<td>
{data.limit}
</td>
</tr>
<f:if condition="{data.categories}">
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:plugin.preview.latest.categories"/>
</th>
<td>
{data.categories}
</td>
</tr>
</f:if>
<f:if condition="{data.tags}">
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:plugin.preview.latest.tags"/>
</th>
<td>
{data.tags}
</td>
</tr>
</f:if>
<f:if condition="{data.starttime}">
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.starttime"/>
</th>
<td>
<f:format.date format="d.m.Y">{data.starttime}</f:format.date>
</td>
</tr>
</f:if>
<f:if condition="{data.endtime}">
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.endtime"/>
</th>
<td>
<f:format.date format="d.m.Y">{data.endtime}</f:format.date>
</td>
</tr>
</f:if>
<tr>
<th scope="row">
<f:translate
key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.sortBy"/>
</th>
<td>
<f:switch expression="{data.sortBy}">
<f:case value="typoscript">
<f:translate key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.systemDefault"/>
</f:case>
<f:case value="date">
<f:translate key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.dateOfPublication"/>
</f:case>
<f:case value="positionInTree">
<f:translate key="LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.flexForm.orderInPageTree"/>
</f:case>
</f:switch>
</td>
</tr>
</tbody>
</table>
</be:link.editRecord>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment