Initial commit - Typo3 11.5.41

This commit is contained in:
Matteo Gallo
2026-07-03 17:53:31 +02:00
commit 5ca4743197
6811 changed files with 568848 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="news news-single">
<div class="article" itemscope="itemscope" itemtype="http://schema.org/Article">
<f:render section="content"/>
</div>
</div>
</html>

View File

@@ -0,0 +1,5 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="news">
<f:render section="content"/>
</div>
</html>

View File

@@ -0,0 +1,17 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<!-- categories -->
<span class="news-list-category">
<f:for each="{categories}" as="category">
<f:if condition="{category.shortcut}">
<f:then>
<f:link.typolink parameter="{category.shortcut}">
{category.title}
</f:link.typolink>
</f:then>
<f:else>
{category.title}
</f:else>
</f:if>
</f:for>
</span>
</html>

View File

@@ -0,0 +1,30 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="extra">
<!-- author -->
<f:if condition="{newsItem.author}">
<span class="glyphicon glyphicon-user"></span>
<f:translate key="author" arguments="{0:newsItem.author}"/>
|
</f:if>
<!-- date -->
<span class="glyphicon glyphicon-calendar"> </span>
<time itemprop="datePublished" datetime="{f:format.date(date:newsItem.datetime, format:'Y-m-d')}">
<f:format.date format="{f:translate(key:'dateFormat')}">{newsItem.datetime}</f:format.date>
</time>
<!-- category -->
<f:if condition="{newsItem.firstCategory}">
| <span class="glyphicon glyphicon-tags"> </span>&nbsp;
<span class="label label-info">{newsItem.firstCategory.title}</span>
</f:if>
<f:if condition="{newsItem.tags}">
| <span class="glyphicon glyphicon-tags"> </span> <span class="news-list-tags" itemprop="keywords">
<f:for each="{newsItem.tags}" as="tag">
<span class="label label-info">{tag.title}</span>
</f:for>
</span>
</f:if>
</div>
</html>

View File

@@ -0,0 +1,53 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<!--
=====================
Partials/List/Item.html
-->
<n:excludeDisplayedNews newsItem="{newsItem}" />
<div class="row news-list-item">
<div class="col-md-3">
<n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}">
<f:if condition="{newsItem.mediaPreviews}">
<f:then>
<f:media class="img-responsive" file="{newsItem.mediaPreviews.0}" title="{newsItem.mediaPreviews.0.originalResource.title}" alt="{newsItem.mediaPreviews.0.originalResource.alternative}" loading="{settings.list.media.image.lazyLoading}" width="{f:if(condition: settings.media.maxWidth, then: settings.media.maxWidth, else: settings.list.media.image.width)}" height="{f:if(condition: settings.media.maxHeight, then: settings.media.maxHeight, else:'')}" />
</f:then>
<f:else>
<f:if condition="{settings.displayDummyIfNoMedia}">
<f:image class="img-dummy img-responsive" src="{settings.list.media.dummyImage}" title="" alt="" loading="{settings.list.media.image.lazyLoading}" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}" />
</f:if>
</f:else>
</f:if>
</n:link>
</div>
<div class="col-md-9 articletype-{newsItem.type}{f:if(condition: newsItem.istopnews, then: ' topnews')}" itemscope="itemscope" itemtype="http://schema.org/Article">
<h3 itemprop="headline">
<n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}">
{newsItem.title}
</n:link>
</h3>
<f:render partial="General/AdditionalInformation" arguments="{settings:settings,newsItem:newsItem}" />
<!-- teaser -->
<div class="lead" itemprop="description">
<n:removeMediaTags>
<f:if condition="{newsItem.teaser}">
<f:then>
{newsItem.teaser -> f:format.crop(maxCharacters: '{settings.cropMaxCharacters}', respectWordBoundaries:'1') -> f:format.html()}
</f:then>
<f:else>
{newsItem.bodytext -> f:format.crop(maxCharacters: '{settings.cropMaxCharacters}', respectWordBoundaries:'1') -> f:format.html()}
</f:else>
</f:if>
</n:removeMediaTags>
</div>
<n:link newsItem="{newsItem}" settings="{settings}" class="btn btn-default btn-read-more" title="{newsItem.title}">
<f:translate key="more-link" />
</n:link>
</div>
</div>
</html>

View File

@@ -0,0 +1,66 @@
<f:if condition="{pagination.allPageNumbers -> f:count()} > 1">
<ul class="f3-widget-paginator pagination">
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
<f:then>
<f:comment>
<li class="first">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: 1})}" title="{f:translate(key:'pagination.first')}">
<i class="material-icons">first_page</i>
</a>
</li>
</f:comment>
<li class="previous">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.previousPageNumber})}" title="{f:translate(key:'pagination.previous')}">
{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}
</a>
</li>
</f:then>
<f:else>
<f:comment>
<li class="disabled"><span><i class="material-icons">first_page</i></span></li>
<li class="disabled"><span>{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}</span></li>
</f:comment>
</f:else>
</f:if>
<f:if condition="{pagination.hasLessPages}">
<li></li>
</f:if>
<f:for each="{pagination.allPageNumbers}" as="page">
<f:if condition="{page} == {paginator.currentPageNumber}">
<f:then>
<li class="current"><span>{page}</span></li>
</f:then>
<f:else>
<li>
<a href="{f:uri.action(action:actionName, arguments:{currentPage: page},addQueryString:1)}">{page}</a>
</li>
</f:else>
</f:if>
</f:for>
<f:if condition="{pagination.hasMorePages}">
<li></li>
</f:if>
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
<f:then>
<li class="next">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.nextPageNumber})}" title="{f:translate(key:'pagination.next')}">
{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}
</a>
</li>
<f:comment>
<li class="last">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.lastPageNumber})}" title="{f:translate(key:'pagination.last')}">
last
</a>
</li>
</f:comment>
</f:then>
<f:else>
<f:comment>
<li class="disabled"><span>{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}</span></li>
<li class="disabled"><span>last page</span></li>
</f:comment>
</f:else>
</f:if>
</ul>
</f:if>

View File

@@ -0,0 +1,43 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/Category/List.html
-->
<f:section name="content">
<f:if condition="{categories}">
<f:then>
<f:render section="categoryTree" arguments="{categories:categories,overwriteDemand:overwriteDemand,class:'nav nav-sidebar category-menu-view'}" />
</f:then>
<f:else>
<f:translate key="list_nocategoriesfound" />
</f:else>
</f:if>
</f:section>
<f:section name="categoryTree">
<ul class="{class}">
<f:for each="{categories}" as="category">
<li>
<f:if condition="{category.item.uid} == {overwriteDemand.categories}">
<f:then>
<f:link.page title="{category.item.title}" class="active" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">{category.item.title}
</f:link.page>
</f:then>
<f:else>
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">{category.item.title}
</f:link.page>
</f:else>
</f:if>
<f:if condition="{category.children}">
<f:render section="categoryTree" arguments="{categories: category.children,overwriteDemand:overwriteDemand,class:''}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>
</html>

View File

@@ -0,0 +1,32 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/DateMenu.html
-->
<f:section name="content">
<ul class="nav nav-sidebar news-menu-view">
<f:for each="{data.single}" key="year" as="months">
<li>
{year}
<ul>
<f:for each="{months}" key="month" as="count">
<f:if condition="{0:year, 1:month} == {0:overwriteDemand.year, 1:overwriteDemand.month}">
<f:then>
<li class="active">
</f:then>
<f:else>
<li>
</f:else>
</f:if>
<f:link.action action="list" pageUid="{listPid}" arguments="{overwriteDemand:{year: year, month: month}}"><f:translate key="month.{month}" /> {year}</f:link.action>
({count} <f:translate key="{f:if(condition: '{count} == 1', then: 'entry', else: 'entries')}" />)
</li>
</f:for>
</ul>
</li>
</f:for>
</ul>
</f:section>
</html>

View File

@@ -0,0 +1,199 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="Detail" />
<!--
=====================
News/Detail.html
-->
<f:section name="content">
<f:if condition="{newsItem}">
<n:format.nothing>
<n:excludeDisplayedNews newsItem="{newsItem}" />
<f:if condition="{settings.detail.showMetaTags}">
<f:render partial="Detail/Opengraph" arguments="{newsItem: newsItem, settings:settings}" />
</f:if>
<f:if condition="{newsItem.alternativeTitle}">
<f:then>
<n:titleTag>
<f:format.htmlentitiesDecode>{newsItem.alternativeTitle}</f:format.htmlentitiesDecode>
</n:titleTag>
</f:then>
<f:else>
<n:titleTag>
<f:format.htmlentitiesDecode>{newsItem.title}</f:format.htmlentitiesDecode>
</n:titleTag>
</f:else>
</f:if>
</n:format.nothing>
<f:if condition="{settings.detail.showPrevNext}">
<n:simplePrevNext pidList="{newsItem.pid}" news="{newsItem}" as="paginated" sortField="datetime">
<f:if condition="{paginated}">
<ul class="pager">
<f:if condition="{paginated.prev}">
<li class="previous">
<n:link newsItem="{paginated.prev}" settings="{settings}">
<span aria-hidden="true">&larr; </span>{paginated.prev.title}
</n:link>
</li>
</f:if>
<f:if condition="{paginated.next}">
<li class="next">
<n:link newsItem="{paginated.next}" settings="{settings}" class="next">
{paginated.next.title} <span aria-hidden="true"> &rarr;</span>
</n:link>
</li>
</f:if>
</ul>
</f:if>
</n:simplePrevNext>
</f:if>
<f:if condition="{newsItem.mediaNonPreviews}">
<f:then>
<f:render section="headline" arguments="{_all}" />
<div class="row">
<div class="col-md-8">
<f:render section="inner-content" arguments="{_all}" />
</div>
<div class="col-md-4">
<f:for each="{newsItem.mediaNonPreviews}" as="mediaElement">
<div class="thumbnail">
<f:media file="{mediaElement}" class="img-responsive" />
<f:if condition="{mediaElement.description}">
<div class="caption">
{mediaElement.description}
</div>
</f:if>
</div>
</f:for>
</div>
</div>
</f:then>
<f:else>
<f:render section="headline" arguments="{_all}" />
<f:render section="inner-content" arguments="{_all}" />
</f:else>
</f:if>
</f:if>
</f:section>
<f:section name="headline">
<h1 itemprop="headline">{newsItem.title}</h1>
<f:render partial="General/AdditionalInformation" arguments="{settings:settings,newsItem:newsItem}" />
</f:section>
<f:section name="inner-content">
<n:renderMedia news="{newsItem}" imgClass="img-responsive" videoClass="video-wrapper" audioClass="audio-wrapper">
<f:if condition="{newsItem.teaser}">
<!-- teaser -->
<div class="lead" itemprop="description">
<f:format.html>{newsItem.teaser}</f:format.html>
</div>
</f:if>
<f:if condition="{newsItem.contentElements}">
<!-- content elements -->
<f:cObject typoscriptObjectPath="lib.tx_news.contentElementRendering">{newsItem.contentElementIdList}</f:cObject>
</f:if>
<!-- main text -->
<div class="news-text-wrap" itemprop="articleBody">
<f:format.html>{newsItem.bodytext}</f:format.html>
</div>
</n:renderMedia>
<f:if condition="{settings.backPid}">
<!-- Link Back -->
<f:link.page class="btn btn-default" pageUid="{settings.backPid}">
<f:translate key="back-link" />
</f:link.page>
</f:if>
<f:if condition="{settings.detail.showSocialShareButtons}">
<f:comment>
Care about the privacy of your readers?
Checkout https://typo3.org/extensions/repository/view/rx_shariff
and it will be used automatically!
</f:comment>
<n:extensionLoaded extensionKey="rx_shariff">
<f:render partial="Detail/Shariff" />
</n:extensionLoaded>
</f:if>
<f:comment>
Various options exist to fetch different related information:
- {newsItem.allRelatedSorted}: all related news, related und related from, sorted by date
- {newsItem.related}: all related
- {newsItem.relatedSorted}: all related, sorted by date
- {newsItem.relatedFrom}: all related from
- {newsItem.relatedFromSorted}: all related from, sorted by date
</f:comment>
<f:if condition="{newsItem.allRelatedSorted}">
<!-- Related news records -->
<div class="news-related news-related-news">
<h4>
<f:translate key="related-news" />
</h4>
<ul>
<f:for each="{newsItem.allRelatedSorted}" as="related">
<li>
<span class="news-related-news-date">
<f:format.date format="{f:translate(key:'dateFormat')}">{related.datetime}</f:format.date>
</span>
<n:link newsItem="{related}" settings="{settings}" title="{related.title}">
{related.title}
</n:link>
</li>
</f:for>
</ul>
</div>
</f:if>
<f:if condition="{newsItem.relatedFiles}">
<!-- related files -->
<div class="news-related news-related-files">
<h4>
<f:translate key="related-files" />
</h4>
<ul>
<f:for each="{newsItem.relatedFiles}" as="relatedFile">
<li>
<span class="news-related-files-link">
<a href="{relatedFile.originalResource.publicUrl -> f:format.htmlspecialchars()}" target="_blank">
{f:if(condition:relatedFile.originalResource.title, then:relatedFile.originalResource.title, else:relatedFile.originalResource.name)}
</a>
</span>
<span class="news-related-files-size"> {relatedFile.originalResource.size -> f:format.bytes()} </span>
</li>
</f:for>
</ul>
</div>
</f:if>
<f:if condition="{newsItem.relatedLinks}">
<!-- Related links -->
<div class="news-related news-related-links">
<h4>
<f:translate key="related-links" />
</h4>
<ul>
<f:for each="{newsItem.relatedLinks}" as="relatedLink">
<li>
<f:link.typolink parameter="{relatedLink.uri}" title="{relatedLink.title}" target="{n:targetLink(link:relatedLink.uri)}">{f:if(condition: relatedLink.title, then: relatedLink.title, else: relatedLink.uri)}</f:link.typolink>
<f:if condition="{relatedLink.description}"><span>{relatedLink.description}</span>
</f:if>
</li>
</f:for>
</ul>
</div>
</f:if>
</f:section>
</html>

View File

@@ -0,0 +1,43 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<!--TYPO3SEARCH_end-->
<f:if condition="{news}">
<f:then>
<div class="news-list-view" id="news-container-{contentObjectData.uid}">
<f:if condition="{settings.hidePagination}">
<f:then>
<f:for each="{news}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</f:then>
<f:else>
<f:if condition="{settings.list.paginate.insertAbove}">
<f:render partial="List/Pagination" arguments="{pagination: pagination.pagination, paginator: pagination.paginator}" />
</f:if>
<f:for each="{pagination.paginator.paginatedItems}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
<f:if condition="{settings.list.paginate.insertBelow}">
<f:render partial="List/Pagination" arguments="{pagination: pagination.pagination, paginator: pagination.paginator}" />
</f:if>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<div class="alert ">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
<!--TYPO3SEARCH_begin-->
</f:section>
</html>

View File

@@ -0,0 +1,34 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/SearchForm.html
-->
<f:section name="content">
<f:form class="news-search-form" object="{search}" name="search" pageUid="{settings.listPid}">
<div class="form-group">
<label for="news-subject">
<f:translate key="search-subject" />
</label>
<f:form.textfield id="news-subject" property="subject" class="form-control" />
</div>
<div class="form-group">
<label for="news-minimumDate">
<f:translate key="search-minimumDate" />
</label>
<f:form.textfield id="news-minimumDate" property="minimumDate" type="date" class="form-control" />
</div>
<div class="form-group">
<label for="news-maximumDate">
<f:translate key="search-maximumDate" />
</label>
<f:form.textfield id="news-maximumDate" property="maximumDate" type="date" class="form-control" />
</div>
<f:form.submit value="{f:translate(key:'search-start')}" class="btn btn-default" />
</f:form>
</f:section>
</html>

View File

@@ -0,0 +1,29 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/SearchResult.html
-->
<f:section name="content">
<div class="news-search-result">
<f:if condition="{search}">
<f:if condition="{news}">
<f:then>
<div class="alert alert-success">
<f:translate key="search-text" arguments="{0:'{f:count(subject:news)}',1:search.subject}" />
</div>
<f:for each="{news}" as="newsItem">
<f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}" />
</f:for>
</f:then>
<f:else>
<div class="alert alert-info">
<f:translate key="search-noresult" />
</div>
</f:else>
</f:if>
</f:if>
</div>
</f:section>
</html>

View File

@@ -0,0 +1,28 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<!--TYPO3SEARCH_end-->
<f:if condition="{news}">
<f:then>
<div class="news-list-view" id="news-container-{contentObjectData.uid}">
<f:for each="{news}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</div>
</f:then>
<f:else>
<div class="alert ">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
<!--TYPO3SEARCH_begin-->
</f:section>
</html>

View File

@@ -0,0 +1,27 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/Tag/List.html
-->
<f:section name="content">
<f:if condition="{tags}">
<ul class="nav nav-sidebar tag-menu-view">
<f:for each="{tags}" as="tag">
{n:tag.count(tagUid:tag.uid) -> f:variable(name: 'tagUsageCount')}
<li class="{f:if(condition:'{tag.uid} == {overwriteDemand.tags}',then:'active',else:'')}">
<f:link.page title="{tag.title}" pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}">
{tag.title}
</f:link.page>
<f:if condition="{tagUsageCount}">({tagUsageCount})</f:if>
</li>
</f:for>
</ul>
</f:if>
</f:section>
</html>

View File

@@ -0,0 +1,7 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="news news-single">
<div class="article" itemscope="itemscope" itemtype="http://schema.org/Article">
<f:render section="content"/>
</div>
</div>
</html>

View File

@@ -0,0 +1,5 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="news">
<f:render section="content"/>
</div>
</html>

View File

@@ -0,0 +1,17 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<!-- categories -->
<span class="news-list-category">
<f:for each="{categories}" as="category">
<f:if condition="{category.shortcut}">
<f:then>
<f:link.typolink parameter="{category.shortcut}">
{category.title}
</f:link.typolink>
</f:then>
<f:else>
{category.title}
</f:else>
</f:if>
</f:for>
</span>
</html>

View File

@@ -0,0 +1,34 @@
<html data-namespace-typo3-fluid="true" xmlns:core="TYPO3\CMS\Core\ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
<div class="extra mb-3">
<f:comment>Author</f:comment>
<f:if condition="{newsItem.author}">
<i class="fas fa-user me-1"></i>
<f:translate arguments="{0:newsItem.author}" key="author"/>
|
</f:if>
<f:comment>Date</f:comment>
<i class="fas fa-calendar-alt me-1"> </i>
<time datetime="{f:format.date(date:newsItem.datetime, format:'Y-m-d')}" itemprop="datePublished">
<f:format.date format="{f:translate(key:'dateFormat')}">{newsItem.datetime}</f:format.date>
</time>
<f:comment>Category</f:comment>
<f:if condition="{newsItem.firstCategory}">
| <i class="fas fa-folder-open me-1"></i>
<span class="label label-info">{newsItem.firstCategory.title}</span>
</f:if>
<f:comment>Tags</f:comment>
<f:if condition="{newsItem.tags}">
| <i class="fas fa-tags me-1"></i> <span class="news-list-tags me-1" itemprop="keywords">
<f:for as="tag" each="{newsItem.tags}">
<span class="label label-info me-1">{tag.title}</span>
</f:for>
</span>
</f:if>
</div>
</html>

View File

@@ -0,0 +1,55 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<!--
=====================
Partials/List/Item.html
-->
<n:excludeDisplayedNews newsItem="{newsItem}" />
<li class="list-group-item">
<div class="row news-list-item mb-3">
<div class="col-md-3">
<n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}">
<f:if condition="{newsItem.mediaPreviews}">
<f:then>
<f:media class="img-fluid" file="{newsItem.mediaPreviews.0}" title="{newsItem.mediaPreviews.0.originalResource.title}" alt="{newsItem.mediaPreviews.0.originalResource.alternative}" loading="{settings.list.media.image.lazyLoading}" width="{f:if(condition: settings.media.maxWidth, then: settings.media.maxWidth, else: settings.list.media.image.width)}" height="{f:if(condition: settings.media.maxHeight, then: settings.media.maxHeight, else:'')}" />
</f:then>
<f:else>
<f:if condition="{settings.displayDummyIfNoMedia}">
<f:image class="img-dummy img-fluid" src="{settings.list.media.dummyImage}" title="" alt="" loading="{settings.list.media.image.lazyLoading}" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}" />
</f:if>
</f:else>
</f:if>
</n:link>
</div>
<div class="col-md-9 articletype-{newsItem.type}{f:if(condition: newsItem.istopnews, then: ' topnews')}" itemscope="itemscope" itemtype="http://schema.org/Article">
<h3 itemprop="headline">
<n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}">
{newsItem.title}
</n:link>
</h3>
<f:render partial="General/AdditionalInformation" arguments="{settings:settings,newsItem:newsItem}" />
<!-- teaser -->
<div class="lead" itemprop="description">
<n:removeMediaTags>
<f:if condition="{newsItem.teaser}">
<f:then>
{newsItem.teaser -> f:format.crop(maxCharacters: '{settings.cropMaxCharacters}', respectWordBoundaries:'1') -> f:format.html()}
</f:then>
<f:else>
{newsItem.bodytext -> f:format.crop(maxCharacters: '{settings.cropMaxCharacters}', respectWordBoundaries:'1') -> f:format.html()}
</f:else>
</f:if>
</n:removeMediaTags>
</div>
<n:link newsItem="{newsItem}" settings="{settings}" class="btn btn-primary btn-read-more" title="{newsItem.title}">
<f:translate key="more-link" />
</n:link>
</div>
</div>
</li>
</html>

View File

@@ -0,0 +1,59 @@
<f:if condition="{pagination.allPageNumbers -> f:count()} > 1">
<ul class="f3-widget-paginator pagination">
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
<f:then>
<li class="previous page-item">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.previousPageNumber},addQueryString:1)}" class="page-link" title="{f:translate(key:'pagination.previous')}">
{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}
</a>
</li>
</f:then>
<f:else>
<f:comment>
<li class="disabled"><span><i class="material-icons">first_page</i></span></li>
<li class="disabled"><span>{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}</span></li>
</f:comment>
</f:else>
</f:if>
<f:if condition="{pagination.hasLessPages}">
<li class="page-item"></li>
</f:if>
<f:for each="{pagination.allPageNumbers}" as="page">
<f:if condition="{page} == {paginator.currentPageNumber}">
<f:then>
<li class="page-item active"><span class="page-link">{page}</span></li>
</f:then>
<f:else>
<li class="page-item">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: page},addQueryString:1)}" class="page-link">{page}</a>
</li>
</f:else>
</f:if>
</f:for>
<f:if condition="{pagination.hasMorePages}">
<li class="page-item"></li>
</f:if>
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
<f:then>
<li class="page-item next">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.nextPageNumber},addQueryString:1)}" class="page-link" title="{f:translate(key:'pagination.next')}">
{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}
</a>
</li>
<f:comment>
<li class="page-item last">
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.lastPageNumber},addQueryString:1)}" class="page-link" title="{f:translate(key:'pagination.last')}">
last
</a>
</li>
</f:comment>
</f:then>
<f:else>
<f:comment>
<li class="disabled"><span>{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}</span></li>
<li class="disabled"><span>last page</span></li>
</f:comment>
</f:else>
</f:if>
</ul>
</f:if>

View File

@@ -0,0 +1,55 @@
<html xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/Category/List.html
-->
<f:section name="content">
<f:if condition="{categories}">
<f:then>
<f:render section="categoryTree" arguments="{categories:categories,overwriteDemand:overwriteDemand}" />
</f:then>
<f:else>
<f:translate key="list_nocategoriesfound" />
</f:else>
</f:if>
</f:section>
<f:section name="categoryTree">
<f:for each="{categories}" as="category">
<n:multiCategoryLink.isCategoryActive list="{overwriteDemand.categories}" item="{category.item.uid}">
<f:then>
<div class="btn-group me-2" role="group">
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">
<button type="button" class="btn btn-primary"><i class="fas fa-folder-open me-1"></i> {category.item.title}</button>
</f:link.page>
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{n:multiCategoryLink.arguments(mode:'remove',item:category.item.uid,list:overwriteDemand.categories)}">
<button type="button" class="btn btn-primary active"><i class="far fa-minus"></i></button>
</f:link.page>
</div>
</f:then>
<f:else>
<div class="btn-group me-2" role="group">
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">
<button type="button" class="btn btn-primary"><i class="fas fa-folder-open me-1"></i> {category.item.title}</button>
</f:link.page>
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{n:multiCategoryLink.arguments(mode:'add',item:category.item.uid,list:overwriteDemand.categories)}">
<button type="button" class="btn btn-primary"><i class="far fa-plus"></i></button>
</f:link.page>
</div>
</f:else>
</n:multiCategoryLink.isCategoryActive>
<f:if condition="{category.children}">
<f:render section="categoryTree" arguments="{categories: category.children,overwriteDemand:overwriteDemand}" />
</f:if>
</f:for>
</f:section>
</html>

View File

@@ -0,0 +1,32 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/DateMenu.html
-->
<f:section name="content">
<ul class="nav nav-sidebar news-menu-view">
<f:for each="{data.single}" key="year" as="months">
<li>
{year}
<ul>
<f:for each="{months}" key="month" as="count">
<f:if condition="{0:year, 1:month} == {0:overwriteDemand.year, 1:overwriteDemand.month}">
<f:then>
<li class="active">
</f:then>
<f:else>
<li>
</f:else>
</f:if>
<f:link.action action="list" pageUid="{listPid}" arguments="{overwriteDemand:{year: year, month: month}}"><f:translate key="month.{month}" /> {year}</f:link.action>
({count} <f:translate key="{f:if(condition: '{count} == 1', then: 'entry', else: 'entries')}" />)
</li>
</f:for>
</ul>
</li>
</f:for>
</ul>
</f:section>
</html>

View File

@@ -0,0 +1,202 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="Detail" />
<!--
=====================
News/Detail.html
-->
<f:section name="content">
<f:if condition="{newsItem}">
<n:format.nothing>
<n:excludeDisplayedNews newsItem="{newsItem}" />
<f:if condition="{settings.detail.showMetaTags}">
<f:render partial="Detail/Opengraph" arguments="{newsItem: newsItem, settings:settings}" />
</f:if>
<f:if condition="{newsItem.alternativeTitle}">
<f:then>
<n:titleTag>
<f:format.htmlentitiesDecode>{newsItem.alternativeTitle}</f:format.htmlentitiesDecode>
</n:titleTag>
</f:then>
<f:else>
<n:titleTag>
<f:format.htmlentitiesDecode>{newsItem.title}</f:format.htmlentitiesDecode>
</n:titleTag>
</f:else>
</f:if>
</n:format.nothing>
<f:if condition="{settings.detail.showPrevNext}">
<n:simplePrevNext pidList="{newsItem.pid}" news="{newsItem}" as="paginated" sortField="datetime">
<f:if condition="{paginated}">
<nav aria-label="Page navigation">
<ul class="pagination mt-3 justify-content-center">
<f:if condition="{paginated.prev}">
<li class="page-item">
<n:link newsItem="{paginated.prev}" class="page-link" settings="{settings}">
<span aria-hidden="true">&laquo;</span> {paginated.prev.title}
</n:link>
</li>
</f:if>
<f:if condition="{paginated.next}">
<li class="page-item">
<n:link newsItem="{paginated.next}" class="page-link" settings="{settings}">
{paginated.next.title} <span aria-hidden="true">&raquo;</span>
</n:link>
</li>
</f:if>
</ul>
</nav>
</f:if>
</n:simplePrevNext>
</f:if>
<f:if condition="{newsItem.mediaNonPreviews}">
<f:then>
<f:render section="headline" arguments="{_all}" />
<div class="row">
<div class="col-md-8">
<f:render section="inner-content" arguments="{_all}" />
</div>
<div class="col-md-4">
<f:for each="{newsItem.mediaNonPreviews}" as="mediaElement">
<div class="thumbnail">
<f:media file="{mediaElement}" class="img-fluid" />
<f:if condition="{mediaElement.description}">
<div class="caption">
{mediaElement.description}
</div>
</f:if>
</div>
</f:for>
</div>
</div>
</f:then>
<f:else>
<f:render section="headline" arguments="{_all}" />
<f:render section="inner-content" arguments="{_all}" />
</f:else>
</f:if>
</f:if>
</f:section>
<f:section name="headline">
<h1 class="pb-3 border-bottom" itemprop="headline">{newsItem.title}</h1>
<f:render partial="General/AdditionalInformation" arguments="{settings:settings,newsItem:newsItem}" />
</f:section>
<f:section name="inner-content">
<n:renderMedia news="{newsItem}" imgClass="img-fluid" videoClass="video-wrapper" audioClass="audio-wrapper">
<f:if condition="{newsItem.teaser}">
<!-- teaser -->
<div class="lead" itemprop="description">
<f:format.html>{newsItem.teaser}</f:format.html>
</div>
</f:if>
<f:if condition="{newsItem.contentElements}">
<!-- content elements -->
<f:cObject typoscriptObjectPath="lib.tx_news.contentElementRendering">{newsItem.contentElementIdList}</f:cObject>
</f:if>
<!-- main text -->
<div class="news-text-wrap" itemprop="articleBody">
<f:format.html>{newsItem.bodytext}</f:format.html>
</div>
</n:renderMedia>
<f:if condition="{settings.backPid}">
<!-- Link Back -->
<f:link.page class="btn btn-primary mb-3" pageUid="{settings.backPid}">
<f:translate key="back-link" />
</f:link.page>
</f:if>
<f:if condition="{settings.detail.showSocialShareButtons}">
<f:comment>
Care about the privacy of your readers?
Checkout https://typo3.org/extensions/repository/view/rx_shariff
and it will be used automatically!
</f:comment>
<n:extensionLoaded extensionKey="rx_shariff">
<f:render partial="Detail/Shariff" />
</n:extensionLoaded>
</f:if>
<f:comment>
Various options exist to fetch different related information:
- {newsItem.allRelatedSorted}: all related news, related und related from, sorted by date
- {newsItem.related}: all related
- {newsItem.relatedSorted}: all related, sorted by date
- {newsItem.relatedFrom}: all related from
- {newsItem.relatedFromSorted}: all related from, sorted by date
</f:comment>
<f:if condition="{newsItem.allRelatedSorted}">
<!-- Related news records -->
<div class="news-related news-related-news mb-3">
<h4>
<f:translate key="related-news" />
</h4>
<ul class="list-group">
<f:for each="{newsItem.allRelatedSorted}" as="related">
<li class="list-group-item">
<span class="news-related-news-date me-2">
<f:format.date format="{f:translate(key:'dateFormat')}">{related.datetime}</f:format.date>
</span>
<n:link newsItem="{related}" settings="{settings}" title="{related.title}">
{related.title}
</n:link>
</li>
</f:for>
</ul>
</div>
</f:if>
<f:if condition="{newsItem.relatedFiles}">
<!-- related files -->
<div class="news-related news-related-files mb-3">
<h4>
<f:translate key="related-files" />
</h4>
<ul class="list-group">
<f:for each="{newsItem.relatedFiles}" as="relatedFile">
<li class="list-group-item">
<span class="news-related-files-link me-2">
<a href="{relatedFile.originalResource.publicUrl -> f:format.htmlspecialchars()}" target="_blank">
<i class="fas fa-file me-1"></i>
{f:if(condition:relatedFile.originalResource.title, then:relatedFile.originalResource.title, else:relatedFile.originalResource.name)}
</a>
</span>
<span class="news-related-files-size"> {relatedFile.originalResource.size -> f:format.bytes()} </span>
</li>
</f:for>
</ul>
</div>
</f:if>
<f:if condition="{newsItem.relatedLinks}">
<!-- Related links -->
<div class="news-related news-related-links mb-3">
<h4>
<f:translate key="related-links" />
</h4>
<ul class="list-group">
<f:for each="{newsItem.relatedLinks}" as="relatedLink">
<li class="list-group-item">
<f:link.typolink parameter="{relatedLink.uri}" class="me-2" title="{relatedLink.title}" target="{n:targetLink(link:relatedLink.uri)}"><i class="fas fa-external-link me-1"> </i>{f:if(condition: relatedLink.title, then: relatedLink.title, else: relatedLink.uri)}</f:link.typolink>
<f:if condition="{relatedLink.description}"><span>{relatedLink.description}</span>
</f:if>
</li>
</f:for>
</ul>
</div>
</f:if>
</f:section>
</html>

View File

@@ -0,0 +1,47 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<!--TYPO3SEARCH_end-->
<f:if condition="{news}">
<f:then>
<div class="news-list-view" id="news-container-{contentObjectData.uid}">
<f:if condition="{settings.hidePagination}">
<f:then>
<ul class="list-group mb-3">
<f:for each="{news}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</ul>
</f:then>
<f:else>
<f:if condition="{settings.list.paginate.insertAbove}">
<f:render partial="List/Pagination" arguments="{pagination: pagination.pagination, paginator: pagination.paginator}" />
</f:if>
<ul class="list-group mb-3">
<f:for each="{pagination.paginator.paginatedItems}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</ul>
<f:if condition="{settings.list.paginate.insertBelow}">
<f:render partial="List/Pagination" arguments="{pagination: pagination.pagination, paginator: pagination.paginator}" />
</f:if>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<div class="alert ">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
<!--TYPO3SEARCH_begin-->
</f:section>
</html>

View File

@@ -0,0 +1,36 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/SearchForm.html
-->
<f:section name="content">
<f:form class="news-search-form" object="{search}" name="search" pageUid="{settings.listPid}">
<div class="mb-3">
<label class="form-label" for="news-subject">
<f:translate key="search-subject" />
</label>
<f:form.textfield id="news-subject" property="subject" class="form-control" />
</div>
<div class="mb-3">
<label class="form-label" for="news-minimumDate">
<f:translate key="search-minimumDate" />
</label>
<f:form.textfield id="news-minimumDate" property="minimumDate" type="date" class="form-control" />
</div>
<div class="mb-3">
<label class="form-label" for="news-maximumDate">
<f:translate key="search-maximumDate" />
</label>
<f:form.textfield id="news-maximumDate" property="maximumDate" type="date" class="form-control" />
</div>
<f:form.submit value="{f:translate(key:'search-start')}" class="btn btn-primary" />
</f:form>
</f:section>
</html>

View File

@@ -0,0 +1,29 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/SearchResult.html
-->
<f:section name="content">
<div class="news-search-result">
<f:if condition="{search}">
<f:if condition="{news}">
<f:then>
<div class="alert alert-success">
<f:translate key="search-text" arguments="{0:'{f:count(subject:news)}',1:search.subject}" />
</div>
<f:for each="{news}" as="newsItem">
<f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}" />
</f:for>
</f:then>
<f:else>
<div class="alert alert-info">
<f:translate key="search-noresult" />
</div>
</f:else>
</f:if>
</f:if>
</div>
</f:section>
</html>

View File

@@ -0,0 +1,28 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<!--TYPO3SEARCH_end-->
<f:if condition="{news}">
<f:then>
<div class="news-list-view" id="news-container-{contentObjectData.uid}">
<f:for each="{news}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</div>
</f:then>
<f:else>
<div class="alert ">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
<!--TYPO3SEARCH_begin-->
</f:section>
</html>

View File

@@ -0,0 +1,35 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/Tag/List.html
-->
<f:section name="content">
<f:if condition="{tags}">
<div class="news-tags">
<f:for each="{tags}" as="tag">
<span class="news-tags-item">
{n:tag.count(tagUid:tag.uid) -> f:variable(name: 'tagUsageCount')}
<f:if condition="{tag.uid} == {overwriteDemand.tags}">
<f:then>
<f:link.page title="{tag.title}" class="active btn btn-primary mb-1 me-1 " addQueryStringMethod="GET" addQueryString="1" pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}">
<i class="fas fa-tags me-1"></i> {tag.title} <span class="badge badge-light"><f:if condition="{tagUsageCount}">({tagUsageCount})</f:if></span>
</f:link.page>
</f:then>
<f:else>
<f:link.page title="{tag.title}" class=" btn btn-primary mb-1 me-1 " addQueryStringMethod="GET" addQueryString="1" pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}">
<i class="fas fa-tags me-1"></i> {tag.title} <span class="badge badge-light"><f:if condition="{tagUsageCount}">({tagUsageCount})</f:if></span>
</f:link.page>
</f:else>
</f:if>
</span>
</f:for>
</div>
</f:if>
</f:section>
</html>