Initial commit - Typo3 11.5.41
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
return [
|
||||
\GeorgRinger\News\Domain\Model\News::class => [
|
||||
'subclasses' => [
|
||||
0 => \GeorgRinger\News\Domain\Model\NewsDefault::class,
|
||||
1 => \GeorgRinger\News\Domain\Model\NewsInternal::class,
|
||||
2 => \GeorgRinger\News\Domain\Model\NewsExternal::class,
|
||||
]
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\NewsDefault::class => [
|
||||
'tableName' => 'tx_news_domain_model_news',
|
||||
'recordType' => 0,
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\NewsInternal::class => [
|
||||
'tableName' => 'tx_news_domain_model_news',
|
||||
'recordType' => 1,
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\NewsExternal::class => [
|
||||
'tableName' => 'tx_news_domain_model_news',
|
||||
'recordType' => 2,
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\FileReference::class => [
|
||||
'tableName' => 'sys_file_reference',
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\TtContent::class => [
|
||||
'tableName' => 'tt_content',
|
||||
'properties' => [
|
||||
'altText' => [
|
||||
'fieldName' => 'altText'
|
||||
],
|
||||
'titleText' => [
|
||||
'fieldName' => 'titleText'
|
||||
],
|
||||
'colPos' => [
|
||||
'fieldName' => 'colPos'
|
||||
],
|
||||
'CType' => [
|
||||
'fieldName' => 'CType'
|
||||
],
|
||||
],
|
||||
],
|
||||
\GeorgRinger\News\Domain\Model\Category::class => [
|
||||
'tableName' => 'sys_category',
|
||||
'properties' => [
|
||||
'parentcategory' => [
|
||||
'fieldName' => 'parent'
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
640
typo3conf/ext/news/Configuration/FlexForms/flexform_news.xml
Normal file
640
typo3conf/ext/news/Configuration/FlexForms/flexform_news.xml
Normal file
@@ -0,0 +1,640 @@
|
||||
<T3DataStructure>
|
||||
<sheets>
|
||||
<!--
|
||||
################################
|
||||
SHEET General Settings
|
||||
################################
|
||||
-->
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<TCEforms>
|
||||
<sheetTitle>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_tab.settings</sheetTitle>
|
||||
</TCEforms>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<!-- View -->
|
||||
<switchableControllerActions>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode</label>
|
||||
<onChange>reload</onChange>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<itemsProcFunc>GeorgRinger\News\Hooks\ItemsProcFunc->user_switchableControllerActions</itemsProcFunc>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_list</numIndex>
|
||||
<numIndex index="1">News->list;News->detail</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_listOnly</numIndex>
|
||||
<numIndex index="1">News->list</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_selectedlist</numIndex>
|
||||
<numIndex index="1">News->selectedList</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="8">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_detail</numIndex>
|
||||
<numIndex index="1">News->detail</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="10">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_datemenu</numIndex>
|
||||
<numIndex index="1">News->dateMenu</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="14">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.optgroup_search</numIndex>
|
||||
<numIndex index="1">--div--</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="15">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_searchform</numIndex>
|
||||
<numIndex index="1">News->searchForm</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="16">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_searchresult</numIndex>
|
||||
<numIndex index="1">News->searchResult</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="20">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.optgroup_others</numIndex>
|
||||
<numIndex index="1">--div--</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="7">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.category_list</numIndex>
|
||||
<numIndex index="1">Category->list</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="21">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.tag_list</numIndex>
|
||||
<numIndex index="1">Tag->list</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</switchableControllerActions>
|
||||
|
||||
<!-- order -->
|
||||
<settings.orderBy>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<itemsProcFunc>GeorgRinger\News\Hooks\ItemsProcFunc->user_orderBy</itemsProcFunc>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0"></numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.tstamp</numIndex>
|
||||
<numIndex index="1">tstamp</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.datetime</numIndex>
|
||||
<numIndex index="1">datetime</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.crdate</numIndex>
|
||||
<numIndex index="1">crdate</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="4">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.title</numIndex>
|
||||
<numIndex index="1">title</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.orderBy>
|
||||
|
||||
<!-- order direction -->
|
||||
<settings.orderDirection>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0"></numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.asc</numIndex>
|
||||
<numIndex index="1">asc</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.desc</numIndex>
|
||||
<numIndex index="1">desc</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.orderDirection>
|
||||
|
||||
<!-- datefield: select relevant file dateMenu -->
|
||||
<settings.dateField>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.dateField</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0"></numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.dateField.datetime</numIndex>
|
||||
<numIndex index="1">datetime</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.dateField.archive</numIndex>
|
||||
<numIndex index="1">archive</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.dateField>
|
||||
|
||||
<!-- Category Mode -->
|
||||
<settings.categoryConjunction>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction.all</numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction.or</numIndex>
|
||||
<numIndex index="1">or</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction.and</numIndex>
|
||||
<numIndex index="1">and</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="3">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction.notor</numIndex>
|
||||
<numIndex index="1">notor</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="4">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction.notand</numIndex>
|
||||
<numIndex index="1">notand</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.categoryConjunction>
|
||||
|
||||
<!-- Category -->
|
||||
<settings.categories>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categories</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderMode>tree</renderMode>
|
||||
<renderType>selectTree</renderType>
|
||||
<treeConfig>
|
||||
<!-- <dataProvider>GeorgRinger\News\TreeProvider\DatabaseTreeDataProvider</dataProvider>-->
|
||||
<parentField>parent</parentField>
|
||||
<appearance>
|
||||
<maxLevels>99</maxLevels>
|
||||
<expandAll>TRUE</expandAll>
|
||||
<showHeader>TRUE</showHeader>
|
||||
</appearance>
|
||||
</treeConfig>
|
||||
<foreign_table>sys_category</foreign_table>
|
||||
<foreign_table_where>AND (sys_category.sys_language_uid = 0 OR sys_category.l10n_parent = 0) ORDER BY sys_category.sorting</foreign_table_where>
|
||||
<size>15</size>
|
||||
<minitems>0</minitems>
|
||||
<maxitems>99</maxitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.categories>
|
||||
|
||||
<!-- Include sub categories -->
|
||||
<settings.includeSubCategories>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.includeSubCategories</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.includeSubCategories>
|
||||
|
||||
|
||||
<!-- Archive -->
|
||||
<settings.archiveRestriction>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.archiveRestriction</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.no-constraint</numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.archiveRestriction.active</numIndex>
|
||||
<numIndex index="1">active</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.archiveRestriction.archived</numIndex>
|
||||
<numIndex index="1">archived</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.archiveRestriction>
|
||||
|
||||
<!-- Time limit Low -->
|
||||
<settings.timeRestriction>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.timeRestriction</label>
|
||||
<config>
|
||||
<checkbox>1</checkbox>
|
||||
<default></default>
|
||||
<type>input</type>
|
||||
<size>15</size>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.timeRestriction>
|
||||
|
||||
<!-- Time limit High -->
|
||||
<settings.timeRestrictionHigh>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.timeRestrictionHigh</label>
|
||||
<config>
|
||||
<checkbox>1</checkbox>
|
||||
<default></default>
|
||||
<type>input</type>
|
||||
<size>15</size>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.timeRestrictionHigh>
|
||||
|
||||
<!-- Top News -->
|
||||
<settings.topNewsRestriction>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.no-constraint</numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.1</numIndex>
|
||||
<numIndex index="1">1</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.2</numIndex>
|
||||
<numIndex index="1">2</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.topNewsRestriction>
|
||||
|
||||
<!-- single news -->
|
||||
<settings.singleNews>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.singleNews</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>tx_news_domain_model_news</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
<minitems>0</minitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.singleNews>
|
||||
|
||||
<!-- settings.previewHiddenRecords -->
|
||||
<settings.previewHiddenRecords>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.previewHiddenRecords</label>
|
||||
<config type="array">
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items type="array">
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.previewHiddenRecords.I.2</numIndex>
|
||||
<numIndex index="1">2</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.previewHiddenRecords.I.1</numIndex>
|
||||
<numIndex index="1">1</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.previewHiddenRecords.I.0</numIndex>
|
||||
<numIndex index="1">0</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
<size type="integer">1</size>
|
||||
<maxitems type="integer">1</maxitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.previewHiddenRecords>
|
||||
|
||||
<!-- startingpoint -->
|
||||
<settings.startingpoint>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.startingpoint</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>pages</allowed>
|
||||
<size>3</size>
|
||||
<maxitems>50</maxitems>
|
||||
<minitems>0</minitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.startingpoint>
|
||||
|
||||
<!-- recursive -->
|
||||
<settings.recursive>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.recursive</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items type="array">
|
||||
<numIndex index="1" type="array">
|
||||
<numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.recursive.I.inherit</numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="2" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.0</numIndex>
|
||||
<numIndex index="1">0</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="3" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.1</numIndex>
|
||||
<numIndex index="1">1</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="4" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.2</numIndex>
|
||||
<numIndex index="1">2</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="5" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.3</numIndex>
|
||||
<numIndex index="1">3</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="6" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.4</numIndex>
|
||||
<numIndex index="1">4</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="7" type="array">
|
||||
<numIndex index="0">LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.5</numIndex>
|
||||
<numIndex index="1">250</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.recursive>
|
||||
|
||||
<!-- selectedList -->
|
||||
<settings.selectedList>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.selectedList</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>tx_news_domain_model_news</allowed>
|
||||
<size>3</size>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.selectedList>
|
||||
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
<!--
|
||||
################################
|
||||
SHEET Additional
|
||||
################################
|
||||
-->
|
||||
<additional>
|
||||
<ROOT>
|
||||
<TCEforms>
|
||||
<sheetTitle>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_tab.additional</sheetTitle>
|
||||
</TCEforms>
|
||||
<type>array</type>
|
||||
<el>
|
||||
|
||||
|
||||
<!-- PID Detail Page -->
|
||||
<settings.detailPid>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.detailPid</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>pages</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
<minitems>0</minitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.detailPid>
|
||||
|
||||
<!-- PID List Page -->
|
||||
<settings.listPid>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.listPid</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>pages</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
<minitems>0</minitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.listPid>
|
||||
|
||||
<!-- PID Back -->
|
||||
<settings.backPid>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.backPid</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>pages</allowed>
|
||||
<size>1</size>
|
||||
<maxitems>1</maxitems>
|
||||
<minitems>0</minitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.backPid>
|
||||
|
||||
<!-- Limit Start -->
|
||||
<settings.limit>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.limit</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>5</size>
|
||||
<eval>num</eval>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.limit>
|
||||
|
||||
<!-- Offset -->
|
||||
<settings.offset>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.offset</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>5</size>
|
||||
<eval>num</eval>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.offset>
|
||||
|
||||
<!-- Tags -->
|
||||
<settings.tags>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.tags</label>
|
||||
<config>
|
||||
<type>group</type>
|
||||
<internal_type>db</internal_type>
|
||||
<allowed>tx_news_domain_model_tag</allowed>
|
||||
<size>3</size>
|
||||
<minitems>0</minitems>
|
||||
<maxitems>99</maxitems>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.tags>
|
||||
|
||||
<!-- Hide pagination -->
|
||||
<settings.hidePagination>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.hidePagination</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.hidePagination>
|
||||
|
||||
<settings.list.paginate.itemsPerPage>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.itemsPerPage</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>2</size>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.list.paginate.itemsPerPage>
|
||||
|
||||
<!-- topNewsFirst -->
|
||||
<settings.topNewsFirst>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.topNewsFirst</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.topNewsFirst>
|
||||
|
||||
<!-- only not displayed news -->
|
||||
<settings.excludeAlreadyDisplayedNews>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.excludeAlreadyDisplayedNews</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.excludeAlreadyDisplayedNews>
|
||||
|
||||
<!-- disable overrideDemand -->
|
||||
<settings.disableOverrideDemand>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_additional.disableOverrideDemand</label>
|
||||
<config>
|
||||
<type>check</type>
|
||||
<default>1</default>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.disableOverrideDemand>
|
||||
</el>
|
||||
</ROOT>
|
||||
</additional>
|
||||
|
||||
<!--
|
||||
################################
|
||||
SHEET Template
|
||||
################################
|
||||
-->
|
||||
<template>
|
||||
<ROOT>
|
||||
<TCEforms>
|
||||
<sheetTitle>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_tab.template</sheetTitle>
|
||||
</TCEforms>
|
||||
<type>array</type>
|
||||
<el>
|
||||
|
||||
<!-- Image Width -->
|
||||
<settings.media.maxWidth>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_template.mediaMaxWidth</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>5</size>
|
||||
<eval>num</eval>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.media.maxWidth>
|
||||
|
||||
<!-- Image Height -->
|
||||
<settings.media.maxHeight>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_template.mediaMaxHeight</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>5</size>
|
||||
<eval>num</eval>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.media.maxHeight>
|
||||
|
||||
<!-- crop length Teaser -->
|
||||
<settings.cropMaxCharacters>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_template.cropMaxCharacters</label>
|
||||
<config>
|
||||
<type>input</type>
|
||||
<size>5</size>
|
||||
<eval>num</eval>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.cropMaxCharacters>
|
||||
|
||||
<!-- Template Layout -->
|
||||
<settings.templateLayout>
|
||||
<TCEforms>
|
||||
<label>LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_template.templateLayout</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<itemsProcFunc>GeorgRinger\News\Hooks\ItemsProcFunc->user_templateLayout</itemsProcFunc>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0"></numIndex>
|
||||
<numIndex index="1"></numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.templateLayout>
|
||||
</el>
|
||||
</ROOT>
|
||||
</template>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
31
typo3conf/ext/news/Configuration/Services.php
Normal file
31
typo3conf/ext/news/Configuration/Services.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use GeorgRinger\News\Backend\FormDataProvider\NewsFlexFormManipulation;
|
||||
use GeorgRinger\News\Hooks\Backend\RecordListQueryHook;
|
||||
use GeorgRinger\News\Hooks\BackendUtility;
|
||||
use GeorgRinger\News\Hooks\ItemsProcFunc;
|
||||
use GeorgRinger\News\Hooks\PageLayoutView;
|
||||
use GeorgRinger\News\Updates\NewsSlugUpdater;
|
||||
use GeorgRinger\News\Updates\RealurlAliasNewsSlugUpdater;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
use TYPO3\CMS\Core\DependencyInjection;
|
||||
|
||||
return function (ContainerConfigurator $container, ContainerBuilder $containerBuilder) {
|
||||
$containerBuilder->registerForAutoconfiguration(NewsFlexFormManipulation::class)->addTag('news.NewsFlexFormManipulation');
|
||||
$containerBuilder->registerForAutoconfiguration(RecordListQueryHook::class)->addTag('news.RecordListQueryHook');
|
||||
$containerBuilder->registerForAutoconfiguration(BackendUtility::class)->addTag('news.BackendUtility');
|
||||
$containerBuilder->registerForAutoconfiguration(ItemsProcFunc::class)->addTag('news.ItemsProcFunc');
|
||||
$containerBuilder->registerForAutoconfiguration(PageLayoutView::class)->addTag('news.PageLayoutView');
|
||||
$containerBuilder->registerForAutoconfiguration(NewsSlugUpdater::class)->addTag('news.NewsSlugUpdater');
|
||||
$containerBuilder->registerForAutoconfiguration(RealurlAliasNewsSlugUpdater::class)->addTag('news.RealurlAliasNewsSlugUpdater');
|
||||
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.NewsFlexFormManipulation'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.RecordListQueryHook'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.BackendUtility'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.ItemsProcFunc'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.PageLayoutView'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.NewsSlugUpdater'));
|
||||
$containerBuilder->addCompilerPass(new DependencyInjection\SingletonPass('news.RealurlAliasNewsSlugUpdater'));
|
||||
};
|
||||
37
typo3conf/ext/news/Configuration/Services.yaml
Normal file
37
typo3conf/ext/news/Configuration/Services.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
_defaults:
|
||||
autowire: true
|
||||
autoconfigure: true
|
||||
public: false
|
||||
|
||||
news.cache:
|
||||
class: TYPO3\CMS\Core\Cache\Frontend\PhpFrontend
|
||||
# We can not use CacheManager, as it can not be
|
||||
# injected/instantiated during ext_localconf.php loading
|
||||
# factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache']
|
||||
# therefore we use the static Bootstrap::createCache factory instead.
|
||||
factory: ['TYPO3\CMS\Core\Core\Bootstrap', 'createCache']
|
||||
arguments: ['news']
|
||||
|
||||
GeorgRinger\News\:
|
||||
resource: '../Classes/*'
|
||||
exclude: '../Classes/Domain/Model/*'
|
||||
|
||||
|
||||
GeorgRinger\News\Utility\ClassCacheManager:
|
||||
arguments: ['@news.cache']
|
||||
public: true
|
||||
|
||||
GeorgRinger\News\Utility\ClassLoader:
|
||||
arguments: ['@news.cache', '@GeorgRinger\News\Utility\ClassCacheManager']
|
||||
public: true
|
||||
|
||||
GeorgRinger\News\Seo\HrefLangEvent:
|
||||
tags:
|
||||
- name: event.listener
|
||||
identifier: 'my-ext/ownHrefLang'
|
||||
after: 'typo3-seo/hreflangGenerator'
|
||||
event: TYPO3\CMS\Frontend\Event\ModifyHrefLangTagsEvent
|
||||
|
||||
GeorgRinger\News\Backend\RecordList\NewsDatabaseRecordList:
|
||||
public: true
|
||||
22
typo3conf/ext/news/Configuration/TCA/Overrides/pages.php
Normal file
22
typo3conf/ext/news/Configuration/TCA/Overrides/pages.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
// Override news icon
|
||||
$GLOBALS['TCA']['pages']['columns']['module']['config']['items'][] = [
|
||||
0 => 'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:news-folder',
|
||||
1 => 'news',
|
||||
2 => 'apps-pagetree-folder-contains-news'
|
||||
];
|
||||
$GLOBALS['TCA']['pages']['columns']['module']['config']['items'][] = [
|
||||
0 => 'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:news-page',
|
||||
1 => 'newsplugins',
|
||||
2 => 'apps-pagetree-page-contains-news'
|
||||
];
|
||||
$GLOBALS['TCA']['pages']['ctrl']['typeicon_classes']['contains-newsplugins'] = 'apps-pagetree-page-contains-news';
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
|
||||
'news',
|
||||
'Configuration/TSconfig/Page/news_only.tsconfig',
|
||||
'EXT:news :: Restrict pages to news records'
|
||||
);
|
||||
198
typo3conf/ext/news/Configuration/TCA/Overrides/sys_category.php
Normal file
198
typo3conf/ext/news/Configuration/TCA/Overrides/sys_category.php
Normal file
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$ll = 'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:';
|
||||
$configuration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\GeorgRinger\News\Domain\Model\Dto\EmConfiguration::class);
|
||||
|
||||
/**
|
||||
* Add extra fields to the sys_category record
|
||||
*/
|
||||
$newSysCategoryColumns = [
|
||||
'pid' => [
|
||||
'label' => 'pid',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'sorting' => [
|
||||
'label' => 'sorting',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'crdate' => [
|
||||
'label' => 'crdate',
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
]
|
||||
],
|
||||
'tstamp' => [
|
||||
'label' => 'tstamp',
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
]
|
||||
],
|
||||
'images' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.image',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
|
||||
'images',
|
||||
[
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'appearance' => [
|
||||
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference',
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showRemovedLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
'showSynchronizationLink' => true
|
||||
],
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'images',
|
||||
'tablenames' => 'sys_category',
|
||||
'table_local' => 'sys_file',
|
||||
],
|
||||
],
|
||||
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
|
||||
)
|
||||
],
|
||||
'single_pid' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.single_pid',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'pages',
|
||||
'size' => 1,
|
||||
'maxitems' => 1,
|
||||
'default' => 0,
|
||||
'suggestOptions' => [
|
||||
'default' => [
|
||||
'searchWholePhrase' => true,
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'shortcut' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.shortcut',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'pages',
|
||||
'size' => 1,
|
||||
'maxitems' => 1,
|
||||
'default' => 0,
|
||||
'suggestOptions' => [
|
||||
'default' => [
|
||||
'searchWholePhrase' => true,
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'import_id' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.import_id',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'import_source' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.import_source',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'seo_headline' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.seo.seo_headline',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
],
|
||||
],
|
||||
'seo_title' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.seo.seo_title',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
],
|
||||
],
|
||||
'seo_description' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.seo.seo_description',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
],
|
||||
],
|
||||
'seo_text' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_category.seo.seo_text',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => true,
|
||||
],
|
||||
],
|
||||
'slug' =>[
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.slug',
|
||||
'displayCond' => 'VERSION:IS:false',
|
||||
'config' => [
|
||||
'type' => 'slug',
|
||||
'size' => 50,
|
||||
'generatorOptions' => [
|
||||
'fields' => ['title'],
|
||||
'replacements' => [
|
||||
'/' => '-'
|
||||
],
|
||||
],
|
||||
'fallbackCharacter' => '-',
|
||||
'eval' => $configuration->getSlugBehaviour(),
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('sys_category', $newSysCategoryColumns);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'sys_category',
|
||||
'--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.options, images',
|
||||
'',
|
||||
'before:description'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'sys_category',
|
||||
'single_pid',
|
||||
'',
|
||||
'after:description'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'sys_category',
|
||||
'shortcut',
|
||||
'',
|
||||
'after:single_pid'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'sys_category',
|
||||
'--div--;' . $ll . 'tx_news_domain_model_category.tabs.seo, seo_title, seo_description, seo_headline, seo_text',
|
||||
'',
|
||||
'after:endtime'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'sys_category',
|
||||
'slug',
|
||||
'',
|
||||
'after:title'
|
||||
);
|
||||
|
||||
$GLOBALS['TCA']['sys_category']['columns']['items']['config']['MM_oppositeUsage']['tx_news_domain_model_news']
|
||||
= [0 => 'categories'];
|
||||
|
||||
$GLOBALS['TCA']['sys_category']['ctrl']['label_userFunc'] =
|
||||
\GeorgRinger\News\Hooks\Labels::class . '->getUserLabelCategory';
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$emConfiguration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\GeorgRinger\News\Domain\Model\Dto\EmConfiguration::class);
|
||||
if ($emConfiguration->isAdvancedMediaPreview()) {
|
||||
$fieldConfig = [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
['LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_media.showinviews.0', 0, ''],
|
||||
['LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_media.showinviews.1', 1, ''],
|
||||
['LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_media.showinviews.2', 2, ''],
|
||||
],
|
||||
'default' => 0,
|
||||
];
|
||||
} else {
|
||||
$fieldConfig = [
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
];
|
||||
}
|
||||
|
||||
$newSysFileReferenceColumns = [
|
||||
'showinpreview' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_media.showinviews',
|
||||
'config' => $fieldConfig
|
||||
],
|
||||
];
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('sys_file_reference', $newSysFileReferenceColumns);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette('sys_file_reference', 'newsPalette', 'showinpreview');
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('news', 'Configuration/TypoScript', 'News');
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('news', 'Configuration/TypoScript/Sitemap', 'News Sitemap');
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('news', 'Configuration/TypoScript/Styles/Twb', 'News Styles Twitter Bootstrap');
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('news', 'Configuration/TypoScript/Styles/Twb5', 'News Styles Twitter Bootstrap V5');
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
/***************
|
||||
* Plugin
|
||||
*/
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
||||
'news',
|
||||
'Pi1',
|
||||
'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:pi1_title'
|
||||
);
|
||||
|
||||
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist']['news_pi1'] = 'recursive,select_key,pages';
|
||||
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['news_pi1'] = 'pi_flexform';
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
|
||||
'news_pi1',
|
||||
'FILE:EXT:news/Configuration/FlexForms/flexform_news.xml'
|
||||
);
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToInsertRecords('tx_news_domain_model_news');
|
||||
|
||||
foreach (['crdate', 'tstamp'] as $fakeField) {
|
||||
if (!isset($GLOBALS['TCA']['tt_content']['columns'][$fakeField])) {
|
||||
$GLOBALS['TCA']['tt_content']['columns'][$fakeField] = [
|
||||
'label' => $fakeField,
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$newFields = [
|
||||
'tx_news_related_news' => [
|
||||
'label' => 'tx_news_related_news',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
]
|
||||
];
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $newFields);
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$boot = static function (): void {
|
||||
// Add seo sitemap fields
|
||||
if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('seo')) {
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
|
||||
'tx_news_domain_model_news',
|
||||
[
|
||||
'sitemap_changefreq' => [
|
||||
'config' => [
|
||||
'items' => [
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.none', ''],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.always', 'always'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.hourly', 'hourly'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.daily', 'daily'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.weekly', 'weekly'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.monthly', 'monthly'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.yearly', 'yearly'],
|
||||
['LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq.never', 'never']
|
||||
],
|
||||
'renderType' => 'selectSingle',
|
||||
'type' => 'select'
|
||||
],
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_changefreq'
|
||||
],
|
||||
'sitemap_priority' => [
|
||||
'config' => [
|
||||
'items' => [
|
||||
['0.0', '0.0'],
|
||||
['0.1', '0.1'],
|
||||
['0.2', '0.2'],
|
||||
['0.3', '0.3'],
|
||||
['0.4', '0.4'],
|
||||
['0.5', '0.5'],
|
||||
['0.6', '0.6'],
|
||||
['0.7', '0.7'],
|
||||
['0.8', '0.8'],
|
||||
['0.9', '0.9'],
|
||||
['1.0', '1.0']
|
||||
],
|
||||
'renderType' => 'selectSingle',
|
||||
'type' => 'select',
|
||||
'default' => '0.5',
|
||||
],
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.sitemap_priority'
|
||||
]
|
||||
]
|
||||
);
|
||||
|
||||
$GLOBALS['TCA']['tx_news_domain_model_news']['palettes']['sitemap'] = [
|
||||
'label' => 'LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.palettes.sitemap',
|
||||
'showitem' => 'sitemap_changefreq,sitemap_priority'
|
||||
];
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'tx_news_domain_model_news',
|
||||
'--palette--;;sitemap',
|
||||
'',
|
||||
'after:alternative_title'
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
$boot();
|
||||
unset($boot);
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3') or die();
|
||||
|
||||
call_user_func(static function () {
|
||||
$versionInformation = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Information\Typo3Version::class);
|
||||
if ($versionInformation->getMajorVersion() === 11) {
|
||||
foreach (['link', 'news', 'tag'] as $tableSuffix) {
|
||||
$GLOBALS['TCA']['tx_news_domain_model_' . $tableSuffix]['columns']['sys_language_uid']['config'] = [
|
||||
'type' => 'language'
|
||||
];
|
||||
}
|
||||
|
||||
$showRemovedLocalizationRecordsFields = [
|
||||
'sys_category' => ['images'],
|
||||
'tx_news_domain_model_news' => ['related_links', 'content_elements', 'fal_media', 'fal_related_files']
|
||||
];
|
||||
|
||||
foreach ($showRemovedLocalizationRecordsFields as $tableName => $fields) {
|
||||
foreach ($fields as $field) {
|
||||
unset($GLOBALS['TCA'][$tableName]['columns'][$field]['config']['appearance']['showRemovedLocalizationRecords']);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$ll = 'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:';
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => $ll . 'tx_news_domain_model_link',
|
||||
'descriptionColumn' => 'description',
|
||||
'label' => 'title',
|
||||
'label_alt' => 'uri',
|
||||
'label_alt_force' => true,
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'cruser_id' => 'cruser_id',
|
||||
'languageField' => 'sys_language_uid',
|
||||
'transOrigPointerField' => 'l10n_parent',
|
||||
'transOrigDiffSourceField' => 'l10n_diffsource',
|
||||
'translationSource' => 'l10n_source',
|
||||
'versioningWS' => true,
|
||||
'origUid' => 't3_origuid',
|
||||
'default_sortby' => 'ORDER BY sorting',
|
||||
'sortby' => 'sorting',
|
||||
'delete' => 'deleted',
|
||||
'enablecolumns' => [
|
||||
'disabled' => 'hidden',
|
||||
],
|
||||
'typeicon_classes' => [
|
||||
'default' => 'ext-news-link'
|
||||
],
|
||||
'hideTable' => true,
|
||||
],
|
||||
'columns' => [
|
||||
'pid' => [
|
||||
'label' => 'pid',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'crdate' => [
|
||||
'label' => 'crdate',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'tstamp' => [
|
||||
'label' => 'tstamp',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'sys_language_uid' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'special' => 'languages',
|
||||
'items' => [
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
|
||||
-1,
|
||||
'flags-multiple'
|
||||
],
|
||||
],
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
'l10n_parent' => [
|
||||
'displayCond' => 'FIELD:sys_language_uid:>:0',
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
['', 0],
|
||||
],
|
||||
'foreign_table' => 'tx_news_domain_model_link',
|
||||
'foreign_table_where' => 'AND tx_news_domain_model_link.pid=###CURRENT_PID### AND tx_news_domain_model_link.sys_language_uid IN (-1,0)',
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
'l10n_source' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'l10n_diffsource' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
'hidden' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
]
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => false,
|
||||
'label' => $ll . 'tx_news_domain_model_link.title',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'description' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_link.description',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 30,
|
||||
'rows' => 5,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'uri' => [
|
||||
'exclude' => false,
|
||||
'label' => $ll . 'tx_news_domain_model_link.uri',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'placeholder' => $ll . 'tx_news_domain_model_link.uri.placeholder',
|
||||
'size' => 30,
|
||||
'eval' => 'trim,required',
|
||||
'softref' => 'typolink',
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
0 => [
|
||||
'showitem' => 'uri, --palette--;;paletteCore,title, --palette--;;paletteDescription'
|
||||
]
|
||||
],
|
||||
'palettes' => [
|
||||
'paletteCore' => [
|
||||
'showitem' => 'hidden,sys_language_uid,l10n_parent, l10n_diffsource,',
|
||||
],
|
||||
'paletteDescription' => [
|
||||
'showitem' => 'description',
|
||||
]
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,866 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$ll = 'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:';
|
||||
|
||||
$configuration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\GeorgRinger\News\Domain\Model\Dto\EmConfiguration::class);
|
||||
|
||||
$tx_news_domain_model_news = [
|
||||
'ctrl' => [
|
||||
'title' => $ll . 'tx_news_domain_model_news',
|
||||
'descriptionColumn' => 'notes',
|
||||
'label' => 'title',
|
||||
'prependAtCopy' => $configuration->getPrependAtCopy() ? 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.prependAtCopy' : '',
|
||||
'hideAtCopy' => true,
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'cruser_id' => 'cruser_id',
|
||||
'versioningWS' => true,
|
||||
'origUid' => 't3_origuid',
|
||||
'editlock' => 'editlock',
|
||||
'type' => 'type',
|
||||
'typeicon_column' => 'type',
|
||||
'typeicon_classes' => [
|
||||
'default' => 'ext-news-type-default',
|
||||
'1' => 'ext-news-type-internal',
|
||||
'2' => 'ext-news-type-external',
|
||||
],
|
||||
'useColumnsForDefaultValues' => 'type',
|
||||
'languageField' => 'sys_language_uid',
|
||||
'transOrigPointerField' => 'l10n_parent',
|
||||
'transOrigDiffSourceField' => 'l10n_diffsource',
|
||||
'translationSource' => 'l10n_source',
|
||||
'default_sortby' => 'ORDER BY datetime DESC',
|
||||
'sortby' => ($configuration->getManualSorting() ? 'sorting' : ''),
|
||||
'delete' => 'deleted',
|
||||
'enablecolumns' => [
|
||||
'disabled' => 'hidden',
|
||||
'starttime' => 'starttime',
|
||||
'endtime' => 'endtime',
|
||||
'fe_group' => 'fe_group',
|
||||
],
|
||||
'iconfile' => 'EXT:news/Resources/Public/Icons/news_domain_model_news.svg',
|
||||
'searchFields' => 'uid,title',
|
||||
],
|
||||
'columns' => [
|
||||
'sys_language_uid' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'special' => 'languages',
|
||||
'items' => [
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
|
||||
-1,
|
||||
'flags-multiple'
|
||||
],
|
||||
],
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
'l10n_parent' => [
|
||||
'displayCond' => 'FIELD:sys_language_uid:>:0',
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'tx_news_domain_model_news',
|
||||
'size' => 1,
|
||||
'maxitems' => 1,
|
||||
'minitems' => 0,
|
||||
'default' => 0,
|
||||
],
|
||||
],
|
||||
'l10n_source' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'l10n_diffsource' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
'hidden' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'default' => 0,
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
]
|
||||
],
|
||||
]
|
||||
],
|
||||
'cruser_id' => [
|
||||
'label' => 'cruser_id',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'pid' => [
|
||||
'label' => 'pid',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'crdate' => [
|
||||
'label' => 'crdate',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'tstamp' => [
|
||||
'label' => 'tstamp',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'sorting' => [
|
||||
'label' => 'sorting',
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
]
|
||||
],
|
||||
'starttime' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'size' => 16,
|
||||
'eval' => 'datetime,int',
|
||||
'default' => 0,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'endtime' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'size' => 16,
|
||||
'eval' => 'datetime,int',
|
||||
'default' => 0,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'fe_group' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.fe_group',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectMultipleSideBySide',
|
||||
'size' => 5,
|
||||
'maxitems' => 20,
|
||||
'items' => [
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hide_at_login',
|
||||
-1,
|
||||
],
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.any_login',
|
||||
-2,
|
||||
],
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.usergroups',
|
||||
'--div--',
|
||||
],
|
||||
],
|
||||
'exclusiveKeys' => '-1,-2',
|
||||
'foreign_table' => 'fe_groups',
|
||||
'foreign_table_where' => 'ORDER BY fe_groups.title',
|
||||
],
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => false,
|
||||
'l10n_mode' => 'prefixLangTitle',
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_formlabel',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 60,
|
||||
'max' => 255,
|
||||
'eval' => 'required',
|
||||
]
|
||||
],
|
||||
'alternative_title' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.alternative_title',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
]
|
||||
],
|
||||
'teaser' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.teaser',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 60,
|
||||
'rows' => 5,
|
||||
'enableRichtext' => $configuration->getRteForTeaser(),
|
||||
]
|
||||
],
|
||||
'bodytext' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 30,
|
||||
'rows' => 5,
|
||||
'softref' => 'typolink_tag,email[subst],url',
|
||||
'enableRichtext' => true,
|
||||
]
|
||||
],
|
||||
'datetime' => [
|
||||
'exclude' => false,
|
||||
'label' => $ll . 'tx_news_domain_model_news.datetime',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'size' => 16,
|
||||
'eval' => 'datetime,int' . ($configuration->getDateTimeRequired() ? ',required' : ''),
|
||||
]
|
||||
],
|
||||
'archive' => [
|
||||
'exclude' => true,
|
||||
'l10n_mode' => 'copy',
|
||||
'label' => $ll . 'tx_news_domain_model_news.archive',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'size' => 30,
|
||||
'eval' => $configuration->getArchiveDate() . ',int',
|
||||
'default' => 0
|
||||
]
|
||||
],
|
||||
'author' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.author_formlabel',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'author_email' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.author_email_formlabel',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'categories' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.categories',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectTree',
|
||||
'treeConfig' => [
|
||||
// 'dataProvider' => \GeorgRinger\News\TreeProvider\DatabaseTreeDataProvider::class,
|
||||
'parentField' => 'parent',
|
||||
'appearance' => [
|
||||
'showHeader' => true,
|
||||
'expandAll' => true,
|
||||
'maxLevels' => 99,
|
||||
],
|
||||
],
|
||||
'MM' => 'sys_category_record_mm',
|
||||
'MM_match_fields' => [
|
||||
'fieldname' => 'categories',
|
||||
'tablenames' => 'tx_news_domain_model_news',
|
||||
],
|
||||
'MM_opposite_field' => 'items',
|
||||
'foreign_table' => 'sys_category',
|
||||
'foreign_table_where' => ' AND (sys_category.sys_language_uid = 0 OR sys_category.l10n_parent = 0) ORDER BY sys_category.sorting',
|
||||
'size' => 10,
|
||||
'minitems' => 0,
|
||||
'maxitems' => 99,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'related' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.related',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'tx_news_domain_model_news',
|
||||
'foreign_table' => 'tx_news_domain_model_news',
|
||||
'MM_opposite_field' => 'related_from',
|
||||
'size' => 5,
|
||||
'minitems' => 0,
|
||||
'maxitems' => 100,
|
||||
'MM' => 'tx_news_domain_model_news_related_mm',
|
||||
'suggestOptions' => [
|
||||
'default' => [
|
||||
'suggestOptions' => true,
|
||||
'addWhere' => ' AND tx_news_domain_model_news.uid != ###THIS_UID###'
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'related_from' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.related_from',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'foreign_table' => 'tx_news_domain_model_news',
|
||||
'allowed' => 'tx_news_domain_model_news',
|
||||
'size' => 5,
|
||||
'maxitems' => 100,
|
||||
'MM' => 'tx_news_domain_model_news_related_mm',
|
||||
'readOnly' => 1,
|
||||
]
|
||||
],
|
||||
'related_links' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.related_links',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'allowed' => 'tx_news_domain_model_link',
|
||||
'foreign_table' => 'tx_news_domain_model_link',
|
||||
'foreign_sortby' => 'sorting',
|
||||
'foreign_field' => 'parent',
|
||||
'size' => 5,
|
||||
'minitems' => 0,
|
||||
'maxitems' => 100,
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'expandSingle' => true,
|
||||
'levelLinksPosition' => 'bottom',
|
||||
'useSortable' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showRemovedLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
'showSynchronizationLink' => true,
|
||||
'enabledControls' => [
|
||||
'info' => false,
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'type' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.doktype_formlabel',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
[$ll . 'tx_news_domain_model_news.type.I.0', 0, 'ext-news-type-default'],
|
||||
[$ll . 'tx_news_domain_model_news.type.I.1', 1, 'ext-news-type-internal'],
|
||||
[$ll . 'tx_news_domain_model_news.type.I.2', 2, 'ext-news-type-external'],
|
||||
],
|
||||
'fieldWizard' => [
|
||||
'selectIcons' => [
|
||||
'disabled' => false,
|
||||
],
|
||||
],
|
||||
'size' => 1,
|
||||
'maxitems' => 1,
|
||||
]
|
||||
],
|
||||
'keywords' => [
|
||||
'exclude' => true,
|
||||
'label' => $GLOBALS['TCA']['pages']['columns']['keywords']['label'],
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'placeholder' => $ll . 'tx_news_domain_model_news.keywords.placeholder',
|
||||
'cols' => 30,
|
||||
'rows' => 5,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'description' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.description_formlabel',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 30,
|
||||
'rows' => 5,
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'internalurl' => [
|
||||
'exclude' => false,
|
||||
'label' => $ll . 'tx_news_domain_model_news.type.I.1',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'size' => 30,
|
||||
'max' => 255,
|
||||
'eval' => 'trim,required',
|
||||
'softref' => 'typolink'
|
||||
]
|
||||
],
|
||||
'externalurl' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.doktype.I.8',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 50,
|
||||
'eval' => 'required',
|
||||
'softref' => 'typolink'
|
||||
]
|
||||
],
|
||||
'istopnews' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.istopnews',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'default' => 0,
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
]
|
||||
],
|
||||
]
|
||||
],
|
||||
'editlock' => [
|
||||
'exclude' => true,
|
||||
'displayCond' => 'HIDE_FOR_NON_ADMINS',
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:editlock',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'default' => 0,
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'content_elements' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.content_elements',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'allowed' => 'tt_content',
|
||||
'foreign_table' => 'tt_content',
|
||||
'foreign_sortby' => 'sorting',
|
||||
'foreign_field' => 'tx_news_related_news',
|
||||
'minitems' => 0,
|
||||
'maxitems' => 99,
|
||||
'appearance' => [
|
||||
'useXclassedVersion' => $configuration->getContentElementPreview(),
|
||||
'collapseAll' => true,
|
||||
'expandSingle' => true,
|
||||
'levelLinksPosition' => 'bottom',
|
||||
'useSortable' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showRemovedLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
'showSynchronizationLink' => true,
|
||||
'enabledControls' => [
|
||||
'info' => false,
|
||||
]
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
]
|
||||
],
|
||||
'tags' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.tags',
|
||||
'config' => [
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'tx_news_domain_model_tag',
|
||||
'MM' => 'tx_news_domain_model_news_tag_mm',
|
||||
'foreign_table' => 'tx_news_domain_model_tag',
|
||||
'foreign_table_where' => ' AND (tx_news_domain_model_tag.sys_language_uid IN (-1,0) OR tx_news_domain_model_tag.l10n_parent = 0) ORDER BY tx_news_domain_model_tag.title',
|
||||
|
||||
'size' => 10,
|
||||
'minitems' => 0,
|
||||
'maxitems' => 99,
|
||||
|
||||
'fieldInformation' => [
|
||||
'tagInformation' => [
|
||||
'renderType' => 'NewsStaticText',
|
||||
'options' => [
|
||||
'labels' => [
|
||||
[
|
||||
'label' => '',
|
||||
'bold' => true,
|
||||
'italic' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'suggestOptions' => [
|
||||
'default' => [
|
||||
'minimumCharacters' => 2,
|
||||
'searchWholePhrase' => true,
|
||||
'receiverClass' => \GeorgRinger\News\Backend\Wizard\SuggestWizardReceiver::class
|
||||
],
|
||||
],
|
||||
'fieldControl' => [
|
||||
'editPopup' => [
|
||||
'disabled' => false,
|
||||
'options' => [
|
||||
'type' => 'popup',
|
||||
'title' => $ll . 'tx_news_domain_model_news.tags.edit',
|
||||
'module' => [
|
||||
'name' => 'wizard_edit',
|
||||
],
|
||||
'popup_onlyOpenIfSelected' => true,
|
||||
'icon' => 'actions-open',
|
||||
'JSopenParams' => 'height=350,width=580,status=0,menubar=0,scrollbars=1',
|
||||
],
|
||||
],
|
||||
'listModule' => [
|
||||
'disabled' => false,
|
||||
'options' => [
|
||||
'type' => 'script',
|
||||
'title' => $ll . 'tx_news_domain_model_news.tags.list',
|
||||
'icon' => 'actions-system-list-open',
|
||||
'params' => [
|
||||
'table' => 'tx_news_domain_model_tag',
|
||||
'pid' => $configuration->getTagPid(),
|
||||
],
|
||||
'module' => [
|
||||
'name' => 'wizard_list',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
'path_segment' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.path_segment',
|
||||
'displayCond' => 'VERSION:IS:false',
|
||||
'config' => [
|
||||
'type' => 'slug',
|
||||
'size' => 50,
|
||||
'generatorOptions' => [
|
||||
'fields' => ['title'],
|
||||
'replacements' => [
|
||||
'/' => '-'
|
||||
],
|
||||
],
|
||||
'fallbackCharacter' => '-',
|
||||
'eval' => $configuration->getSlugBehaviour(),
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
'import_id' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.import_id',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'import_source' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.import_source',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'fal_media' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.fal_media',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
|
||||
'fal_media',
|
||||
[
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'appearance' => [
|
||||
'createNewRelationLinkTitle' => $ll . 'tx_news_domain_model_news.fal_media.add',
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showRemovedLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
'showSynchronizationLink' => true
|
||||
],
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'fal_media',
|
||||
'tablenames' => 'tx_news_domain_model_news',
|
||||
'table_local' => 'sys_file',
|
||||
],
|
||||
// custom configuration for displaying fields in the overlay/reference table
|
||||
// to use the newsPalette and imageoverlayPalette instead of the basicoverlayPalette
|
||||
'overrideChildTca' => [
|
||||
'types' => [
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;audioOverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;videoOverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
|
||||
--palette--;;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext']
|
||||
)
|
||||
],
|
||||
'fal_related_files' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_news.fal_related_files',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
|
||||
'fal_related_files',
|
||||
[
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'appearance' => [
|
||||
'createNewRelationLinkTitle' => $ll . 'tx_news_domain_model_news.fal_related_files.add',
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showRemovedLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
'showSynchronizationLink' => true
|
||||
],
|
||||
'inline' => [
|
||||
'inlineOnlineMediaAddButtonStyle' => 'display:none'
|
||||
],
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'fal_related_files',
|
||||
'tablenames' => 'tx_news_domain_model_news',
|
||||
'table_local' => 'sys_file',
|
||||
],
|
||||
]
|
||||
)
|
||||
],
|
||||
'notes' => [
|
||||
'label' => $ll . 'notes',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'rows' => 10,
|
||||
'cols' => 48
|
||||
]
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
// default news
|
||||
'0' => [
|
||||
'showitem' => '
|
||||
--palette--;;paletteCore,title,--palette--;;paletteSlug,teaser,
|
||||
--palette--;;paletteDate,
|
||||
bodytext,
|
||||
--div--;' . $ll . 'tx_news_domain_model_news.content_elements,
|
||||
content_elements,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media,
|
||||
fal_media,fal_related_files,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
|
||||
categories,
|
||||
--div--;' . $ll . 'tx_news_domain_model_news.tabs.relations,
|
||||
related,related_from,
|
||||
related_links,tags,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;paletteAuthor,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.metatags;metatags,
|
||||
--palette--;' . $ll . 'tx_news_domain_model_news.palettes.alternativeTitles;alternativeTitles,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
|
||||
--palette--;;paletteLanguage,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
|
||||
--palette--;;paletteHidden,
|
||||
--palette--;;paletteAccess,
|
||||
--div--;' . $ll . 'notes,
|
||||
notes,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.extended,'
|
||||
],
|
||||
// internal url
|
||||
'1' => [
|
||||
'showitem' => '
|
||||
--palette--;;paletteCore,title,--palette--;;paletteSlug,teaser,
|
||||
internalurl,
|
||||
--palette--;;paletteDate,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media,
|
||||
fal_media,fal_related_files,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
|
||||
categories,
|
||||
--div--;' . $ll . 'tx_news_domain_model_news.tabs.relations,
|
||||
related,related_from,
|
||||
related_links,tags,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;paletteAuthor,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.metatags;metatags,
|
||||
--palette--;' . $ll . 'tx_news_domain_model_news.palettes.alternativeTitles;alternativeTitles,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
|
||||
--palette--;;paletteLanguage,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
|
||||
--palette--;;paletteHidden,
|
||||
--palette--;;paletteAccess,
|
||||
--div--;' . $ll . 'notes,
|
||||
notes,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.extended,'
|
||||
],
|
||||
// external url
|
||||
'2' => [
|
||||
'showitem' => '
|
||||
--palette--;;paletteCore,title,--palette--;;paletteSlug,teaser,
|
||||
externalurl,
|
||||
--palette--;;paletteDate,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.media,
|
||||
fal_media,fal_related_files,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
|
||||
categories,
|
||||
--div--;' . $ll . 'tx_news_domain_model_news.tabs.relations,
|
||||
related,related_from,
|
||||
related_links,tags,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;paletteAuthor,
|
||||
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.metatags;metatags,
|
||||
--palette--;' . $ll . 'tx_news_domain_model_news.palettes.alternativeTitles;alternativeTitles,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
|
||||
--palette--;;paletteLanguage,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
|
||||
--palette--;;paletteHidden,
|
||||
--palette--;;paletteAccess,
|
||||
--div--;' . $ll . 'notes,
|
||||
notes,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.extended,'
|
||||
],
|
||||
],
|
||||
'palettes' => [
|
||||
'paletteAuthor' => [
|
||||
'showitem' => 'author,author_email,',
|
||||
],
|
||||
'paletteDate' => [
|
||||
'label' => $ll . 'tx_news_domain_model_news.palettes.dates',
|
||||
'showitem' => 'datetime,archive,',
|
||||
],
|
||||
'paletteCore' => [
|
||||
'showitem' => 'type,istopnews,',
|
||||
],
|
||||
'metatags' => [
|
||||
'showitem' => 'keywords,description,',
|
||||
],
|
||||
'alternativeTitles' => [
|
||||
'showitem' => 'alternative_title',
|
||||
],
|
||||
|
||||
'paletteHidden' => [
|
||||
'showitem' => '
|
||||
hidden
|
||||
',
|
||||
],
|
||||
'paletteAccess' => [
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access',
|
||||
'showitem' => '
|
||||
starttime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel,
|
||||
endtime;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel,
|
||||
--linebreak--,
|
||||
fe_group;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:fe_group_formlabel,
|
||||
--linebreak--,editlock
|
||||
',
|
||||
],
|
||||
'paletteLanguage' => [
|
||||
'showitem' => '
|
||||
sys_language_uid;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:sys_language_uid_formlabel,l10n_parent, l10n_diffsource,
|
||||
',
|
||||
],
|
||||
'paletteSlug' => [
|
||||
'showitem' => '
|
||||
path_segment
|
||||
',
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
// category restriction based on settings in extension manager
|
||||
$categoryRestrictionSetting = $configuration->getCategoryRestriction();
|
||||
if ($categoryRestrictionSetting) {
|
||||
$categoryRestriction = '';
|
||||
switch ($categoryRestrictionSetting) {
|
||||
case 'current_pid':
|
||||
$categoryRestriction = ' AND sys_category.pid=###CURRENT_PID### ';
|
||||
break;
|
||||
case 'siteroot':
|
||||
$categoryRestriction = ' AND sys_category.pid IN (###SITEROOT###) ';
|
||||
break;
|
||||
case 'page_tsconfig':
|
||||
$categoryRestriction = ' AND sys_category.pid IN (###PAGE_TSCONFIG_IDLIST###) ';
|
||||
break;
|
||||
default:
|
||||
$categoryRestriction = '';
|
||||
}
|
||||
|
||||
// prepend category restriction at the beginning of foreign_table_where
|
||||
if (!empty($categoryRestriction)) {
|
||||
$tx_news_domain_model_news['columns']['categories']['config']['foreign_table_where'] = $categoryRestriction .
|
||||
$tx_news_domain_model_news['columns']['categories']['config']['foreign_table_where'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!$configuration->getContentElementRelation()) {
|
||||
unset($tx_news_domain_model_news['columns']['content_elements']);
|
||||
}
|
||||
|
||||
return $tx_news_domain_model_news;
|
||||
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') or die();
|
||||
|
||||
$ll = 'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:';
|
||||
$configuration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\GeorgRinger\News\Domain\Model\Dto\EmConfiguration::class);
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => $ll . 'tx_news_domain_model_tag',
|
||||
'descriptionColumn' => 'notes',
|
||||
'label' => 'title',
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'cruser_id' => 'cruser_id',
|
||||
'versioningWS' => true,
|
||||
'languageField' => 'sys_language_uid',
|
||||
'transOrigPointerField' => 'l10n_parent',
|
||||
'transOrigDiffSourceField' => 'l10n_diffsource',
|
||||
'translationSource' => 'l10n_source',
|
||||
'default_sortby' => 'ORDER BY title',
|
||||
'delete' => 'deleted',
|
||||
'enablecolumns' => [
|
||||
'disabled' => 'hidden',
|
||||
],
|
||||
'typeicon_classes' => [
|
||||
'default' => 'ext-news-tag'
|
||||
],
|
||||
'searchFields' => 'uid,title',
|
||||
],
|
||||
'columns' => [
|
||||
'sys_language_uid' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'special' => 'languages',
|
||||
'items' => [
|
||||
[
|
||||
'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
|
||||
-1,
|
||||
'flags-multiple'
|
||||
],
|
||||
],
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
'l10n_parent' => [
|
||||
'displayCond' => 'FIELD:sys_language_uid:>:0',
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
['', 0],
|
||||
],
|
||||
'foreign_table' => 'tx_news_domain_model_tag',
|
||||
'foreign_table_where' => 'AND tx_news_domain_model_tag.pid=###CURRENT_PID### AND tx_news_domain_model_tag.sys_language_uid IN (-1,0)',
|
||||
'fieldWizard' => [
|
||||
'selectIcons' => [
|
||||
'disabled' => true,
|
||||
],
|
||||
],
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
'l10n_source' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'l10n_diffsource' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
'pid' => [
|
||||
'label' => 'pid',
|
||||
'config' => [
|
||||
'type' => 'passthrough'
|
||||
]
|
||||
],
|
||||
'crdate' => [
|
||||
'label' => 'crdate',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'tstamp' => [
|
||||
'label' => 'tstamp',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'eval' => 'datetime',
|
||||
]
|
||||
],
|
||||
'hidden' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
]
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => false,
|
||||
'label' => $ll . 'tx_news_domain_model_tag.title',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'required,unique,trim',
|
||||
]
|
||||
],
|
||||
'slug' => [
|
||||
'exclude' => true,
|
||||
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.slug',
|
||||
'displayCond' => 'VERSION:IS:false',
|
||||
'config' => [
|
||||
'type' => 'slug',
|
||||
'size' => 50,
|
||||
'generatorOptions' => [
|
||||
'fields' => ['title'],
|
||||
'replacements' => [
|
||||
'/' => '-'
|
||||
],
|
||||
],
|
||||
'fallbackCharacter' => '-',
|
||||
'eval' => $configuration->getSlugBehaviour(),
|
||||
'default' => ''
|
||||
]
|
||||
],
|
||||
'seo_headline' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_tag.seo.seo_headline',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
],
|
||||
],
|
||||
'seo_title' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_tag.seo.seo_title',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
],
|
||||
],
|
||||
'seo_description' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_tag.seo.seo_description',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
],
|
||||
],
|
||||
'seo_text' => [
|
||||
'exclude' => true,
|
||||
'label' => $ll . 'tx_news_domain_model_tag.seo.seo_text',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => true,
|
||||
],
|
||||
],
|
||||
'notes' => [
|
||||
'label' => $ll . 'notes',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'rows' => 10,
|
||||
'cols' => 48
|
||||
]
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
0 => [
|
||||
'showitem' => 'title, slug, --palette--;;paletteCore,
|
||||
--div--;' . $ll . 'tx_news_domain_model_tag.tabs.seo, seo_title, seo_description, seo_headline, seo_text,
|
||||
--div--;' . $ll . 'notes,
|
||||
notes,
|
||||
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.extended,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
|
||||
--palette--;;paletteLanguage,'
|
||||
]
|
||||
],
|
||||
'palettes' => [
|
||||
'paletteCore' => [
|
||||
'showitem' => 'hidden,',
|
||||
],
|
||||
'paletteLanguage' => [
|
||||
'showitem' => '
|
||||
sys_language_uid;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:sys_language_uid_formlabel,l10n_parent, l10n_diffsource,
|
||||
',
|
||||
],
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,14 @@
|
||||
tx_news.module {
|
||||
filters {
|
||||
searchWord = 1
|
||||
timeRestriction = 1
|
||||
topNewsRestriction = 1
|
||||
hidden = 1
|
||||
archived = 1
|
||||
sortingField = 1
|
||||
number = 1
|
||||
categories = 1
|
||||
categoryConjunction = 1
|
||||
includeSubCategories = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
mod.wizards.newContentElement.wizardItems.plugins {
|
||||
elements {
|
||||
news {
|
||||
iconIdentifier = ext-news-wizard-icon
|
||||
title = LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:pi1_title
|
||||
description = LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:pi1_plus_wiz_description
|
||||
tt_content_defValues {
|
||||
CType = list
|
||||
list_type = news_pi1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
mod.linkvalidator.searchFields {
|
||||
tx_news_domain_model_news = bodytext,internalurl,externalurl
|
||||
tx_news_domain_model_link = uri
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
mod.web_list.allowedNewTables := addToList(tx_news_domain_model_news,sys_note,tx_news_domain_model_tag)
|
||||
@@ -0,0 +1,97 @@
|
||||
mod.guide.tours.TxNewsAdministrationModule {
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.title
|
||||
description = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.description
|
||||
moduleName = web_NewsAdministration
|
||||
iconIdentifier = ext-news-type-default
|
||||
steps {
|
||||
# General
|
||||
10 {
|
||||
selector = h1
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.general.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.general.content
|
||||
placement = bottom
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
# Filter
|
||||
20 {
|
||||
selector = .icon-actions-filter
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.filter.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.filter.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
21 {
|
||||
selector = .icon-actions-filter
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.filter2.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.filter2.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
31 {
|
||||
selector = #searchWord
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.searchWord.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.searchWord.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
32 {
|
||||
selector = #timeRestriction
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.timeRestriction.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.timeRestriction.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
33 {
|
||||
selector = #topNewsRestriction
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.topNewsRestriction.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.topNewsRestriction.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
34 {
|
||||
selector = #sortingField
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.sortingField.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.sortingField.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
35 {
|
||||
selector = #recursive
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.recursive.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.recursive.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
36 {
|
||||
selector = .category-tree
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.categoryTree.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.categoryTree.content
|
||||
placement = left
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
37 {
|
||||
selector = #categoryConjunction
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.categoryConjunction.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.categoryConjunction.content
|
||||
placement = left
|
||||
showArrow = true
|
||||
}
|
||||
|
||||
100 {
|
||||
selector = .t3-js-jumpMenuBox
|
||||
title = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.actionSwitch.title
|
||||
content = LLL:EXT:news/Resources/Private/Language/Tours.xlf:adminModule.actionSwitch.content
|
||||
placement = right
|
||||
showArrow = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/Sitemap/constants.typoscript'
|
||||
@@ -0,0 +1,13 @@
|
||||
# customsubcategory=sitemap=News sitemap settings
|
||||
plugin.tx_news.settings.sitemap {
|
||||
# cat=plugin.tx_news/sitemap/0010; type=int+; label=Sitemap startingpoint
|
||||
startingpoint =
|
||||
# cat=plugin.tx_news/sitemap/0020; type=int+; label=Detail view page UID for sitemap
|
||||
detailPid =
|
||||
# cat=plugin.tx_news/sitemap/0030; type=int+; label=Recursion level of startingpoint for sitemap
|
||||
recursive = 0
|
||||
# cat=plugin.tx_news/sitemap/0040; type=int+; label=Limit of news to list in the sitemap
|
||||
limit = 1000
|
||||
# cat=plugin.tx_news/sitemap/0050; type=int+; label=Page type for the sitemap
|
||||
typeNumber = 1426844832
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/Sitemap/setup.typoscript'
|
||||
@@ -0,0 +1,65 @@
|
||||
tx_news_sitemap = PAGE
|
||||
tx_news_sitemap {
|
||||
typeNum = {$plugin.tx_news.settings.sitemap.typeNumber}
|
||||
config {
|
||||
disableAllHeaderCode = 1
|
||||
xhtml_cleaning = none
|
||||
admPanel = 0
|
||||
debug = 0
|
||||
disablePrefixComment = 1
|
||||
metaCharset = utf-8
|
||||
additionalHeaders = Content-Type:text/xml;charset=utf-8
|
||||
additionalHeaders.10.header = Content-Type:text/xml;charset=utf-8
|
||||
}
|
||||
|
||||
wrap = <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">|</urlset>
|
||||
10 = CONTENT
|
||||
10 {
|
||||
table = tx_news_domain_model_news
|
||||
select {
|
||||
pidInList = {$plugin.tx_news.settings.sitemap.startingpoint}
|
||||
recursive = {$plugin.tx_news.settings.sitemap.recursive}
|
||||
selectFields = uid,pid,tstamp,sys_language_uid,l10n_parent
|
||||
orderBy = tstamp DESC
|
||||
max = {$plugin.tx_news.settings.sitemap.limit}
|
||||
languageField = sys_language_uid
|
||||
where = type=0
|
||||
}
|
||||
|
||||
renderObj = COA
|
||||
renderObj {
|
||||
wrap = <url>|</url>
|
||||
10 = COA
|
||||
10 {
|
||||
wrap = <loc>|</loc>
|
||||
10 = COA
|
||||
10 {
|
||||
# htmlSpecialChar on the link to encode ampersand
|
||||
stdWrap.htmlSpecialChars = 1
|
||||
10 = TEXT
|
||||
10 {
|
||||
typolink {
|
||||
parameter = {$plugin.tx_news.settings.sitemap.detailPid}
|
||||
forceAbsoluteUrl = 1
|
||||
returnLast = url
|
||||
additionalParams.field = uid
|
||||
additionalParams.wrap = &tx_news_pi1[news]=|
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20 = TEXT
|
||||
20.wrap = <lastmod>|</lastmod>
|
||||
20.field = tstamp
|
||||
20.date = Y-m-d
|
||||
}
|
||||
}
|
||||
|
||||
# Add more news urls in the same sitemap
|
||||
# from other page with a different detail view page if needed
|
||||
#20 < .10
|
||||
#20.select.pidInList = Startingpoint
|
||||
#20.select.recursive = 0
|
||||
#20.renderObj.10.10.10.typolink.parameter = Detail pid
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/Styles/Twb/constants.typoscript'
|
||||
@@ -0,0 +1,10 @@
|
||||
plugin.tx_news {
|
||||
view.twb {
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template root (FE)
|
||||
templateRootPath = EXT:news/Resources/Private/Templates/Styles/Twb/Templates
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template partials (FE)
|
||||
partialRootPath = EXT:news/Resources/Private/Templates/Styles/Twb/Partials/
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template layouts (FE)
|
||||
layoutRootPath = EXT:news/Resources/Private/Templates/Styles/Twb/Layouts/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/Styles/Twb/setup.typoscript'
|
||||
@@ -0,0 +1,35 @@
|
||||
plugin.tx_news {
|
||||
view {
|
||||
templateRootPaths {
|
||||
0 = EXT:news/Resources/Private/Templates/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb/Templates
|
||||
2 = {$plugin.tx_news.view.twb.templateRootPath}
|
||||
}
|
||||
|
||||
partialRootPaths {
|
||||
0 = EXT:news/Resources/Private/Partials/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb/Partials/
|
||||
2 = {$plugin.tx_news.view.twb.partialRootPath}
|
||||
}
|
||||
|
||||
layoutRootPaths {
|
||||
0 = EXT:news/Resources/Private/Layouts/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb/Layouts/
|
||||
2 = {$plugin.tx_news.view.twb.layoutRootPath}
|
||||
}
|
||||
|
||||
widget.GeorgRinger\News\ViewHelpers\Widget\PaginateViewHelper.templateRootPath = EXT:news/Resources/Private/Templates/Styles/Twb/Templates/
|
||||
}
|
||||
|
||||
settings {
|
||||
list {
|
||||
media {
|
||||
image >
|
||||
image {
|
||||
lazyLoading = {$styles.content.image.lazyLoading}
|
||||
width = 300
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
plugin.tx_news {
|
||||
view.twb5 {
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template root (FE)
|
||||
templateRootPath = EXT:news/Resources/Private/Templates/Styles/Twb5/Templates
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template partials (FE)
|
||||
partialRootPath = EXT:news/Resources/Private/Templates/Styles/Twb5/Partials/
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template layouts (FE)
|
||||
layoutRootPath = EXT:news/Resources/Private/Templates/Styles/Twb5/Layouts/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
plugin.tx_news {
|
||||
view {
|
||||
templateRootPaths {
|
||||
0 = EXT:news/Resources/Private/Templates/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb5/Templates
|
||||
2 = {$plugin.tx_news.view.twb5.templateRootPath}
|
||||
}
|
||||
|
||||
partialRootPaths {
|
||||
0 = EXT:news/Resources/Private/Partials/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb5/Partials/
|
||||
2 = {$plugin.tx_news.view.twb5.partialRootPath}
|
||||
}
|
||||
|
||||
layoutRootPaths {
|
||||
0 = EXT:news/Resources/Private/Layouts/
|
||||
1 = EXT:news/Resources/Private/Templates/Styles/Twb5/Layouts/
|
||||
2 = {$plugin.tx_news.view.twb5.layoutRootPath}
|
||||
}
|
||||
|
||||
widget.GeorgRinger\News\ViewHelpers\Widget\PaginateViewHelper.templateRootPath = EXT:news/Resources/Private/Templates/Styles/Twb5/Templates/
|
||||
}
|
||||
|
||||
settings {
|
||||
list {
|
||||
media {
|
||||
image >
|
||||
image {
|
||||
lazyLoading = {$styles.content.image.lazyLoading}
|
||||
width = 300
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/constants.typoscript'
|
||||
@@ -0,0 +1,36 @@
|
||||
plugin.tx_news {
|
||||
rss.channel {
|
||||
title = Dummy Title
|
||||
description =
|
||||
link = http://example.com
|
||||
language = en-gb
|
||||
copyright = TYPO3 News
|
||||
category =
|
||||
generator = TYPO3 EXT:news
|
||||
typeNum = 9818
|
||||
}
|
||||
|
||||
opengraph {
|
||||
site_name =
|
||||
|
||||
twitter {
|
||||
card = summary
|
||||
site =
|
||||
creator =
|
||||
}
|
||||
}
|
||||
|
||||
view {
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template root (FE)
|
||||
templateRootPath = EXT:news/Resources/Private/Templates/
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template partials (FE)
|
||||
partialRootPath = EXT:news/Resources/Private/Partials/
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to template layouts (FE)
|
||||
layoutRootPath = EXT:news/Resources/Private/Layouts/
|
||||
}
|
||||
|
||||
settings {
|
||||
# cat=plugin.tx_news/file; type=string; label=Path to CSS file
|
||||
cssFile = EXT:news/Resources/Public/Css/news-basic.css
|
||||
}
|
||||
}
|
||||
2
typo3conf/ext/news/Configuration/TypoScript/setup.txt
Normal file
2
typo3conf/ext/news/Configuration/TypoScript/setup.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
# Important: This file is deprecated and will removed with EXT:news 10.x
|
||||
@import 'EXT:news/Configuration/TypoScript/setup.typoscript'
|
||||
263
typo3conf/ext/news/Configuration/TypoScript/setup.typoscript
Normal file
263
typo3conf/ext/news/Configuration/TypoScript/setup.typoscript
Normal file
@@ -0,0 +1,263 @@
|
||||
# ==============================================
|
||||
# FE-Plugin configuration for EXT:news
|
||||
# ==============================================
|
||||
plugin.tx_news {
|
||||
mvc.callDefaultActionIfActionCantBeResolved = 1
|
||||
|
||||
view {
|
||||
templateRootPaths {
|
||||
0 = EXT:news/Resources/Private/Templates/
|
||||
1 = {$plugin.tx_news.view.templateRootPath}
|
||||
}
|
||||
|
||||
partialRootPaths {
|
||||
0 = EXT:news/Resources/Private/Partials/
|
||||
1 = {$plugin.tx_news.view.partialRootPath}
|
||||
}
|
||||
|
||||
layoutRootPaths {
|
||||
0 = EXT:news/Resources/Private/Layouts/
|
||||
1 = {$plugin.tx_news.view.layoutRootPath}
|
||||
}
|
||||
|
||||
widget.GeorgRinger\News\ViewHelpers\Widget\PaginateViewHelper.templateRootPath = EXT:news/Resources/Private/Templates/
|
||||
}
|
||||
|
||||
# Modify the translation
|
||||
#_LOCAL_LANG {
|
||||
# default {
|
||||
# more-link = more >>
|
||||
# }
|
||||
#}
|
||||
|
||||
# ====================================
|
||||
# Settings available inside Controller and View by accessing $this->settings or {settings.xyz}
|
||||
# ====================================
|
||||
settings {
|
||||
cssFile = {$plugin.tx_news.settings.cssFile}
|
||||
|
||||
#Displays a dummy image if the news have no media items
|
||||
displayDummyIfNoMedia = 1
|
||||
|
||||
# Output format
|
||||
format = html
|
||||
|
||||
# general settings
|
||||
overrideFlexformSettingsIfEmpty = cropMaxCharacters,dateField,timeRestriction,timeRestrictionHigh,archiveRestriction,orderBy,orderDirection,backPid,listPid,startingpoint,recursive,list.paginate.itemsPerPage,list.paginate.templatePath
|
||||
allowEmptyStringsForOverwriteDemand = 0
|
||||
|
||||
includeSubCategories = 0
|
||||
|
||||
analytics {
|
||||
social {
|
||||
facebookLike = 1
|
||||
facebookShare = 1
|
||||
twitter = 1
|
||||
}
|
||||
}
|
||||
|
||||
detailPidDetermination = flexform, categories, default
|
||||
|
||||
defaultDetailPid = 0
|
||||
dateField = datetime
|
||||
|
||||
link {
|
||||
typesOpeningInNewWindow = 2
|
||||
hrDate = 0
|
||||
hrDate {
|
||||
day = j
|
||||
month = n
|
||||
year = Y
|
||||
}
|
||||
}
|
||||
|
||||
cropMaxCharacters = 150
|
||||
orderBy = datetime
|
||||
orderDirection = desc
|
||||
topNewsFirst = 0
|
||||
orderByAllowed = sorting,author,uid,title,teaser,author,tstamp,crdate,datetime,categories.title
|
||||
|
||||
facebookLocale = en_US
|
||||
googlePlusLocale = en
|
||||
|
||||
demandClass =
|
||||
|
||||
|
||||
# --------------
|
||||
# Search
|
||||
# --------------
|
||||
search {
|
||||
fields = teaser,title,bodytext
|
||||
splitSearchWord = 0
|
||||
}
|
||||
|
||||
# --------------
|
||||
# Detail
|
||||
# --------------
|
||||
detail {
|
||||
errorHandling = showStandaloneTemplate,EXT:news/Resources/Private/Templates/News/DetailNotFound.html,404
|
||||
checkPidOfNewsRecord = 0
|
||||
registerProperties = keywords,title
|
||||
showPrevNext = 0
|
||||
showSocialShareButtons = 1
|
||||
showMetaTags = 1
|
||||
|
||||
# media configuration
|
||||
media {
|
||||
image {
|
||||
lazyLoading = {$styles.content.image.lazyLoading}
|
||||
maxWidth = 282
|
||||
maxHeight =
|
||||
|
||||
# Get lightbox settings from fluid_styled_content
|
||||
lightbox {
|
||||
enabled = {$styles.content.textmedia.linkWrap.lightboxEnabled}
|
||||
class = {$styles.content.textmedia.linkWrap.lightboxCssClass}
|
||||
width = {$styles.content.textmedia.linkWrap.width}
|
||||
height = {$styles.content.textmedia.linkWrap.height}
|
||||
rel = lightbox[myImageSet]
|
||||
}
|
||||
}
|
||||
|
||||
video {
|
||||
width = 282
|
||||
height = 159
|
||||
}
|
||||
}
|
||||
|
||||
pageTitle = 1
|
||||
pageTitle {
|
||||
provider = GeorgRinger\News\Seo\NewsTitleProvider
|
||||
properties = title,teaser
|
||||
}
|
||||
}
|
||||
|
||||
# --------------
|
||||
# List
|
||||
# --------------
|
||||
list {
|
||||
# media configuration
|
||||
media {
|
||||
image {
|
||||
lazyLoading = {$styles.content.image.lazyLoading}
|
||||
maxWidth = 100
|
||||
maxHeight = 100
|
||||
}
|
||||
|
||||
dummyImage = EXT:news/Resources/Public/Images/dummy-preview-image.png
|
||||
}
|
||||
|
||||
# Paginate configuration.
|
||||
paginate {
|
||||
class = GeorgRinger\NumberedPagination\NumberedPagination
|
||||
itemsPerPage = 10
|
||||
insertAbove = 1
|
||||
insertBelow = 1
|
||||
maximumNumberOfLinks = 3
|
||||
}
|
||||
|
||||
rss {
|
||||
channel {
|
||||
title = {$plugin.tx_news.rss.channel.title}
|
||||
description = {$plugin.tx_news.rss.channel.description}
|
||||
language = {$plugin.tx_news.rss.channel.language}
|
||||
copyright = {$plugin.tx_news.rss.channel.copyright}
|
||||
generator = {$plugin.tx_news.rss.channel.generator}
|
||||
link = {$plugin.tx_news.rss.channel.link}
|
||||
typeNum = {$plugin.tx_news.rss.channel.typeNum}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Opengraph implementation
|
||||
opengraph {
|
||||
site_name = {$plugin.tx_news.opengraph.site_name}
|
||||
type = article
|
||||
admins =
|
||||
locale =
|
||||
|
||||
twitter {
|
||||
card = {$plugin.tx_news.opengraph.twitter.card}
|
||||
site = {$plugin.tx_news.opengraph.twitter.site}
|
||||
creator = {$plugin.tx_news.opengraph.twitter.creator}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Rendering of content elements in detail view
|
||||
lib.tx_news.contentElementRendering = RECORDS
|
||||
lib.tx_news.contentElementRendering {
|
||||
tables = tt_content
|
||||
source.current = 1
|
||||
dontCheckPid = 1
|
||||
}
|
||||
|
||||
# Rendering of news, displayed by "Insert Record" content element
|
||||
tt_content.shortcut.20.tables := addToList(tx_news_domain_model_news)
|
||||
tt_content.shortcut.20.conf.tx_news_domain_model_news = USER
|
||||
tt_content.shortcut.20.conf.tx_news_domain_model_news {
|
||||
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
|
||||
extensionName = News
|
||||
pluginName = Pi1
|
||||
vendorName = GeorgRinger
|
||||
switchableControllerActions {
|
||||
News {
|
||||
1 = detail
|
||||
}
|
||||
}
|
||||
|
||||
settings =< plugin.tx_news.settings
|
||||
settings {
|
||||
singleNews.field = uid
|
||||
useStdWrap = singleNews
|
||||
insertRecord = 1
|
||||
isShortcut = 1
|
||||
}
|
||||
}
|
||||
# For fluid_styled_content
|
||||
tt_content.shortcut.variables.shortcuts.tables := addToList(tx_news_domain_model_news)
|
||||
tt_content.shortcut.variables.shortcuts.conf.tx_news_domain_model_news < tt_content.shortcut.20.conf.tx_news_domain_model_news
|
||||
|
||||
# ==============================================
|
||||
# BE-module configuration for EXT:news
|
||||
# ==============================================
|
||||
module.tx_news < plugin.tx_news
|
||||
module.tx_news {
|
||||
settings.list.paginate.itemsPerPage = 25
|
||||
}
|
||||
|
||||
# ==============================================
|
||||
# Persistence object mapping configuration
|
||||
# ==============================================
|
||||
config.tx_extbase.persistence.classes {
|
||||
GeorgRinger\News\Domain\Model\News {
|
||||
subclasses {
|
||||
0 = GeorgRinger\News\Domain\Model\NewsDefault
|
||||
1 = GeorgRinger\News\Domain\Model\NewsInternal
|
||||
2 = GeorgRinger\News\Domain\Model\NewsExternal
|
||||
}
|
||||
}
|
||||
|
||||
GeorgRinger\News\Domain\Model\NewsDefault {
|
||||
mapping {
|
||||
recordType = 0
|
||||
tableName = tx_news_domain_model_news
|
||||
}
|
||||
}
|
||||
|
||||
GeorgRinger\News\Domain\Model\NewsInternal {
|
||||
mapping {
|
||||
recordType = 1
|
||||
tableName = tx_news_domain_model_news
|
||||
}
|
||||
}
|
||||
|
||||
GeorgRinger\News\Domain\Model\NewsExternal {
|
||||
mapping {
|
||||
recordType = 2
|
||||
tableName = tx_news_domain_model_news
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user