Moving assets and resources to the public folder

This commit is contained in:
Matteo Gallo
2026-07-07 13:02:16 +02:00
parent 6571f0d398
commit 2f698971ae
5207 changed files with 47282 additions and 180074 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,47 @@
jQuery(document).ready(function(){
jQuery('#cctoggle').live('click',function(){
if(document.getElementById('cchide-popup').checked){
CookieControl.setCookie('civicShowCookieIcon', 'no');$('#ccc-icon').hide()
}
if(jQuery(this).attr('class') == 'cctoggle-on'){
jQuery.ajax({
url: 'index.php',
data: {
eID: 'cookieDelete',
tx_cookie_control_pi1: ({
'in':2
})
},
success: function(data) {
CookieControl.reset();
setTimeout(function(){window.location.reload()}, 500);
}
});
}else{
jQuery.ajax({
url: 'index.php',
data: {
eID: 'cookieDelete',
tx_cookie_control_pi1: ({
'in': 1
})
},
success: function(data) {
}
});
}
return false;
});
jQuery('#cookie_enable').bind('click',function(){
CookieControl.setCookie('civicShowCookieIcon', 'yes');
$('#cccwr').show();
$('#ccc-icon').show();
});
setTimeout(function(){
$('#cccwr').hide()
$('#ccc-icon').hide()
},300000) ;
});

View File

@@ -0,0 +1,3 @@
<!-- ###COOKIE### -->
<!-- ###COOKIE### -->

View File

@@ -0,0 +1,80 @@
<!-- ###COOKIE### -->
<script type="text/javascript">
var addSize = "###STR_LEN_ADD_TEXT###";
var title = "###TITLE###";
if(title.length == 0){
title = "Cookie Control";
}
var buttonText = "###BUTTON_TEXT###";
if(buttonText.length ==0){
buttonText = "I am happy with this";
}
var button = "";
if(addSize > 0){
button = "<button class=\"ccc-expand\">read more</button>";
}else{
button = "";
}
var revokeButtonText = "###REVOKE_BUTTON_TEXT###";
if(revokeButtonText.length == 0){
revokeButtonText = "Revoke Concent";
}
</script>
<script src="###PATH###pi1/js/cookieControl-4.1.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="###THEMEFILE###" />
<script src="http://www.geoplugin.net/javascript.gp" type="text/javascript"></script>
<script type="text/javascript"> //<![CDATA[
cookieControl({
introText:'###INTROTEXT###',
fullText:'###FULLTEXT###',
position:"###POSITION###", // left or right
shape:"###SHAPE###", // triangle or diamond
theme:"###THEME###", // light or dark
startOpen:true,
autoHide:6000,
countries:"###COUNTRIES###",
subdomains:true,
###EXTRAOPTION###
});
function ccAddAnalytics() {
jQuery.getScript("http://www.google-analytics.com/ga.js", function() {
var GATracker = _gat._createTracker('###CODE###');
GATracker._trackPageview();
});
}
//]]>
$(document).ready(function(){
$('#clearcookies').click(function(){
$('.ccc-widget').hide();
$.ajax({
url: 'index.php',
data: {
eID: 'cookieDelete',
tx_cookie_control_pi1: ({
'in': 'delete'
})
},
success: function(data) {
CookieControl.reset();
setTimeout(function(){window.location.reload()}, 500);
}
});
return false;
});
$('#ccc-go').click(function(){
$.ajax({
url: 'index.php',
data: {
eID: 'cookieDelete',
tx_cookie_control_pi1: ({
'in': 'allow'
})
},
success: function(data) {
//setTimeout(function(){window.location.reload()}, 500);
}
});
});
});
</script>
<!-- ###COOKIE### -->

View File

@@ -0,0 +1,170 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Templates for felogin</title>
</head>
<body>
<h1>Common markers</h1>
<p>These are substituted in all felogin item displaying templates.</p>
<h2>Markers</h2>
<ul>
<li>###ACTION_URI### - URI of the request for the login/logout form</li>
<li>###EXTRA_HIDDEN### - Hook required (additional hidden field used by kb_md5fepw extension by Kraft Bernhard)</li>
<li>###ON_SUBMIT### - Hook required (used by kb_md5fepw extension by Kraft Bernhard)</li>
<li>###PREFIXID### - Same as class name ('tx_felogin_pi1') useful to get a unique classname prefix</li>
<li>###REDIRECT_URL### - URL of redirection upon login</li>
<li>###NOREDIRECT### - if set, no redirect will be done</li>
<li>###STORAGE_PID### - explicit enough I guess (if not : id of the page where user are stored)</li>
<li>###STATUS_HEADER### - depends of the template</li>
<li>###STATUS_MESSAGE### - depends of the template</li>
</ul>
<h2>Wrap parts</h2>
<ul>
<li>###HEADER_VALID### - useful to define what to show/hide</li>
<li>###MESSAGE_VALID### - useful to define what to show/hide</li>
<li>###FORGOTP_VALID### - useful to define what to show/hide</li>
<li>###PERMALOGIN_VALID### - useful to define what to show/hide</li>
</ul>
<h2>felogin Language Markers (see pi/locallang.xml)</h2>
<ul>
<li>###EMAIL_LABEL### - corresponding to 'your_email'</li>
<li>###FORGOT_PASSWORD### - corresponding to 'forgot_password'</li>
<li>###FORGOT_PASSWORD_BACKTOLOGIN### - corresponding to 'forgot_password_backToLogin'</li>
<li>###FORGOT_PASSWORD_ENTEREMAIL### - corresponding to 'forgot_password_enterEmail'</li>
<li>###LOGIN_LABEL### - corresponding to 'login'</li>
<li>###PASSWORD_LABEL### - corresponding to 'password'</li>
<li>###SEND_PASSWORD### - corresponding to 'send_password'</li>
<li>###USERNAME_LABEL### - corresponding to 'username'</li>
</ul>
<!--###TEMPLATE_LOGIN###-->
###STATUS_HEADER###
###STATUS_MESSAGE###
<!-- ###LOGIN_FORM### -->
<form action="###ACTION_URI###" target="_top" method="post" onsubmit="###ON_SUBMIT###">
<fieldset>
<legend>###LEGEND###</legend>
<div>
<label for="user">###USERNAME_LABEL###</label>
<input type="text" id="user" name="user" value="" />
</div>
<div>
<label for="pass">###PASSWORD_LABEL###</label>
<input type="password" id="pass" name="pass" value="" />
</div>
<!--###PERMALOGIN_VALID###-->
<div>
<label for="permalogin">###PERMALOGIN###</label>
<input name="permalogin" value="0" type="hidden" ###PERMALOGIN_HIDDENFIELD_ATTRIBUTES### id="permaloginHiddenField" />
<input name="permalogin" value="1" type="checkbox" ###PERMALOGIN_CHECKBOX_ATTRIBUTES### id="permalogin" onclick="document.getElementById('permaloginHiddenField').disabled = this.checked;" />
</div>
<!--###PERMALOGIN_VALID###-->
<div>
<input class="btn" type="submit" name="submit" value="###LOGIN_LABEL###" />
</div>
<div class="felogin-hidden">
<input type="hidden" name="logintype" value="login" />
<input type="hidden" name="pid" value="###STORAGE_PID###" />
<input type="hidden" name="redirect_url" value="###REDIRECT_URL###" />
<input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
###EXTRA_HIDDEN###
</div>
</fieldset>
</form>
<!--###FORGOTP_VALID###-->
<p><!--###FORGOT_PASSWORD_LINK###-->###FORGOT_PASSWORD###<!--###FORGOT_PASSWORD_LINK###--></p>
<!--###FORGOTP_VALID###-->
<!-- ###LOGIN_FORM### -->
<!--###TEMPLATE_LOGIN###-->
<!--###TEMPLATE_LOGOUT###-->
###STATUS_HEADER###
###STATUS_MESSAGE###
<form action="###ACTION_URI###" target="_top" method="post">
<fieldset>
<legend>###LEGEND###</legend>
<div>
<label>###USERNAME_LABEL###</label>
###USERNAME###
</div>
<div>
<input class="btn" type="submit" name="submit" value="###LOGOUT_LABEL###" />
</div>
<div class="felogin-hidden">
<input type="hidden" name="logintype" value="logout" />
<input type="hidden" name="pid" value="###STORAGE_PID###" />
<input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
</div>
</fieldset>
</form>
<!--###TEMPLATE_LOGOUT###-->
<!--###TEMPLATE_FORGOT###-->
###STATUS_HEADER###
###STATUS_MESSAGE###
<!-- ###FORGOT_FORM### -->
<form action="###ACTION_URI###" method="post">
<div class="felogin-hidden">
<input type="hidden" name="tx_felogin_pi1[forgot_hash]" value="###FORGOTHASH###" />
</div>
<fieldset>
<legend>###LEGEND###</legend>
<div>
<label for="tx_felogin_pi1-forgot-email">###DATA_LABEL###</label>
<input type="text" name="###FORGOT_EMAIL###" id="tx_felogin_pi1-forgot-email" />
</div>
<div>
<input class="btn" type="submit" name="submit" value="###SEND_PASSWORD###" />
</div>
</fieldset>
</form>
<!-- ###FORGOT_FORM### -->
<p>###BACKLINK_LOGIN###&nbsp;</p>
<!--###TEMPLATE_FORGOT###-->
<!--###TEMPLATE_CHANGEPASSWORD###-->
###STATUS_HEADER###
###STATUS_MESSAGE###
<!-- ###CHANGEPASSWORD_FORM### -->
<form action="###ACTION_URI###" method="post">
<fieldset>
<legend>###LEGEND###</legend>
<div>
<label for="tx_felogin_pi1-newpassword1">###NEWPASSWORD1_LABEL###</label>
<input type="password" name="###NEWPASSWORD1###" id="tx_felogin_pi1-newpassword1" />
</div>
<div>
<label for="tx_felogin_pi1-newpassword2">###NEWPASSWORD2_LABEL###</label>
<input type="password" name="###NEWPASSWORD2###" id="tx_felogin_pi1-newpassword2" />
</div>
<div>
<input class="btn" type="submit" name="tx_felogin_pi1[changepasswordsubmit]" value="###SEND_PASSWORD###" />
</div>
</fieldset>
</form>
<!-- ###CHANGEPASSWORD_FORM### -->
###BACKLINK_LOGIN###
<!--###TEMPLATE_CHANGEPASSWORD###-->

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>

View File

@@ -0,0 +1,13 @@
Front End User Registration
Typo3 Extention sr_feuser_register
This is just a sample terms file
The terms are
1.) foo
2.) bar
3.) ...