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,2 @@
<f:render section="main" />

View File

@@ -0,0 +1,116 @@
{namespace gomapsext=Clickstorm\GoMapsExt\ViewHelpers}
<gomapsext:script>
(function ($, window, document, undefined) {
$(function () {
var gme = new Object();
gme.zoomTypes = new Array(google.maps.ZoomControlStyle.DEFAULT,
google.maps.ZoomControlStyle.SMALL,
google.maps.ZoomControlStyle.LARGE);
gme.defaultMapTypes = new Array(google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.SATELLITE,
google.maps.MapTypeId.HYBRID,
google.maps.MapTypeId.TERRAIN,
"{map.styledMapName}");
gme.mapSettings = <![CDATA[{]]>
title: '<gomapsext:escape>{map.title}</gomapsext:escape>',
tooltipTitle: '<gomapsext:escape>{map.tooltipTitle}</gomapsext:escape>',
CSSClass: '{map.class}',
width: '{map.width}',
height: '{map.height}',
zoom: {f:if(condition:"{map.zoom}", then:"{map.zoom}", else:"0")},
kmlUrl: '{map.kmlUrl}',
kmlPreserveViewport: {f:if(condition:"{map.kmlPreserveViewport}", then:"true", else:"false")},
kmlLocal: {f:if(condition:"{map.kmlLocal}", then:"1", else:"0")},
scrollZoom: {f:if(condition:"{map.scrollZoom}", then:"1", else:"0")},
draggable: {f:if(condition:"{map.draggable}", then:"1", else:"0")},
doubleClickZoom: {f:if(condition:"{map.doubleClickZoom}", then:"0", else:"1")},
markerCluster: {f:if(condition:"{map.markerCluster}", then:"1", else:"0")},
markerClusterZoom: {f:if(condition:"{map.markerClusterZoom} > 0", then:"{map.markerClusterZoom}", else:"null")},
markerClusterSize: {f:if(condition:"{map.markerClusterSize} > 0", then:"{map.markerClusterSize}", else:"null")},
markerSearch: {f:if(condition:"{map.markerSearch}", then:"1", else:"0")},
defaultType: {map.defaultType},
panControl: {f:if(condition:"{map.panControl}", then:"1", else:"0")},
scaleControl: {f:if(condition:"{map.scaleControl}", then:"1", else:"0")},
streetviewControl: {f:if(condition:"{map.streetviewControl}", then:"1", else:"0")},
zoomControl: {f:if(condition:"{map.zoomControl}", then:"1", else:"0")},
zoomControlType: {map.zoomControlType},
mapTypeControl: {f:if(condition:"{map.mapTypeControl}", then:"1", else:"0")},
showRoute: {f:if(condition:"{map.showRoute}", then:"1", else:"0")},
calcRoute: {f:if(condition:"{map.calcRoute}", then:"1", else:"0")},
travelMode: {map.travelMode},
unitSystem: {map.unitSystem},
showForm: {f:if(condition:"{map.showForm}", then:"1", else:"0")},
showCategories: {f:if(condition:"{map.showCategories}", then:"1", else:"0")},
styledMapName: '{map.styledMapName}',
<f:if condition="{map.styledMapCode}">
<f:then>
styledMapCode: <f:format.html parseFuncTSPath="">{map.styledMapCode}</f:format.html>,
</f:then>
<f:else>
styledMapCode: '',
</f:else>
</f:if>
defaultZoom: 11
<![CDATA[}]]>
gme.mapSettings.mapTypes = new Array();
<f:for each="{map.mapTypes}" as="type" iteration="i">
gme.mapSettings.mapTypes[{i.index}] = gme.defaultMapTypes[{type}];
</f:for>
gme.request = new Array();
<f:for each="{request}" as="item" iteration="i" key="k">
gme.request['{k}'] = '{item}';
</f:for>
gme.addresses = new Array();
<f:for each="{addresses}" as="address" iteration="i">
gme.addresses[{i.index}] = <![CDATA[{]]>
title: '<gomapsext:escape>{address.title}</gomapsext:escape>',
latitude: {address.latitude},
longitude: {address.longitude},
address: '{address.address}',
marker: '{f:if(condition:"{address.marker}" then:"uploads/tx_gomapsext/{address.marker}")}',
imageSize: {f:if(condition:"{address.imageSize}", then:"1", else:"0")},
imageWidth: {address.imageWidth},
imageHeight: {address.imageHeight},
shadow: '{f:if(condition:"{address.shadow}" then:"uploads/tx_gomapsext/{address.shadow}")}',
shadowSize: {f:if(condition:"{address.shadowSize}", then:"1", else:"0")},
shadowWidth: {address.shadowWidth},
shadowHeight: {address.shadowHeight},
infoWindowContent: '<gomapsext:escape><f:format.html>{address.infoWindowContent}</f:format.html></gomapsext:escape>',
infoWindowLink: {address.infoWindowLink},
<f:if condition="{settings.openByClick}">
<f:then>
openByClick: 1,
</f:then>
<f:else>
openByClick: {f:if(condition:"{address.openByClick}", then:"1", else:"0")},
</f:else>
</f:if>
<f:if condition="{settings.closeByClick}">
<f:then>
closeByClick: 1,
</f:then>
<f:else>
closeByClick: {f:if(condition:"{address.closeByClick}", then:"1", else:"0")},
</f:else>
</f:if>
opened: {f:if(condition:"{address.opened}", then:"1", else:"0")},
categories: '<f:for each="{address.categories}" as="category" iteration="icat">{category.uid}{f:if(condition:icat.isLast,then:'',else:',')}</f:for>'
<![CDATA[}]]>
</f:for>
gme.ll = {};
gme.ll.alert = "<f:translate key="LLL:EXT:go_maps_ext/Resources/Private/Language/locallang.xlf:tx_gomapsext_partials_map_assign.alert" />";
gme.ll.submit = "<f:translate key="LLL:EXT:go_maps_ext/Resources/Private/Language/locallang.xlf:tx_gomapsext_partials_map_assign.submit" />";
gme.ll.noSearchResults = "<f:translate key="LLL:EXT:go_maps_ext/Resources/Private/Language/locallang.xlf:tx_gomapsext_partials_map_assign.noSearchResults" />";
gme.ll.infoWindowLinkText = "<f:translate key="LLL:EXT:go_maps_ext/Resources/Private/Language/locallang.xlf:tx_gomapsext_partials_map_assign.infoWindowLinkText" />";
jQuery("#{map.title}").gomapsext(gme);
}); // end of closure
})(jQuery, window, document);
</gomapsext:script>

View File

@@ -0,0 +1,8 @@
<ul class="gomapsext-cats">
<f:for each="{categories}" as="name" key="uid">
<li>
<f:form.checkbox id="gomapsext-cat-{uid}" name="tx_csgomapsext_show[cat]" value="{uid}" title="{name}" />
<label for="gomapsext-cat-{uid}">{name}</label>
</li>
</f:for>
</ul>

View File

@@ -0,0 +1,42 @@
{namespace gomapsext=Clickstorm\GoMapsExt\ViewHelpers}
<f:if condition="{map.markerSearch}">
<form id="{map.title}-search" method="post">
<input type="text" name="sword" class="gme-sword" value="{request.sword}" />
<input type="submit" class="gme-submit" name="submitSearch" value="{f:translate(key:'tx_gomapsext_partials_map_assign.submitSearch')}" />
</form>
</f:if>
<f:form id="{map.title}-form" method="post">
<f:if condition="{map.calcRoute}">
<f:form.textfield name="saddress" class="gme-saddress" value="{request.saddress}" />
<f:if condition="{f:count(subject:addresses)} > 1">
<select name="eaddress" class="gme-eaddress" value="{request.eaddress}">
<f:for each="{addresses}" as="address" iteration="i">
<option value="{i.index}">{address.title}</option>
</f:for>
</select>
</f:if>
</f:if>
<f:if condition="{map.travelMode} == 1">
<gomapsext:hideInFrontend>
<!--
Possible options for the Travel Mode are
0:map.travelModes.0 == Driving
2:map.travelModes.2 == Bicycling
3:map.travelModes.3 == Transit
4:map.travelModes.4 == Walking
-->
</gomapsext:hideInFrontend>
<f:form.select name="travelmode" value="{f:if(condition:request.travelmode,then:request.travelmode,else:2)}" class="gme-travelmode" options="{0:map.travelModes.0, 3:map.travelModes.3, 4:map.travelModes.4}" size="1" />
</f:if>
<f:if condition="{map.unitSystem} == 1">
<gomapsext:hideInFrontend>
<!--
Possible options for the Unit System are
1:map.unitSystems.2 == Metric (km)
2:map.unitSystems.3 == Imperial (mil)
-->
</gomapsext:hideInFrontend>
<f:form.select name="unitsystem" value="{f:if(condition:request.unitsystem,then:request.unitsystem,else:2)}" class="gme-unitsystem" options="{map.unitSystems}" size="1" />
</f:if>
<f:form.submit class="gme-submit" name="submit" value="{f:translate(key:'tx_gomapsext_partials_map_assign.submit')}" />
</f:form>

View File

@@ -0,0 +1,12 @@
<f:layout name="Default" />
<f:section name="main">
<f:if condition="{map.showForm}">
<f:render partial="Map/Form" arguments="{map:map, request:request, addresses: addresses}"/>
</f:if>
<div id="{map.title}" class="map-wrapper"> </div>
<f:render partial="Map/Assign" arguments="{request:request, map:map, settings:settings, addresses:addresses}" />
<f:if condition="{map.showCategories}">
<f:render partial="Map/Categories" arguments="{map:map, addresses:addresses, request:request, categories: categories}" />
</f:if>
</f:section>

View File

@@ -0,0 +1,2 @@
<f:render section="main" />

View File

@@ -0,0 +1,27 @@
<f:layout name="Default" />
This Template is responsible for creating a table of domain objects.
If you modify this template, do not forget to change the overwrite settings
in /Configuration/ExtensionBuilder/settings.yaml:
Resources:
Private:
Templates:
List.html: keep
Otherwise your changes will be overwritten the next time you save the extension in the extension builder
<f:section name="main">
<f:flashMessages />
<div class="box_video" style="width: {width}px;">
<div class="box_video_container">
<iframe width="{width}" height="{height}" src="http://www.youtube.com/embed/{id}{playerParameters}" {allowfullscreen}></iframe>
</div>
</div>
</f:section>

View File

@@ -0,0 +1,49 @@
{namespace n=Tx_News_ViewHelpers}
<f:be.container>
<n:includeFile path="../typo3conf/ext/news/Resources/Public/Css/administration.css" />
<div class="typo3-fullDoc">
<div id="typo3-docheader">
<div class="typo3-docheader-functions">
<div class="left">
<f:be.buttons.csh />
<f:be.menus.actionMenu>
<f:be.menus.actionMenuItem label="{f:translate(key: 'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.newsListing')}" controller="Administration" action="index" />
<f:be.menus.actionMenuItem label="{f:translate(key: 'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.newsPidListing')}" controller="Administration" action="newsPidListing" />
</f:be.menus.actionMenu>
</div>
<div class="right">
<f:be.pagePath />
<f:be.pageInfo />
</div>
</div>
<div class="typo3-docheader-buttons">
<div class="left">
<f:link.action action="newNews" title="{f:translate(key:'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.createNewNewsRecord')}">
<f:image src="{f:uri.resource(path:'Icons/news_domain_model_news_add.png')}" />
</f:link.action>
<n:be.security.ifAccessToTableIsAllowed table="sys_category">
<f:link.action action="newCategory" title="{f:translate(key:'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.createNewCategory')}">
<f:image src="{f:uri.resource(path:'Icons/news_domain_model_category_add.png')}" />
</f:link.action>
</n:be.security.ifAccessToTableIsAllowed>
<n:be.security.ifAccessToTableIsAllowed table="tx_news_domain_model_tag">
<f:link.action action="newTag" title="{f:translate(key:'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.createNewTag')}">
<f:image src="{f:uri.resource(path:'Icons/news_domain_model_tag_add.png')}" />
</f:link.action>
</n:be.security.ifAccessToTableIsAllowed>
</div>
<div class="right">
<f:be.buttons.shortcut />
</div>
</div>
</div>
<div id="typo3-docbody">
<div id="typo3-inner-docbody" class="news-administration">
<f:render section="content" />
</div>
</div>
</div>
</f:be.container>

View File

@@ -0,0 +1,29 @@
{namespace n=Tx_News_ViewHelpers}
<f:be.container>
<n:includeFile path="../typo3conf/ext/news/Resources/Public/Css/administration.css" />
<div class="typo3-fullDoc">
<div id="typo3-docheader">
<div class="typo3-docheader-functions">
<div class="left"></div>
<div class="right">
<f:be.pagePath />
<f:be.pageInfo />
</div>
</div>
<div class="typo3-docheader-buttons">
<div class="left"></div>
<div class="right">
<f:be.buttons.shortcut />
</div>
</div>
</div>
<div id="typo3-docbody">
<div id="typo3-inner-docbody" class="news-administration">
<f:render section="content" />
</div>
</div>
</div>
</f:be.container>

View File

@@ -0,0 +1,7 @@
{namespace n=Tx_News_ViewHelpers}
<f:if condition="{settings.cssFile}">
<n:includeFile path="{settings.cssFile}" />
</f:if>
<f:render section="content" />

View File

@@ -0,0 +1,8 @@
{namespace n=Tx_News_ViewHelpers}
<f:if condition="{settings.cssFile}">
<n:includeFile path="{settings.cssFile}" />
</f:if>
<f:flashMessages class="tx-news-flash-message" />
<f:render section="content" />

View File

@@ -0,0 +1,50 @@
{namespace n=Tx_News_ViewHelpers}
<tr class="db_list_normal">
<td class="col-title">
<n:be.clickmenu table="tx_news_domain_model_news" uid="{newsItem.uid}">
<n:be.buttons.iconForRecord table="tx_news_domain_model_news" uid="{newsItem.uid}" title="{newsItem.title}" />
</n:be.clickmenu>
<a href="" title="UID: {newsItem.uid}" onclick="window.location.href='alt_doc.php?returnUrl='+T3_THIS_LOCATION+'&edit[tx_news_domain_model_news][{newsItem.uid}]=edit'; return false;">
{newsItem.title}
</a>
</td>
<td>
<f:if condition="{newsItem.isTopNews}">
<f:then>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.topNewsYes" />
</f:then>
<f:else>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.topNewsNo" />
</f:else>
</f:if>
</td>
<td>
<f:format.date format="{dateformat}">{newsItem.dateTime}</f:format.date>
</td>
<td>
<f:format.date format="{dateformat}">{newsItem.archive}</f:format.date>
</td>
<td>
<f:format.date format="{dateformat}">{newsItem.tstamp}</f:format.date>
</td>
<td>
<f:if condition="{newsItem.author}">
<strong>
<f:translate key="LLL:EXT:cms/locallang_tca.xlf:pages.author_formlabel" />
:</strong> {newsItem.author}<br />
</f:if>
<f:if condition="{newsItem.categories}">
<strong>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.categories" />
:</strong>
<f:for each="{newsItem.categories}" as="category" iteration="iterator">
<span title="UID: {category.uid}">{category.title}</span>
<f:if condition="{iterator.isLast}">
<f:then></f:then>
<f:else>,</f:else>
</f:if>
</f:for>
</f:if>
</td>
</tr>

View File

@@ -0,0 +1,15 @@
<!-- categories -->
<span class="news-list-category">
<f:for each="{categories}" as="category">
<f:if condition="{category.shortcut}">
<f:then>
<f:link.page pageUid="{category.shortcut}">
{category.title}
</f:link.page>
</f:then>
<f:else>
{category.title}
</f:else>
</f:if>
</f:for>
</span>

View File

@@ -0,0 +1,17 @@
<f:if condition="{media}">
<!-- fal media files -->
<div class="news-img-wrap">
<f:for each="{media}" as="mediaElement">
<div class="outer">
<f:if condition="{mediaElement.originalResource.type} == 2">
<f:render partial="Detail/FalMediaImage" arguments="{mediaElement: mediaElement, settings:settings}"/>
</f:if>
<f:if condition="{mediaElement.originalResource.type} == 4">
<f:render partial="Detail/FalMediaVideo" arguments="{mediaElement: mediaElement, settings:settings}"/>
</f:if>
</div>
</f:for>
</div>
</f:if>

View File

@@ -0,0 +1,17 @@
<div class="mediaelement mediaelement-image">
<f:if condition="{settings.detail.media.image.lightbox}">
<f:then>
<a rel="{settings.detail.media.image.lightbox}" title="{mediaElement.title}" href="{f:uri.image(src:'{mediaElement.uid}' treatIdAsReference:1 maxWidth:'800')}">
<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.title}" alt="{mediaElement.alternative}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" />
</a>
</f:then>
<f:else>
<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.title}" alt="{mediaElement.alternative}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" />
</f:else>
</f:if>
</div>
<f:if condition="{mediaElement.description}">
<p class="news-img-caption">
{mediaElement.description}
</p>
</f:if>

View File

@@ -0,0 +1,17 @@
{namespace n=Tx_News_ViewHelpers}
<div class="mediaelement">
<div class="mediaelement-video">
<n:falMediaFactory classes="{settings.interfaces.falMedia.video}" element="{mediaElement}" width="{settings.detail.media.video.width}"
height="{settings.detail.media.video.height}" />
</div>
<f:if condition="{mediaElement.description}">
<div class="medialement-alternative-content">
<p class="news-img-caption">
{mediaElement.description}
</p>
</div>
</f:if>
</div>

View File

@@ -0,0 +1,17 @@
<f:if condition="{media}">
<!-- media files -->
<div class="news-img-wrap">
<f:for each="{media}" as="mediaElement">
<div class="outer">
<f:if condition="{mediaElement.type} == 0">
<f:render partial="Detail/MediaImage" arguments="{mediaElement: mediaElement, settings:settings}" />
</f:if>
<f:if condition="{mediaElement.type} == 1">
<f:render partial="Detail/MediaVideo" arguments="{mediaElement: mediaElement, settings:settings}" />
</f:if>
</div>
</f:for>
</div>
</f:if>

View File

@@ -0,0 +1,17 @@
<div class="mediaelement mediaelement-image">
<f:if condition="{settings.detail.media.image.lightbox}">
<f:then>
<a rel="{settings.detail.media.image.lightbox}" title="{mediaElement.caption}" href="{f:uri.image(src:'uploads/tx_news/{mediaElement.content}' maxWidth:'800')}">
<f:image src="uploads/tx_news/{mediaElement.content}" title="{mediaElement.title}" alt="{mediaElement.alt}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" />
</a>
</f:then>
<f:else>
<f:image src="uploads/tx_news/{mediaElement.content}" title="{mediaElement.title}" alt="{mediaElement.alt}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" />
</f:else>
</f:if>
</div>
<f:if condition="{mediaElement.caption}">
<p class="news-img-caption">
{mediaElement.caption}
</p>
</f:if>

View File

@@ -0,0 +1,17 @@
{namespace n=Tx_News_ViewHelpers}
<div class="mediaelement">
<div class="mediaelement-video">
<n:mediaFactory classes="{settings.interfaces.media.video}" element="{mediaElement}" width="{settings.detail.media.video.width}"
height="{settings.detail.media.video.height}" />
</div>
<f:if condition="{mediaElement.caption}">
<div class="medialement-alternative-content">
<p class="news-img-caption">
{mediaElement.caption}
</p>
</div>
</f:if>
</div>

View File

@@ -0,0 +1,49 @@
{namespace n=Tx_News_ViewHelpers}
<f:if condition="{newsItem.alternativeTitle}">
<f:then><n:metaTag property="og:title" content="{newsItem.alternativeTitle}" /></f:then>
<f:else><n:metaTag property="og:title" content="{newsItem.title}" /></f:else>
</f:if>
<n:metaTag property="og:type" content="{settings.opengraph.type}" />
<n:metaTag property="og:url" content="" useCurrentDomain="1" />
<n:metaTag property="og:site_name" content="{settings.opengraph.site_name}" />
<f:if condition="{newsItem.firstFalImagePreview}">
<f:then>
<n:metaTag
property="og:image"
content="{f:uri.image(src:'{newsItem.firstFalImagePreview.uid}' treatIdAsReference:1 maxWidth:'500')}"
forceAbsoluteUrl="1" />
</f:then>
<f:else>
<f:if condition="{newsItem.firstImagePreview.image}">
<n:metaTag
property="og:image"
content="{f:uri.image(src:'uploads/tx_news/{newsItem.firstImagePreview.image}' maxWidth:'500')}"
forceAbsoluteUrl="1" />
</f:if>
</f:else>
</f:if>
<f:if condition="{newsItem.description}">
<f:then>
<n:metaTag name="description" content="{newsItem.description}" />
<n:metaTag property="og:description" content="{newsItem.description}" />
</f:then>
<f:else>
<n:metaTag name="description" content="{newsItem.teaser}" />
<n:metaTag property="og:description" content="{newsItem.teaser}" />
</f:else>
</f:if>
<n:metaTag name="keywords" content="{newsItem.keywords}" />
<n:metaTag property="fb:admins" content="{settings.opengraph.admins}" />
<n:metaTag property="fb:admins" content="{settings.opengraph.admins}" />
<n:metaTag property="og:email" content="{settings.opengraph.email}" />
<n:metaTag property="og:phone_number" content="{settings.opengraph.phone_number}" />
<n:metaTag property="og:fax_number" content="{settings.opengraph.fax_number}" />
<n:metaTag property="og:latitude" content="{settings.opengraph.latitude}" />
<n:metaTag property="og:longitude" content="{settings.opengraph.longitude}" />
<n:metaTag property="og:street-address" content="{settings.opengraph.street-address}" />
<n:metaTag property="og:locality" content="{settings.opengraph.locality}" />
<n:metaTag property="og:region" content="{settings.opengraph.region}" />
<n:metaTag property="og:postal-code" content="{settings.opengraph.postal-code}" />
<n:metaTag property="og:country-name" content="{settings.opengraph.country-name}" />

View File

@@ -0,0 +1,142 @@
{namespace n=Tx_News_ViewHelpers}<!--
=====================
Partials/List/Item.html
-->
<li class="article articletype-{newsItem.type}{f:if(condition: newsItem.istopnews, then: ' topnews')}">
<n:excludeDisplayedNews newsItem="{newsItem}"/>
<!-- date -->
<span class="date">
<n:format.date format="%d %B %Y">{newsItem.datetime}</n:format.date>
</span>
<!-- header -->
<n:link newsItem="{newsItem}" settings="{settings}">
<h6>
{newsItem.title}
</h6>
</n:link>
<f:if condition="{newsItem.falMedia}">
<!-- fal media preview element -->
<f:then>
<div class="news-img-wrap">
<f:if condition="{newsItem.falMediaPreviews}">
<f:then>
<n:link newsItem="{newsItem}" settings="{settings}">
<f:alias map="{mediaElement: newsItem.falMediaPreviews.0}">
<f:if condition="{mediaElement.originalResource.type} == 2">
<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.originalResource.title}" alt="{mediaElement.originalResource.alternative}" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}"/>
</f:if>
<f:if condition="{mediaElement.originalResource.type} == 4">
<f:render partial="Detail/FalMediaVideo" arguments="{mediaElement: mediaElement}"/>
</f:if>
</f:alias>
</n:link>
</f:then>
<f:else>
<f:if condition="{settings.displayDummyIfNoMedia}">
<span class="no-media-element">
<n:link newsItem="{newsItem}" settings="{settings}">
<f:image src="{settings.list.media.dummyImage}" title="" alt="" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}"/>
</n:link>
</span>
</f:if>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<f:if condition="{newsItem.media}">
<!-- media preview element -->
<f:then>
<div class="news-img-wrap">
<f:if condition="{newsItem.mediaPreviews}">
<f:then>
<n:link newsItem="{newsItem}" settings="{settings}">
<f:alias map="{mediaElement: newsItem.mediaPreviews.0}">
<f:if condition="{mediaElement.type} == 0">
<f:image src="uploads/tx_news/{mediaElement.image}" title="{mediaElement.title}" alt="{mediaElement.alt}" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}"/>
</f:if>
<f:if condition="{mediaElement.type} == 1">
<f:render partial="Detail/MediaVideo" arguments="{mediaElement: mediaElement}"/>
</f:if>
<f:if condition="{mediaElement.type} == 2">
<f:render partial="Detail/MediaHtml" arguments="{mediaElement: mediaElement}"/>
</f:if>
</f:alias>
</n:link>
</f:then>
<f:else>
<f:if condition="{settings.displayDummyIfNoMedia}">
<span class="no-media-element">
<n:link newsItem="{newsItem}" settings="{settings}">
<f:image src="{settings.list.media.dummyImage}" title="" alt="" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}"/>
</n:link>
</span>
</f:if>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<f:if condition="{settings.displayDummyIfNoMedia}">
<f:then>
<div class="news-img-wrap">
<n:link newsItem="{newsItem}" settings="{settings}">
<span class="no-media-element">
<f:image src="{settings.list.media.dummyImage}" title="" alt="" maxWidth="{settings.list.media.image.maxWidth}" maxHeight="{settings.list.media.image.maxHeight}"/>
</span>
</n:link>
</div>
</f:then>
</f:if>
</f:else>
</f:if>
</f:else>
</f:if>
<!-- teas=ser text -->
<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:link newsItem="{newsItem}" settings="{settings}" class="more">
<f:translate key="more-link"/>
</n:link>
-->
<!-- footer information -->
<f:if condition="{newsItem.firstCategory}">
<!-- first category -->
<span class="news-list-category">{newsItem.firstCategory.title}</span>
</f:if>
<f:if condition="{newsItem.tags}">
<!-- Tags -->
<span class="news-list-tags">
<f:for each="{newsItem.tags}" as="tag">
{tag.title}
</f:for>
</span>
</f:if>
<!-- author -->
<f:if condition="{newsItem.author}">
<span class="news-list-author">
<f:translate key="author" arguments="{0:newsItem.author}"/>
</span>
</f:if>
</li>

View File

@@ -0,0 +1,201 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="Backend/Default" />
<f:section name="categoryTree">
<ul class="list-unstyled">
<f:for each="{categories}" as="category">
<li>
<f:form.checkbox id="category-{category.item.uid}" property="selectedCategories" value="{category.item.uid}" />
<label for="category-{category.item.uid}" title="{category.item.uid}">{category.item.title}</label>
<f:if condition="{category.children}">
<f:render section="categoryTree" arguments="{categories: category.children}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>
<f:section name="content">
<h1>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.title" />
</h1>
<f:if condition="{page} == 0">
<div class="alert alert-info">
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.nopageselected" />
</div>
</div>
</f:if>
<f:flashMessages class="tx-extbase-flash-message" />
<f:form name="demand" object="{demand}" method="get" >
<input type="hidden" name="M" value="web_NewsTxNewsM2">
<input type="hidden" name="moduleToken" value="{moduleToken}">
<input type="hidden" name="id" value="{page}">
<h2>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.headline" />
</h2>
<div class="settings">
<div class="row">
<div class="col-sm-4 form-horizontal">
<div class="form-group">
<label for="recursive" class="col-sm-4 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.recursive" />
</label>
<div class="col-sm-8">
<f:form.select property="recursive" options="{0:0,1:1,2:2,3:3,4:4,5:5}" id="recursive" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="timeRestriction" class="col-sm-4 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.timeRestriction" />
</label>
<div class="col-sm-8">
<f:form.textfield property="timeRestriction" id="timeRestriction" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="timeRestrictionHigh" class="col-sm-4 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.timeRestrictionHigh" />
</label>
<div class="col-sm-8">
<f:form.textfield property="timeRestrictionHigh" id="timeRestrictionHigh" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="topNewsRestriction" class="col-sm-4 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction" />
</label>
<div class="col-sm-8">
<f:form.select property="topNewsRestriction" class="form-control" options="{
0:'',
1:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.1\')}',
2:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.2\')}'
}" id="topNewsRestriction" />
</div>
</div>
<div class="form-group">
<label for="sortingField" class="col-sm-4 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy" />
</label>
<div class="col-sm-4">
<f:form.select class="form-control" property="sortingField" options="{
title:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.title\')}',
datetime:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.datetime\')}',
tstamp:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.tstamp\')}',
archive:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.archive\')}',
author:'{f:translate(key: \'LLL:EXT:cms/locallang_tca.xlf:pages.author_formlabel\')}'
}" id="sortingField" />
</div>
<div class="col-sm-4">
<f:form.select class="form-control" property="sortingDirection" options="{
asc:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.asc\')}',
desc:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.desc\')}'
}" id="sortingDirection" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-8">
<f:form.submit value="{f:translate(key:'LLL:EXT:lang/locallang_common.xlf:search')}" class="btn btn-default" />
</div>
</div>
</div>
<div class="col-sm-8">
<div class="category-tree">
<div class="tree-wrapper">
<f:render section="categoryTree" arguments="{categories: categories}" />
</div>
<f:if condition="{categories}">
<div class="form-group">
<label for="categoryConjunction" class="col-sm-6 control-label">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction" />
</label>
<div class="col-sm-6">
<f:form.select class="form-control" property="categoryConjunction" options="{AND:'AND', OR:'OR', notor:'notor', notand:'notand'}" id="categoryConjunction" />
</div>
</div>
</f:if>
</div>
</div>
</div>
</div>
</f:form>
<f:if condition="{news}">
<f:then>
<div class="result">
<f:if condition="{settings.list.paginate.itemsPerPage} == 0">
<div class="alert alert-warning">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.nolimit" arguments="{0:'settings.list.paginate.itemsPerPage'}" />
</div>
</f:if>
<f:be.widget.paginate objects="{news}" as="paginatedNews" configuration="{itemsPerPage: settings.list.paginate.itemsPerPage}">
<table class="table table-hover">
<thead>
<tr class="t3-row-header">
<th>
<f:translate key="LLL:EXT:cms/locallang_ttc.xlf:header_formlabel" />
<div class="btn-group">
<n:be.buttons.icon class="btn" uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'title')}" icon="actions-document-open" />
</div>
</th>
<th class="nowrap">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.istopnews" />
<div class="btn-group">
<n:be.buttons.icon class="btn" uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'istopnews')}" icon="actions-document-open" />
</div>
</th>
<th class="nowrap date">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.datetime" />
<div class="btn-group">
<n:be.buttons.icon class="btn" uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'datetime')}" icon="actions-document-open" />
</div>
</th>
<th class="nowrap date">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.archive" />
<div class="btn-group">
<n:be.buttons.icon class="btn" uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'archive')}" icon="actions-document-open" />
</div>
</th>
<th class="nowrap">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.tstamp" />
</th>
<th class="nowrap nosort"></th>
</tr>
</thead>
<tbody>
<f:for each="{paginatedNews}" as="newsItem">
<f:render partial="Administration/ListItem" arguments="{newsItem: newsItem, dateformat:dateformat}" />
</f:for>
</tbody>
<tfoot>
<tr>
<td colspan="6">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.newsCount" arguments="{0:'{f:count(subject:news)}'}" />
</td>
</tr>
</tfoot>
</table>
</f:be.widget.paginate>
</div>
</f:then>
<f:else>
<div class="alert alert-notice">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
</f:section>

View File

@@ -0,0 +1,48 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="Backend/Default" />
<f:section name="content">
<h1>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.newsPidListing.header" />
</h1>
<f:flashMessages class="tx-extbase-flash-message" />
<p class="lead">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.newsPidListing.description" />
</p>
<f:form action="newsPidListing" class="form-horizontal">
<div class="form-group">
<label for="treeLevel" class="col-sm-3 control-label">
<f:translate key="LLL:EXT:lang/locallang_general.xlf:LGL.recursive" />
</label>
<div class="col-sm-4">
<f:form.select class="form-control" name="treeLevel" id="treeLevel" options="{1:1,2:2,3:3,4:4,5:5,6:6,7:7}" value="{treeLevel}" additionalAttributes="{onchange:'this.form.submit()'}" />
</div>
</div>
</f:form>
<table class="t3-table">
<thead>
<tr class="t3-row-header">
<th>
<f:translate key="LLL:EXT:lang/locallang_tca.xlf:pages" />
</th>
<th>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news" />
</th>
<th>
<f:translate key="LLL:EXT:lang/locallang_tca.xlf:sys_category" />
</th>
</tr>
</thead>
<f:for each="{tree}" as="item">
<tr class="{f:if(condition: item.countNewsAndCategories, then: '', else: 'hide_line')}">
<td class="icon" nowrap="nowrap">
<f:format.html parseFuncTSPath="">{item.HTML}</f:format.html>
<f:link.action action="index" additionalParams="{id:item.row.uid}" title="UID: {item.row.uid}">{item.row.title}</f:link.action>
</td>
<td>{item.countNews}</td>
<td>{item.countCategories}</td>
</tr>
</f:for>
</table>
</f:section>

View File

@@ -0,0 +1,176 @@
<f:layout name="Backend/Simple" />
<f:section name="iconButtons">
</f:section>
<f:section name="content">
<h3 class="uppercase">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.header" />
</h3>
<p class="description">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.description" />
</p>
<div class="alert alert-warning">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.backupwarning" />
</div>
<br />
<f:if condition="{error}">
<div class="alert alert-danger">
<div class="message-header">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.error.configuration.title" />
</div>
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:{error}" default="{error}" />
</div>
</div>
</f:if>
<f:if condition="{availableJobs -> f:count()} > 1">
<f:then>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.choose_a_job" />:
<f:form.select id="jobSelector" options="{availableJobs}" />
<br /><br />
</f:then>
<f:else>
<div class="alert alert-info">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.nojobs" />
</div>
</f:else>
</f:if>
<div id="job" style="display:none;">
<div id="progressBar" style="width:300px;"></div>
<button id="startButton">Start</button>
<br />
</div>
<script type="text/javascript">
var moduleUrl = '{f:format.raw(value: moduleUrl)}';
<![CDATA[
Ext.namespace('Tx_News');
Tx_News.Common = function () {
var pub = {};
var extKey = 'news';
var underscoreToUpperCamelCase = function (subject) {
var matches = subject.match(/(_\w)/g);
if (matches) {
matches.each(function (m) {
subject = subject.replace(m, m.charAt(1).toUpperCase());
});
}
return subject.charAt(0).toUpperCase() + subject.substr(1);
};
var getParameterPrefix = function (mainModuleName, subModuleName) {
return 'tx_' + extKey + '_' + mainModuleName + '_' + extKey + subModuleName.replace(/_/g, '');
};
pub.getExtKey = function () {
return extKey;
};
pub.getBackendRequest = function (mainModuleName, subModuleName, controller, action, parameters) {
var parameterPrefix = getParameterPrefix(mainModuleName, subModuleName);
var params = {};
Ext.apply(parameters, {controller: controller, action: action});
Ext.iterate(parameters, function (key, value) {
params[parameterPrefix + '[' + key + ']'] = value;
});
var request = {
'url': moduleUrl,
'params': params
};
return request;
};
return pub;
}();
Tx_News.Importer = function () {
var pub = {};
var jobInfo = {};
var progressBar;
var runCounter = 0;
var run = function () {
var request = Ext.apply(Tx_News.Common.getBackendRequest('web', 'tx_news_m1', 'Import',
'runJob', {jobClassName: jobInfo.jobClassName, offset: runCounter * jobInfo.increaseOffsetPerRunBy}));
Ext.apply(request, {
success: function () {
var progress = runCounter / jobInfo.runsToComplete;
progressBar.updateProgress(progress, Math.round(100 * progress) + '%');
runCounter++;
if (runCounter <= jobInfo.runsToComplete) {
run();
} else {
progressBar.updateText('Done.');
progressBar.reset();
runCounter = 1;
}
},
failure: function () {
alert('error');
}
});
Ext.Ajax.request(request);
};
var initJob = function () {
Ext.get('job').show();
progressBar = new Ext.ProgressBar({
renderTo: 'progressBar'
});
Ext.get('startButton').on('click', function () {
run();
});
};
var loadJobInfo = function (jobClassName) {
var request = Ext.apply(Tx_News.Common.getBackendRequest('web', 'tx_news_m1', 'Import',
'jobInfo', {jobClassName: jobClassName}));
Ext.apply(request, {
success: function (response) {
jobInfo = (Ext.decode(response.responseText));
Ext.apply(jobInfo, {jobClassName: jobClassName});
initJob();
}
});
Ext.Ajax.request(request);
};
pub.init = function () {
Ext.get('jobSelector').on('change', function () {
var jobClassName = this.getValue();
if (jobClassName != '0') {
loadJobInfo(jobClassName);
} else {
Ext.get('job').hide();
}
});
};
return pub;
}();
Ext.onReady(function () {
Tx_News.Importer.init();
});
]]>
</script>
</f:section>

View File

@@ -0,0 +1,179 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="Backend/Default" />
<f:section name="categoryTree">
<ul class="list-unstyled">
<f:for each="{categories}" as="category">
<li>
<f:form.checkbox id="category-{category.item.uid}" property="selectedCategories" value="{category.item.uid}" />
<label for="category-{category.item.uid}" title="{category.item.uid}">{category.item.title}</label>
<f:if condition="{category.children}">
<f:render section="categoryTree" arguments="{categories: category.children}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>
<f:section name="content">
<h1>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.title" />
</h1>
<f:if condition="{page} == 0">
<div class="typo3-message message-information">
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.nopageselected" />
</div>
</div>
</f:if>
<f:flashMessages class="tx-extbase-flash-message" />
<f:form name="demand" object="{demand}" method="get" >
<input type="hidden" name="M" value="web_NewsTxNewsM2">
<input type="hidden" name="moduleToken" value="{moduleToken}">
<input type="hidden" name="id" value="{page}">
<h2>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.headline" />
</h2>
<div class="settings">
<div class="form">
<div class="field">
<label for="recursive">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.recursive" />
</label>
<f:form.select property="recursive" options="{0:0,1:1,2:2,3:3,4:4,5:5}" id="recursive" />
<div class="clear"></div>
</div>
<div class="field">
<label for="timeRestriction">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.timeRestriction" />
</label>
<f:form.textfield property="timeRestriction" id="timeRestriction" />
<div class="clear"></div>
</div>
<div class="field">
<label for="timeRestrictionHigh">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.timeRestrictionHigh" />
</label>
<f:form.textfield property="timeRestrictionHigh" id="timeRestrictionHigh" />
<div class="clear"></div>
</div>
<div class="field">
<label for="topNewsRestriction">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction" />
</label>
<f:form.select property="topNewsRestriction" options="{
0:'',
1:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.1\')}',
2:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.topNewsRestriction.2\')}'
}" id="topNewsRestriction" />
<div class="clear"></div>
</div>
<div class="field" style="margin-top:10px;">
<label for="sortingField">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy" />
</label>
<f:form.select property="sortingField" options="{
title:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.title\')}',
datetime:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.datetime\')}',
tstamp:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.tstamp\')}',
archive:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.archive\')}',
author:'{f:translate(key: \'LLL:EXT:cms/locallang_tca.xlf:pages.author_formlabel\')}'
}" id="sortingField" />
<f:form.select property="sortingDirection" options="{
asc:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.asc\')}',
desc:'{f:translate(key: \'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderDirection.desc\')}'
}" id="sortingDirection" />
<div class="clear"></div>
</div>
<f:form.submit value="{f:translate(key:'LLL:EXT:lang/locallang_common.xlf:search')}" class="submit" />
</div>
<div class="category-tree">
<div class="tree-wrapper">
<f:render section="categoryTree" arguments="{categories: categories}" />
</div>
<f:if condition="{categories}">
<div class="field">
<label for="categoryConjunction">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.categoryConjunction" />
</label>
<f:form.select property="categoryConjunction" options="{AND:'AND', OR:'OR', notor:'notor', notand:'notand'}" id="categoryConjunction" />
<div class="clear"></div>
</div>
</f:if>
</div>
<div class="clear"></div>
</div>
</f:form>
<f:if condition="{news}">
<f:then>
<div class="result">
<f:if condition="{settings.list.paginate.itemsPerPage} == 0">
<div class="typo3-message message-warning">
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.nolimit" arguments="{0:'settings.list.paginate.itemsPerPage'}"/>
</div>
</div>
</f:if>
<f:be.widget.paginate objects="{news}" as="paginatedNews" configuration="{itemsPerPage: settings.list.paginate.itemsPerPage}">
<table cellpadding="0" cellmargin="0" cellspacing="0" class="t3-table">
<thead>
<tr class="t3-row-header">
<td>
<span><f:translate key="LLL:EXT:cms/locallang_ttc.xlf:header_formlabel" /></span>
<n:be.buttons.icon uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'title')}" icon="actions-document-open" />
</td>
<td>
<span><f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.istopnews" /></span>
<n:be.buttons.icon uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'istopnews')}" icon="actions-document-open" />
</td>
<td class="date">
<span><f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.datetime" /></span>
<n:be.buttons.icon uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'datetime')}" icon="actions-document-open" />
</td>
<td class="date">
<span><f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news.archive" /></span>
<n:be.buttons.icon uri="#" onclick="{n:be.multiEditLink(items:paginatedNews,columns:'archive')}" icon="actions-document-open" />
</td>
<td>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.orderBy.tstamp" />
</td>
<td class="nosort"></td>
</tr>
</thead>
<tbody>
<f:for each="{paginatedNews}" as="newsItem">
<f:render partial="Administration/ListItem" arguments="{newsItem: newsItem, dateformat:dateformat}" />
</f:for>
</tbody>
<tfoot>
<tr>
<td colspan="6">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:module.newsCount" arguments="{0:'{f:count(subject:news)}'}" />
</td>
</tr>
</tfoot>
</table>
</f:be.widget.paginate>
</div>
</f:then>
<f:else>
<div class="typo3-message message-notice">
<div class="message-body">
<f:translate key="list_nonewsfound" />
</div>
</div>
</f:else>
</f:if>
</f:section>

View File

@@ -0,0 +1,45 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="Backend/Default" />
<f:section name="content">
<h2>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.newsPidListing.header" />
</h2>
<f:flashMessages class="tx-extbase-flash-message" />
<p>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:administration.newsPidListing.description" />
</p>
<br />
<f:form action="newsPidListing">
<label for="treeLevel">
<f:translate key="LLL:EXT:lang/locallang_general.xlf:LGL.recursive" />
</label>
<f:form.select name="treeLevel" id="treeLevel" options="{1:1,2:2,3:3,4:4,5:5,6:6,7:7}" value="{treeLevel}" additionalAttributes="{onchange:'this.form.submit()'}" />
</f:form>
<table cellpadding="0" cellmargin="0" cellspacing="0" class="t3-table">
<thead>
<tr class="t3-row-header">
<td>
<f:translate key="LLL:EXT:lang/locallang_tca.xlf:pages" />
</td>
<td>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_db.xlf:tx_news_domain_model_news" />
</td>
<td>
<f:translate key="LLL:EXT:lang/locallang_tca.xlf:sys_category" />
</td>
</tr>
</thead>
<f:for each="{tree}" as="item">
<tr class="db_list_normal {f:if(condition: item.countNewsAndCategories, then: 'show', else: 'hide')}">
<td class="icon" nowrap="nowrap">
<f:format.html parseFuncTSPath="">{item.HTML}</f:format.html>
<f:link.action action="index" additionalParams="{id:item.row.uid}" title="UID: {item.row.uid}">{item.row.title}</f:link.action>
</td>
<td>{item.countNews}</td>
<td>{item.countCategories}</td>
</tr>
</f:for>
</table>
</f:section>

View File

@@ -0,0 +1,43 @@
{namespace n=Tx_News_ViewHelpers}
<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">
<ul>
<f:for each="{categories}" as="category">
<li>
<f:if condition="{category.item.uid} == {overwriteDemand.categories}">
<f:then>
<f:link.page 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 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}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>

View File

@@ -0,0 +1,180 @@
<f:layout name="Backend/Simple" />
<f:section name="iconButtons">
</f:section>
<f:section name="content">
<h3 class="uppercase">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.header" />
</h3>
<p class="description">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.description" />
</p>
<div class="typo3-message message-warning">
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.backupwarning" />
</div>
</div>
<br />
<f:if condition="{error}">
<div class="typo3-message message-error">
<div class="message-header">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.error.configuration.title" />
</div>
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:{error}" default="{error}" />
</div>
</div>
</f:if>
<f:if condition="{availableJobs -> f:count()} > 1">
<f:then>
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.choose_a_job" />:
<f:form.select id="jobSelector" options="{availableJobs}" />
<br /><br />
</f:then>
<f:else>
<div class="typo3-message message-information">
<div class="message-body">
<f:translate key="LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:import.nojobs" />
</div>
</div>
</f:else>
</f:if>
<div id="job" style="display:none;">
<div id="progressBar" style="width:300px;"></div>
<button id="startButton">Start</button>
<br />
</div>
<script type="text/javascript">
var moduleUrl = '{f:format.raw(value: moduleUrl)}';
<![CDATA[
Ext.namespace('Tx_News');
Tx_News.Common = function () {
var pub = {};
var extKey = 'news';
var underscoreToUpperCamelCase = function (subject) {
var matches = subject.match(/(_\w)/g);
if (matches) {
matches.each(function (m) {
subject = subject.replace(m, m.charAt(1).toUpperCase());
});
}
return subject.charAt(0).toUpperCase() + subject.substr(1);
};
var getParameterPrefix = function (mainModuleName, subModuleName) {
return 'tx_' + extKey + '_' + mainModuleName + '_' + extKey + subModuleName.replace(/_/g, '');
};
pub.getExtKey = function () {
return extKey;
};
pub.getBackendRequest = function (mainModuleName, subModuleName, controller, action, parameters) {
var parameterPrefix = getParameterPrefix(mainModuleName, subModuleName);
var params = {};
Ext.apply(parameters, {controller: controller, action: action});
Ext.iterate(parameters, function (key, value) {
params[parameterPrefix + '[' + key + ']'] = value;
});
var request = {
'url': moduleUrl,
'params': params
};
return request;
};
return pub;
}();
Tx_News.Importer = function () {
var pub = {};
var jobInfo = {};
var progressBar;
var runCounter = 0;
var run = function () {
var request = Ext.apply(Tx_News.Common.getBackendRequest('web', 'tx_news_m1', 'Import',
'runJob', {jobClassName: jobInfo.jobClassName, offset: runCounter * jobInfo.increaseOffsetPerRunBy}));
Ext.apply(request, {
success: function () {
var progress = runCounter / jobInfo.runsToComplete;
progressBar.updateProgress(progress, Math.round(100 * progress) + '%');
runCounter++;
if (runCounter <= jobInfo.runsToComplete) {
run();
} else {
progressBar.updateText('Done.');
progressBar.reset();
runCounter = 1;
}
},
failure: function () {
alert('error');
}
});
Ext.Ajax.request(request);
};
var initJob = function () {
Ext.get('job').show();
progressBar = new Ext.ProgressBar({
renderTo: 'progressBar'
});
Ext.get('startButton').on('click', function () {
run();
});
};
var loadJobInfo = function (jobClassName) {
var request = Ext.apply(Tx_News.Common.getBackendRequest('web', 'tx_news_m1', 'Import',
'jobInfo', {jobClassName: jobClassName}));
Ext.apply(request, {
success: function (response) {
jobInfo = (Ext.decode(response.responseText));
Ext.apply(jobInfo, {jobClassName: jobClassName});
initJob();
}
});
Ext.Ajax.request(request);
};
pub.init = function () {
Ext.get('jobSelector').on('change', function () {
var jobClassName = this.getValue();
if (jobClassName != '0') {
loadJobInfo(jobClassName);
} else {
Ext.get('job').hide();
}
});
};
return pub;
}();
Ext.onReady(function () {
Tx_News.Importer.init();
});
]]>
</script>
</f:section>

View File

@@ -0,0 +1,33 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="General" />
<!--
=====================
Templates/News/DateMenu.html
-->
<f:section name="content">
<div class="news-menu-view">
<ul>
<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="item itemactive">
</f:then>
<f:else>
<li class="item">
</f:else>
</f:if>
<f:link.action 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>
</div>
</f:section>

View File

@@ -0,0 +1,215 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="Detail.html" />
<!--
=====================
News/Detail.html
-->
<f:section name="content">
<f:if condition="{newsItem}">
<f:then>
<n:format.nothing>
<f:if condition="{newsItem.alternativeTitle}">
<f:then>
<n:titleTag>
<n:format.htmlentitiesDecode>{newsItem.alternativeTitle}</n:format.htmlentitiesDecode>
</n:titleTag>
</f:then>
<f:else>
<n:titleTag>
<n:format.htmlentitiesDecode>{newsItem.title}</n:format.htmlentitiesDecode>
</n:titleTag>
</f:else>
</f:if>
<f:render partial="Detail/Opengraph" arguments="{newsItem: newsItem, settings:settings}" />
</n:format.nothing>
<!-- <div class="headerNews">
<h3>{newsItem.title}</h3>
</div>-->
<h1 class="title">{newsItem.title}</h1>
<div class="footerNews">
<p>
<!-- date -->
<span class="date">
<n:format.date format="%d %B %Y">{newsItem.datetime}</n:format.date>
</span>
<f:if condition="{newsItem.categories}">
<f:render partial="Category/Items" arguments="{categories:newsItem.categories, settings:settings}" />
</f:if>
<f:if condition="{newsItem.tags}">
<!-- Tags -->
<span class="news-list-tags">
<f:for each="{newsItem.tags}" as="tag">
{tag.title}
</f:for>
</span>
</f:if>
<f:if condition="{newsItem.author}">
<!-- author -->
<span class="news-list-author" itemscope itemtype="http://data-vocabulary.org/Person">
<f:translate key="author_simple" /> <span itemprop="name">{newsItem.author}</span>
</span>
</f:if>
</p>
</div>
<f:if condition="{newsItem.teaser}">
<!-- teaser -->
<div class="teaser-text">
<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>
<f:render partial="Detail/FalMediaContainer" arguments="{media: newsItem.falMedia, settings:settings}" />
<f:render partial="Detail/MediaContainer" arguments="{media: newsItem.media, settings:settings}" />
<!-- main text -->
<div class="news-text-wrap">
<f:format.html>{newsItem.bodytext}</f:format.html>
</div>
<f:if condition="{settings.backPid}">
<!-- Link Back -->
<div class="news-backlink-wrap">
<f:link.page pageUid="{settings.backPid}">
<f:translate key="back-link" />
</f:link.page>
</div>
</f:if>
<f:if condition="{settings.detail.showSocialShareButtons}">
<div class="facebook">
<div class="like">
<n:social.facebook.like></n:social.facebook.like>
</div>
<div class="share">
<n:social.facebook.share />
</div>
<div class="twitter">
<n:social.twitter>Twitter</n:social.twitter>
</div>
</div>
</f:if>
<f:if condition="{settings.detail.disqusShortname}">
<n:social.disqus newsItem="{newsItem}"
shortName="{settings.detail.disqusShortname}"
link="{n:link(newsItem:newsItem,settings:settings,uriOnly:1,configuration:'{forceAbsoluteUrl:1}')}" />
</f:if>
<!-- related things -->
<div class="news-related-wrap">
<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"><n:format.date format="{f:translate(key:'dateFormat')}">{related.datetime}</n:format.date></span>
<n:link newsItem="{related}" settings="{settings}">
{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">
<n:format.fileDownload file="uploads/tx_news/{relatedFile.file}" configuration="{settings.relatedFiles.download}">
<f:if condition="{relatedFile.title}">
<f:then>
{relatedFile.title}
</f:then>
<f:else>
{relatedFile.file}
</f:else>
</f:if>
</n:format.fileDownload>
</span>
<span class="news-related-files-size">
<n:format.fileSize file="uploads/tx_news/{relatedFile.file}" format="{settings.relatedFiles.fileSizeLabels}" />
</span>
</li>
</f:for>
</ul>
</div>
</f:if>
<f:if condition="{newsItem.falRelatedFiles}">
<!-- FAL related files -->
<div class="news-related news-related-files">
<h4>
<f:translate key="related-files" />
</h4>
<ul>
<f:for each="{newsItem.falRelatedFiles}" as="relatedFile">
<li>
<span class="news-related-files-link">
<n:format.fileDownload file="{relatedFile.originalResource.publicUrl}" configuration="{settings.relatedFiles.download}">
<f:if condition="{relatedFile.originalResource.title}">
<f:then>
{relatedFile.originalResource.title}
</f:then>
<f:else>
{relatedFile.originalResource.name}
</f:else>
</f:if>
</n:format.fileDownload>
</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.page pageUid="{relatedLink.uri}" title="{relatedLink.title}" target="{n:targetLink(link:relatedLink.uri)}">{f:if(condition: relatedLink.title, then: relatedLink.title, else: relatedLink.uri)}</f:link.page>
<f:if condition="{relatedLink.description}"><span>{relatedLink.description}</span></f:if>
</li>
</f:for>
</ul>
</div>
</f:if>
</div>
</f:then>
<f:else>
</f:else>
</f:if>
</f:section>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
{namespace n=Tx_News_ViewHelpers}<feed xmlns="http://www.w3.org/2005/Atom">
<title>{settings.list.rss.channel.title}</title>
<link href="{settings.list.rss.channel.link}"/>
<link rel="self" href="<f:format.htmlentities><f:uri.page pageType="9818"/></f:format.htmlentities>"/>
<id><f:uri.page/></id>
<updated><n:format.date format="c" currentDate="1" strftime="0"/></updated>
<f:if condition="{news}">
<f:for each="{news}" as="newsItem">
<entry>
<id>{settings.list.rss.channel.link}news-{newsItem.uid}.atom</id>
<title><n:format.hsc>{newsItem.title}</n:format.hsc></title>
<author>
<name><f:if condition="{newsItem.author}"><f:then>{newsItem.author}</f:then><f:else>-</f:else></f:if></name>
<f:if condition="{newsItem.author_email}"><email>{newsItem.author_email}</email></f:if>
</author>
<published><n:format.date format="c" strftime="0">{newsItem.crdate}</n:format.date></published>
<updated><n:format.date format="c" strftime="0">{newsItem.datetime}</n:format.date></updated>
<link rel="alternate" type="text/html" href="<n:format.hsc><n:link newsItem="{newsItem}" settings="{settings}" uriOnly="1" /></n:format.hsc>"/>
<summary><n:format.hsc><n:format.striptags>{newsItem.teaser}</n:format.striptags></n:format.hsc></summary>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
<f:format.html>{newsItem.bodytext}</f:format.html>
</div></content>
</entry>
</f:for>
</f:if>
</feed>

View File

@@ -0,0 +1,86 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<f:if condition="{news}">
<f:then>
<f:if condition="{settings.templateLayout} == 100">
<!-- Archivio notizie -->
<f:then>
<ul class="base_list news_list">
<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>
<n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</n:widget.paginate>
</f:else>
</f:if>
</ul>
</f:then>
<!-- [FINE] Archivio notizie -->
<!-- Lista ultime notizie -->
<f:else>
<div class="four columns content omega">
<div class="widget">
<h3 class="t_line">Notizie</h3>
<ol class="base_list icon_list">
<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:if condition="{iterator.isLast}">
<f:then>
<li>
<br><i class="fa fa-archive"></i>
<f:link.action pageUid="{settings.listPid}">Archivio notizie</f:link.action>
</li>
</f:then>
<f:else></f:else>
</f:if>
</f:for>
</f:then>
<f:else>
<n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
<f:if condition="{iterator.isLast}">
<f:then>
<li>
<br><i class="fa fa-archive"></i>
<f:link.action pageUid="{settings.listPid}">Archivio notizie</f:link.action>
</li>
</f:then>
<f:else></f:else>
</f:if>
</f:for>
</n:widget.paginate>
</f:else>
</f:if>
</ol>
</div>
</div>
</f:else>
<!-- [FINE] Lista ultime notizie -->
</f:if>
</f:then>
<f:else>
<div class="no-news-found">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
</f:section>

View File

@@ -0,0 +1,11 @@
{namespace n=Tx_News_ViewHelpers}BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//TYPO3/NONSGML News system (news)//EN
<f:if condition="{news}"><f:for each="{news}" as="newsItem">BEGIN:VEVENT
UID:news-{newsItem.uid}@{settings.domain}
DTSTAMP:<n:format.date format="%Y%m%dT%H%M%S%Z" strftime="1">{newsItem.tstamp}</n:format.date>
DTSTART:<n:format.date format="%Y%m%dT%H%M%S%Z" strftime="1">{newsItem.datetime}</n:format.date>
DTEND:<n:format.date format="%Y%m%dT%H%M%S%Z" strftime="1"><f:if condition="{newsItem.archive}"><f:then>{newsItem.archive}</f:then><f:else>{newsItem.datetime}</f:else></f:if></n:format.date>
SUMMARY:<n:format.hsc>{newsItem.title}</n:format.hsc>
END:VEVENT
</f:for></f:if>END:VCALENDAR

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
{namespace n=Tx_News_ViewHelpers}<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{settings.list.rss.channel.title}</title>
<link>{settings.list.rss.channel.link}</link>
<description>{settings.list.rss.channel.description}</description>
<language>{settings.list.rss.channel.language}</language>
<f:if condition="{settings.list.rss.channel.copyright}">
<copyright>{settings.list.rss.channel.copyright}</copyright>
</f:if>
<pubDate><n:format.date format="r" currentDate="1" strftime="0" /></pubDate>
<lastBuildDate><n:format.date format="r" currentDate="1" strftime="0" /></lastBuildDate>
<f:if condition="{settings.list.rss.channel.category}">
<category>{settings.list.rss.channel.category}</category>
</f:if>
<atom:link href="<f:format.htmlentities><f:uri.page pageType="9818"/></f:format.htmlentities>" rel="self" type="application/rss+xml" />
<generator>{settings.list.rss.channel.generator}</generator>
<f:if condition="{news}">
<f:for each="{news}" as="newsItem">
<item>
<guid isPermaLink="false">news-{newsItem.uid}</guid>
<pubDate><n:format.date format="r" strftime="0">{newsItem.datetime}</n:format.date></pubDate>
<title><n:format.hsc>{newsItem.title}</n:format.hsc></title>
<link><f:format.htmlentities><n:link newsItem="{newsItem}" settings="{settings}" uriOnly="1" /></f:format.htmlentities></link>
<description><n:format.hsc><n:format.striptags>{newsItem.teaser}</n:format.striptags></n:format.hsc></description>
<content:encoded><f:format.cdata><f:format.html>{newsItem.bodytext}</f:format.html></f:format.cdata></content:encoded>
</item>
</f:for>
</f:if>
</channel>
</rss>

View File

@@ -0,0 +1,31 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="General" />
<!--
=====================
Templates/News/SearchForm.html
-->
<f:section name="content">
<div class="news-search-form">
<f:form object="{search}" name="search" pageUid="{settings.listPid}">
<fieldset>
<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"/>
</fieldset>
</f:form>
</div>
</f:section>

View File

@@ -0,0 +1,28 @@
{namespace n=Tx_News_ViewHelpers}
<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="count-msg">
<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="no-news-found">
<f:translate key="search-noresult" />
</div>
</f:else>
</f:if>
</f:if>
</div>
</f:section>

View File

@@ -0,0 +1,31 @@
{namespace n=Tx_News_ViewHelpers}
<f:layout name="General" />
<!--
=====================
Templates/Tag/List.html
-->
<f:section name="content">
<f:if condition="{tags}">
<ul class="news-tags">
<f:for each="{tags}" as="tag">
<li>
<f:if condition="{tag.uid} == {overwriteDemand.tags}">
<f:then>
<f:link.page class="active" pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}">
{tag.title}
</f:link.page>
</f:then>
<f:else>
<f:link.page pageUid="{settings.listPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}">
{tag.title}
</f:link.page>
</f:else>
</f:if>
</li>
</f:for>
</ul>
</f:if>
</f:section>

View File

@@ -0,0 +1,15 @@
<a href="{url}" style="display:block;width:{width}px;height:{height}px;" id="{uniqueDivId}"></a>
<script type="text/javascript">
flowplayer("{uniqueDivId}", "typo3conf/ext/news/Resources/Public/JavaScript/Contrib/flowplayer-3.2.16.swf", <![CDATA[{
clip:{
autoPlay:false,
autoBuffering:true
},
plugins:{
controls:{
volume:true
}
}
});
]]>
</script>

View File

@@ -0,0 +1,94 @@
{namespace n=Tx_News_ViewHelpers}
<f:if condition="{configuration.insertAbove}">
<f:render section="paginator" arguments="{pagination: pagination,configuration:configuration}" />
</f:if>
<f:renderChildren arguments="{contentArguments}" />
<f:if condition="{configuration.insertBelow}">
<f:render section="paginator" arguments="{pagination: pagination,configuration:configuration}" />
</f:if>
<f:section name="paginator">
<f:if condition="{pagination.numberOfPages} > 1">
<f:if condition="{settings.list.paginate}">
<f:if condition="{pagination.previousPage}">
<f:if condition="{pagination.previousPage} > 1">
<f:then>
<n:headerData><link rel="prev" href="<f:widget.uri arguments="{currentPage: pagination.previousPage}" />" /></n:headerData>
</f:then>
<f:else>
<n:headerData><link rel="prev" href="<f:widget.uri />" /></n:headerData>
</f:else>
</f:if>
</f:if>
<f:if condition="{pagination.nextPage}">
<n:headerData><link rel="next" href="<f:widget.uri arguments="{currentPage: pagination.nextPage}" />" /></n:headerData>
</f:if>
</f:if>
<!--
<p>
<f:translate key="paginate_overall" arguments="{0:pagination.current,1:pagination.numberOfPages}" />
</p>
-->
<br>
<div class="clearfix num_bar">
<f:if condition="{pagination.previousPage}">
<f:if condition="{pagination.previousPage} > 1">
<f:then>
<f:widget.link arguments="{currentPage: pagination.previousPage}">
<i class="fa fa-caret-left"></i>
<f:translate key="paginate_previous" />
</f:widget.link> |
</f:then>
<f:else>
<f:widget.link>
<i class="fa fa-caret-left"></i>
<f:translate key="paginate_previous" />
</f:widget.link> |
</f:else>
</f:if>
</f:if>
<f:if condition="{pagination.displayRangeStart} > 1">
<f:widget.link>1</f:widget.link> |
</f:if>
<f:if condition="{pagination.hasLessPages}">
.... |
</f:if>
<f:for each="{pagination.pages}" as="page">
<f:if condition="{page.isCurrent}">
<f:then>
<f:widget.link class="current">{page.number}</f:widget.link> |
</f:then>
<f:else>
<f:if condition="{page.number} > 1">
<f:then>
<f:widget.link arguments="{currentPage: page.number}">{page.number}</f:widget.link> |
</f:then>
<f:else>
<f:widget.link>{page.number}</f:widget.link> |
</f:else>
</f:if>
</f:else>
</f:if>
</f:for>
<f:if condition="{pagination.hasMorePages}">
.... |
</f:if>
<f:if condition="{pagination.displayRangeEnd} < {pagination.numberOfPages}">
<f:widget.link arguments="{currentPage: pagination.numberOfPages}">{pagination.numberOfPages}</f:widget.link>
</f:if>
<f:if condition="{pagination.nextPage}">
<f:widget.link arguments="{currentPage: pagination.nextPage}">
<f:translate key="paginate_next" />
<i class="fa fa-caret-right"></i>
</f:widget.link>
</f:if>
</div>
</f:if>
</f:section>

View File

@@ -0,0 +1,3 @@
<div class="tx-pwteaser-pi1">
<f:render section="main" />
</div>

View File

@@ -0,0 +1,13 @@
<f:form.errors>
<div class="error">
{error.message}
<f:if condition="{error.propertyName}">
<p>
<strong>{error.propertyName}</strong>:
<f:for each="{error.errors}" as="errorDetail">
{errorDetail.message}
</f:for>
</p>
</f:if>
</div>
</f:form.errors>

View File

@@ -0,0 +1,17 @@
{namespace pw=PwTeaserTeam\PwTeaser\ViewHelpers}
<f:layout name="default" />
<f:section name="main">
<ul>
<f:for each="{pages}" as="page" iteration="iterator">
<li class="page {f:if(condition:'{iterator.isFirst}', then:' first')}{f:if(condition:'{iterator.isLast}', then:' last')}">
<f:link.page pageUid="{page.uid}" title="{page.title}">
<f:if condition="{page.media.0}">
<f:image src="{page.media.0}" alt="{page.title}" width="110" />
</f:if>
<span>{page.title}</span>
</f:link.page>
</li>
</f:for>
</ul>
</f:section>

View File

@@ -0,0 +1,12 @@
{namespace pw=PwTeaserTeam\PwTeaser\ViewHelpers}
<f:layout name="default" />
<f:section name="main">
<ul>
<f:for each="{pages}" as="page" iteration="iterator">
<li class="page {f:if(condition:'{iterator.isFirst}', then:' first')}{f:if(condition:'{iterator.isLast}', then:' last')}">
<f:link.page pageUid="{page.uid}" title="{page.title}">{page.title}</f:link.page>
</li>
</f:for>
</ul>
</f:section>

View File

@@ -0,0 +1,50 @@
{namespace pw=PwTeaserTeam\PwTeaser\ViewHelpers}
<f:layout name="default" />
<f:section name="main">
<div><strong>{f:count(subject:'{pages}')}</strong> inventari presenti</div>
<f:if condition="{f:count(subject:'{pages}')}">
<f:then>
<pw:widget.paginate objects="{pages}" as="pageObject" configuration="{itemsPerPage: 5, insertAbove: 0, insertBelow: 1}">
<ul class="base_list news_list">
<f:for each="{pageObject}" as="page">
<li>
<a href="fileadmin/redazione/inventari/Alessandria_OP_SGiacomo_L.JPG" class="menuRow1" title="Veduta dell'Ospedale psichiatrico San Giacomo di Alessandria">
<img src="fileadmin/redazione/inventari/Alessandria_OP_SGiacomo_S.jpg" width="100" height="100" alt="">
</a>
<script>$(".menuRow1").colorbox({rel:'menuRow1'});</script>
<h4>{page.title}</h4>
<f:if condition="{settings.loadContents}">
<strong>First image (of content elements, column 0)</strong>: <br />
<pw:getContent contents="{page.contents}" as="content" cType="image" index="0">
<f:image src="{content.imageFiles.0.url}" alt="{content.imageFiles.0.title}" maxWidth="200" maxHeight="200" />
</pw:getContent>
<pw:getContent contents="{page.contents}" as="content" colPos="0" cType="text">
<f:format.html>{content.bodytext}</f:format.html>
</pw:getContent>
<pw:getContent contents="{page.contents}" as="content" colPos="100" cType="uploads">
<f:debug title="Debug of MyArray">{content}</f:debug>***
<f:for each="{content.image}" as="image" iteration="iterator">
<f:if condition="{iterator.isFirst} == 1">
<f:image src="{image.uid}" treatIdAsReference="1" width="400c" height="100c" />
</f:if>
</f:for>
</pw:getContent>
</f:if>
</li>
</f:for>
</ul>
</pw:widget.paginate>
</f:then>
<f:else>
<em>Nessun inventario presente.</em>
</f:else>
</f:if>
</f:section>

View File

@@ -0,0 +1,104 @@
<f:if condition="{configuration.insertAbove}">
<f:render section="paginator" arguments="{pagination: pagination}" />
</f:if>
<f:renderChildren arguments="{contentArguments}" />
<f:if condition="{configuration.insertBelow}">
<f:render section="paginator" arguments="{pagination: pagination}" />
</f:if>
<f:section name="paginator">
<ul class="f3-widget-paginator">
<!-- First -->
<f:if condition="{f:translate(key:'pagination_first')}">
<f:if condition="{pagination.isFirstPage}">
<f:then>
<li class="first">
<span><f:translate key="pagination_first" /></span>
</li>
</f:then>
<f:else>
<li class="first">
<f:widget.link><f:translate key="pagination_first" /></f:widget.link>
</li>
</f:else>
</f:if>
</f:if>
<!-- Previous -->
<f:if condition="{f:translate(key:'pagination_previous')}">
<f:if condition="{pagination.previousPage}">
<f:then>
<li class="previous">
<f:if condition="{pagination.previousPage} > 1">
<f:then>
<!-- <f:translate key="previous" /> -->
<f:widget.link arguments="{currentPage: pagination.previousPage}"><f:translate key="pagination_previous" /></f:widget.link>
</f:then>
<f:else>
<f:widget.link><f:translate key="pagination_previous" /></f:widget.link>
</f:else>
</f:if>
</li>
</f:then>
<f:else>
<li class="previous">
<span><f:translate key="pagination_previous" /></span>
</li>
</f:else>
</f:if>
</f:if>
<!-- Numbered pages -->
<f:for each="{pagination.pages}" as="page">
<f:if condition="{page.isCurrent}">
<f:then>
<li class="current">
<span>{page.number}</span>
</li>
</f:then>
<f:else>
<li>
<f:if condition="{page.number} > 1">
<f:then>
<f:widget.link arguments="{currentPage: page.number}">{page.number}</f:widget.link>
</f:then>
<f:else>
<f:widget.link>{page.number}</f:widget.link>
</f:else>
</f:if>
</li>
</f:else>
</f:if>
</f:for>
<!-- Next -->
<f:if condition="{f:translate(key:'pagination_next')}">
<li class="next">
<f:if condition="{pagination.nextPage}">
<f:then>
<f:widget.link arguments="{currentPage: pagination.nextPage}"><f:translate key="pagination_next" /></f:widget.link>
</f:then>
<f:else>
<span><f:translate key="pagination_next" /></span>
</f:else>
</f:if>
</li>
</f:if>
<!-- Last -->
<f:if condition="{f:translate(key:'pagination_last')}">
<li class="last">
<f:if condition="{pagination.isLastPage}">
<f:then>
<span><f:translate key="pagination_last" /></span>
</f:then>
<f:else>
<f:widget.link arguments="{currentPage: pagination.lastPage}"><f:translate key="pagination_last" /></f:widget.link>
</f:else>
</f:if>
</li>
</f:if>
</ul>
</f:section>