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
@@ -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) ;
});
@@ -0,0 +1,3 @@
<!-- ###COOKIE### -->
<!-- ###COOKIE### -->
@@ -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### -->
@@ -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###-->
@@ -0,0 +1,2 @@
<f:render section="main" />
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -0,0 +1,2 @@
<f:render section="main" />
@@ -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>
@@ -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>
@@ -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>
@@ -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" />
@@ -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" />
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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}" />
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -0,0 +1,3 @@
<div class="tx-pwteaser-pi1">
<f:render section="main" />
</div>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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.) ...