Initial commit - Typo3 11.5.41
This commit is contained in:
10
typo3conf/ext/tt_address/Resources/Private/.htaccess
Normal file
10
typo3conf/ext/tt_address/Resources/Private/.htaccess
Normal file
@@ -0,0 +1,10 @@
|
||||
# Apache < 2.3
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</IfModule>
|
||||
|
||||
# Apache >= 2.3
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2017-04-04T12:30:37Z" product-name="tt_address">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="extbase_title" xml:space="preserve">
|
||||
<source>Addresses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="extbase_description" xml:space="preserve">
|
||||
<source>Displays one or more addresses.</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2017-04-05T08:11:35Z" product-name="tt_address">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="pi1_flexform.sheet_selection" xml:space="preserve">
|
||||
<source>Selection</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.single_records" xml:space="preserve">
|
||||
<source>Single addresses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.group_selection" xml:space="preserve">
|
||||
<source>Categories</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.includeSubcategories" xml:space="preserve">
|
||||
<source>Include subcategories</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.combination" xml:space="preserve">
|
||||
<source>Combination</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.combination.and" xml:space="preserve">
|
||||
<source>AND</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.combination.or" xml:space="preserve">
|
||||
<source>OR</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortBy" xml:space="preserve">
|
||||
<source>Sort By</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortBy.singleSelection" xml:space="preserve">
|
||||
<source>Order of single addresses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortBy.sorting" xml:space="preserve" approved="yes">
|
||||
<source>Order of addresses</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortBy.sorting.default" xml:space="preserve" approved="yes">
|
||||
<source>Default</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortBy.sorting.sorting" xml:space="preserve" approved="yes">
|
||||
<source>Manual sorting</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortOrder" xml:space="preserve">
|
||||
<source>Sort Order</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortOrder.ascending" xml:space="preserve">
|
||||
<source>Ascending</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sortOrder.descending" xml:space="preserve">
|
||||
<source>Descending</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.ignoreWithoutCoordinates" xml:space="preserve">
|
||||
<source>Ignore records with no latitude/longitude</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.allowOverride" xml:space="preserve">
|
||||
<source>Allow override configuration by GET/POST</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.sheet_display" xml:space="preserve">
|
||||
<source>Display</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.templateFile" xml:space="preserve">
|
||||
<source>Template</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.templateFile.I.0" xml:space="preserve">
|
||||
<source>Default</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.displayMode" xml:space="preserve">
|
||||
<source>Select display mode</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.displayMode.listView" xml:space="preserve">
|
||||
<source>List view</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.displayMode.singleView" xml:space="preserve">
|
||||
<source>Single view</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.displayMode.map" xml:space="preserve">
|
||||
<source>Map view</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.hidePagination" xml:space="preserve">
|
||||
<source>Do not display pagebrowser (listview)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.itemsPerPage" xml:space="preserve">
|
||||
<source>Number of items to be displayed (listview)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi1_flexform.singlePid" xml:space="preserve">
|
||||
<source>Page for single view</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<xliff version="1.0">
|
||||
<file source-language="en" datatype="plaintext" original="messages" date="2017-04-13T10:24:37Z" product-name="tt_address">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="label.address" xml:space="preserve">
|
||||
<source>Address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.building" xml:space="preserve">
|
||||
<source>Building</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.room" xml:space="preserve">
|
||||
<source>Room</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.position" xml:space="preserve">
|
||||
<source>Position</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.zip" xml:space="preserve">
|
||||
<source>Postal code</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.city" xml:space="preserve">
|
||||
<source>City</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.telephone" xml:space="preserve">
|
||||
<source>Telephone</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.fax" xml:space="preserve">
|
||||
<source>Fax</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.mobile" xml:space="preserve">
|
||||
<source>Mobile phone</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.email" xml:space="preserve">
|
||||
<source>E-mail</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.www" xml:space="preserve">
|
||||
<source>Go to website</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.socialmedia" xml:space="preserve">
|
||||
<source>Social media contacts</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.twitter" xml:space="preserve" translate="no">
|
||||
<source>Twitter</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.facebook" xml:space="preserve" translate="no">
|
||||
<source>Facebook</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.linkedin" xml:space="preserve" translate="no">
|
||||
<source>LinkedIn</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.skype" xml:space="preserve" translate="no">
|
||||
<source>Skype</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.birthday" xml:space="preserve">
|
||||
<source>Birthday</source>
|
||||
</trans-unit>
|
||||
|
||||
<trans-unit id="paginate_overall" xml:space="preserve">
|
||||
<source>Page %s of %s</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="paginate_next">
|
||||
<source>Next</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="paginate_previous">
|
||||
<source>Previous</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backToList">
|
||||
<target>Back to list</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="more">
|
||||
<source>More</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="show_on_map">
|
||||
<source>Show on map</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="no_google_maps_key">
|
||||
<source>No Google Maps key provided with TypoScript</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
|
||||
<file t3:id="1502483828" source-language="en" datatype="plaintext" original="messages" date="2017-08-11T20:37:40Z" product-name="tt_address">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="tt_address">
|
||||
<source>Address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.gender">
|
||||
<source>Gender</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.gender.m">
|
||||
<source>Male (Mr)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.gender.f">
|
||||
<source>Female (Mrs)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.gender.v">
|
||||
<source>Various</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.gender.undefined">
|
||||
<source>Undefined</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.first_name">
|
||||
<source>First Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.middle_name">
|
||||
<source>Middle Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.last_name">
|
||||
<source>Last Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.birthday">
|
||||
<source>Birthday</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.building">
|
||||
<source>Building</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.room">
|
||||
<source>Room</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.organization">
|
||||
<source>Organization</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.position">
|
||||
<source>Position</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.region">
|
||||
<source>Region / State</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.mobile">
|
||||
<source>Mobile</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.skype">
|
||||
<source>Skype</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.twitter">
|
||||
<source>Twitter</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.facebook">
|
||||
<source>Facebook</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.instagram">
|
||||
<source>Instagram</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.tiktok">
|
||||
<source>TikTok</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.linkedin">
|
||||
<source>LinkedIn</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.latitude">
|
||||
<source>Latitude</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.longitude">
|
||||
<source>Longitude</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.title_suffix">
|
||||
<source>Title suffix</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.locationMapWizard">
|
||||
<source>Map wizard for visual selection of coordinates</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.locationMapWizard.close">
|
||||
<source>Close Map Wizard</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address.locationMapWizard.import">
|
||||
<source>Import marker-coordinates</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_tab.contact">
|
||||
<source>Contact</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_tab.address">
|
||||
<source>Address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.name">
|
||||
<source>Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.organization">
|
||||
<source>Organisation</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.address">
|
||||
<source>Address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.building">
|
||||
<source>Building</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.contact">
|
||||
<source>Contact</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.social">
|
||||
<source>Social Networks</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="tt_address_palette.coordinates">
|
||||
<source>Coordinates</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pi_tt_address">
|
||||
<source>Addresses</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="tx-ttaddress">
|
||||
<f:render section="main"/>
|
||||
</div>
|
||||
112
typo3conf/ext/tt_address/Resources/Private/Partials/Address.html
Normal file
112
typo3conf/ext/tt_address/Resources/Private/Partials/Address.html
Normal file
@@ -0,0 +1,112 @@
|
||||
{namespace ttaddr=FriendsOfTYPO3\TtAddress\ViewHelpers}
|
||||
|
||||
<f:section name="address">
|
||||
<f:if condition="{address.address}">
|
||||
<div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
||||
<address>
|
||||
<span itemprop="streetAddress">{address.address}</span><br>
|
||||
<span itemprop="postalCode">{address.zip}</span> <span
|
||||
itemprop="addressLocality">{address.city}</span><br>
|
||||
<span itemprop="addressCountry">{address.country}</span>
|
||||
</address>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="position">
|
||||
<f:if condition="{address.position}">
|
||||
<p class="jobTitle" itemprop="jobTitle"><em>{address.position}</em></p>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="contact">
|
||||
<ul class="list-unstyled">
|
||||
<f:if condition="{address.phone}">
|
||||
<li>
|
||||
<i class="fas fa-phone"></i>
|
||||
{f:translate(key:'label.telephone')}: <a href="tel:{address.cleanedPhone}">
|
||||
<span itemprop="telephone">{address.phone}</span>
|
||||
</a>
|
||||
</li>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{address.mobile}">
|
||||
<li>
|
||||
<i class="fas fa-mobile-alt"></i>
|
||||
{f:translate(key:'label.mobile')}: <a href="tel:{address.cleanedMobile}">
|
||||
<span itemprop="telephone">{address.mobile}</span>
|
||||
</a>
|
||||
</li>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{address.fax}">
|
||||
<li>
|
||||
<i class="fas fa-fax"></i>
|
||||
{f:translate(key:'label.fax')}: <span itemprop="faxNumber">{address.fax}</span>
|
||||
</li>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{address.email}">
|
||||
<li>
|
||||
<i class="fas fa-envelope"></i>
|
||||
{f:translate(key:'label.email')}:
|
||||
<span><f:link.email email="{address.email}" /></span>
|
||||
</li>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{address.www}">
|
||||
<meta itemprop="url" content="{f:uri.typolink(parameter:address.www)}"/>
|
||||
<li>
|
||||
<i class="fas fa-link"></i>
|
||||
{f:translate(key:'label.www')}:
|
||||
<f:link.typolink parameter="{address.www}">{address.wwwSimplified}</f:link.typolink>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{address.birthday}">
|
||||
<meta itemprop="birthDate" content="{address.birthday -> f:format.date(format:'%Y-%m-%d')}">
|
||||
<li>
|
||||
<i class="fas fa-birthday-cake"></i>
|
||||
{f:translate(key:'label.birthday')}: {address.birthday -> f:format.date(format:'%d.%m.%Y')}
|
||||
</li>
|
||||
</f:if>
|
||||
</ul>
|
||||
</f:section>
|
||||
|
||||
<f:section name="social">
|
||||
<f:if condition="{address.skype} || {address.twitter} || {address.facebook} || {address.linkedin}">
|
||||
<ul class="list-inline">
|
||||
<f:if condition="{address.skype}">
|
||||
<li class="list-inline-item">
|
||||
<i class="fab fa-skype" aria-hidden title="{f:translate(key:'label.skype')}"></i>
|
||||
<span class="sr-only">{f:translate(key:'label.skype')}:</span>
|
||||
<a href="skype:{address.skype}?call">{address.skype}</a>
|
||||
<meta itemprop="sameAs" content="skype:{address.skype}?call"/>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{address.twitter}">
|
||||
<li class="list-inline-item">
|
||||
<i class="fab fa-twitter" aria-hidden title="{f:translate(key:'label.twitter')}"></i>
|
||||
<span class="sr-only">{f:translate(key:'label.twitter')}:</span>
|
||||
<a href="https://twitter.com/{address.twitter}" target="_blank">{address.twitter}</a>
|
||||
<meta itemprop="sameAs" content="https://twitter.com/{address.twitter}"/>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{address.facebook}">
|
||||
<li class="list-inline-item">
|
||||
<i class="fab fa-facebook" aria-hidden title="{f:translate(key:'label.facebook')}"></i>
|
||||
<span class="sr-only">{f:translate(key:'label.facebook')}:</span>
|
||||
<a href="https://www.facebook.com/{address.facebook}" target="_blank">{address.facebook}</a>
|
||||
<meta itemprop="sameAs" content="https://www.facebook.com/{address.facebook}"/>
|
||||
</li>
|
||||
</f:if>
|
||||
<f:if condition="{address.linkedin}">
|
||||
<li class="list-inline-item">
|
||||
<i class="fab fa-linkedin" aria-hidden title="{f:translate(key:'label.linkedin')}"></i>
|
||||
<span class="sr-only">{f:translate(key:'label.linkedin')}:</span>
|
||||
<a href="https://www.linkedin.com/in/{address.linkedin}" target="_blank">{address.linkedin}</a>
|
||||
<meta itemprop="sameAs" content="https://www.linkedin.com/in/{address.linkedin}"/>
|
||||
</li>
|
||||
</f:if>
|
||||
</ul>
|
||||
</f:if>
|
||||
</f:section>
|
||||
109
typo3conf/ext/tt_address/Resources/Private/Partials/Full.html
Normal file
109
typo3conf/ext/tt_address/Resources/Private/Partials/Full.html
Normal file
@@ -0,0 +1,109 @@
|
||||
<div class="vcard tt_address_detail" itemscope itemtype="http://schema.org/Person">
|
||||
<h4 itemprop="name">{address.fullName}</h4>
|
||||
<f:render section="position" partial="Address" arguments="{_all}"/>
|
||||
|
||||
<f:if condition="{address.image}">
|
||||
<f:then>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<figure class="figure">
|
||||
<f:image image="{address.firstImage}" width="600"
|
||||
class="figure-img img-fluid img-thumbnail rounded"
|
||||
alt="{address.firstImage.originalResource.alt}"
|
||||
title="{address.firstImage.originalResource.title}"
|
||||
additionalAttributes="{itemprop:'image'}"/>
|
||||
<f:if condition="{address.firstImage.originalResource.description}">
|
||||
<figcaption class="figure-caption">
|
||||
{address.firstImage.originalResource.description ->
|
||||
f:format.nl2br()}
|
||||
</figcaption>
|
||||
</f:if>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<f:render section="content" arguments="{_all}"/>
|
||||
</div>
|
||||
</div>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:render section="content" arguments="{_all}"/>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
|
||||
<f:section name="content">
|
||||
<f:if condition="{address.description}">
|
||||
<div class="description" itemprop="description">
|
||||
{address.description -> f:format.html()}
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
<f:render section="address" partial="Address" arguments="{_all}"/>
|
||||
|
||||
<f:if condition="{address.building} || {address.room}">
|
||||
<ul class="list-inline">
|
||||
<f:if condition="{address.building}">
|
||||
<li class="list-inline-item">
|
||||
{f:translate(key:'label.building')}: {address.building}
|
||||
</li>
|
||||
</f:if>
|
||||
|
||||
<f:if condition="{address.room}">
|
||||
<li class="list-inline-item">
|
||||
{f:translate(key:'label.room')}: {address.room}
|
||||
</li>
|
||||
</f:if>
|
||||
</ul>
|
||||
</f:if>
|
||||
|
||||
<f:render section="contact" partial="Address" arguments="{_all}"/>
|
||||
<f:render section="social" partial="Address" arguments="{_all}"/>
|
||||
|
||||
<f:if condition="{address.image -> f:count()} > 1">
|
||||
<div class="address-image-rows">
|
||||
<div class="row">
|
||||
<f:for each="{address.image}" as="img" iteration="iterator">
|
||||
<f:if condition="{iterator.cycle}>1">
|
||||
<div class="col-md-4">
|
||||
<figure class="figure">
|
||||
<f:if condition="{img.originalResource.link}">
|
||||
<f:then>
|
||||
<f:link.typolink
|
||||
parameter="{img.originalResource.link}"
|
||||
class="media-object {settings.detail.imageClass}"
|
||||
additionalAttributes="{title:img.originalResource.title}">
|
||||
<f:image image="{img}" width="400"
|
||||
alt="{img.originalResource.alt}"
|
||||
title="{img.originalResource.title}"
|
||||
class="figure-img img-fluid img-thumbnail rounded"
|
||||
additionalAttributes="{itemprop:'image'}"/>
|
||||
</f:link.typolink>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a href="{f:uri.image(src:img.originalResource.publicUrl, maxWidth:1000)}"
|
||||
class="media-object {settings.detail.imageClass}"
|
||||
rel="images_tt_address_{address.uid}"
|
||||
title="{img.originalResource.title}"
|
||||
target="_blank">
|
||||
<f:image image="{img}" width="400"
|
||||
alt="{img.originalResource.alt}"
|
||||
title="{img.originalResource.title}"
|
||||
class="figure-img img-fluid img-thumbnail rounded"
|
||||
additionalAttributes="{itemprop:'image'}"/>
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{img.originalResource.description}">
|
||||
<figcaption class="figure-caption">
|
||||
{img.originalResource.description -> f:format.nl2br()}
|
||||
</figcaption>
|
||||
</f:if>
|
||||
</figure>
|
||||
</div>
|
||||
</f:if>
|
||||
</f:for>
|
||||
</div>
|
||||
</div>
|
||||
</f:if>
|
||||
|
||||
</f:section>
|
||||
@@ -0,0 +1,32 @@
|
||||
<div class="vcard" itemscope itemtype="http://schema.org/Person">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-2 addressImage">
|
||||
<f:link.action action="show" arguments="{address : address}"
|
||||
title="{address.fullName}"
|
||||
pageUid="{settings.singlePid}">
|
||||
<f:if condition="{address.image}">
|
||||
<f:media file="{address.firstImage}" width="400" class="img-fluid img-thumbnail rounded"
|
||||
alt="{address.firstImage.originalResource.alt}"
|
||||
title="{address.fullName}"/>
|
||||
</f:if>
|
||||
</f:link.action>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<h3>{address.fullName}</h3>
|
||||
<f:if condition="{address.position}">
|
||||
<p class="position"><em>{address.position}</em></p>
|
||||
</f:if>
|
||||
|
||||
<f:render section="address" partial="Address" arguments="{_all}"/>
|
||||
<f:render section="social" partial="Address" arguments="{_all}"/>
|
||||
|
||||
<f:if condition="{settings.singlePid}">
|
||||
<f:link.action action="show" arguments="{address : address}"
|
||||
title="{address.fullName}"
|
||||
pageUid="{settings.singlePid}" class="btn btn-default">{f:translate(key:'more')}
|
||||
</f:link.action>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<f:widget.paginate objects="{addresses}" as="paginatedAdresses" configuration="{settings.paginate}">
|
||||
<f:for each="{paginatedAdresses}" as="address" iteration="iterator">
|
||||
<f:render partial="ListItem" arguments="{_all}"/>
|
||||
</f:for>
|
||||
</f:widget.paginate>
|
||||
<f:comment><!-- todo: remove with version 8 --></f:comment>
|
||||
@@ -0,0 +1,74 @@
|
||||
{namespace ttaddr=FriendsOfTYPO3\TtAddress\ViewHelpers}
|
||||
|
||||
<f:section name="leaflet">
|
||||
|
||||
<f:render section="rendering" arguments="{_all}"/>
|
||||
|
||||
<f:asset.css identifier="ttaddress-leaflet" href="EXT:tt_address/Resources/Public/Contrib/leaflet-core-1.4.0.css" />
|
||||
<f:asset.css identifier="ttaddress" href="EXT:tt_address/Resources/Public/Styles/basic.css" />
|
||||
<f:asset.script identifier="ttaddress-leaflet-core" src="EXT:tt_address/Resources/Public/JavaScript/leaflet-core-1.4.0.js" />
|
||||
<f:asset.script identifier="ttaddress-leaflet" src="EXT:tt_address/Resources/Public/JavaScript/Frontend/Leaflet.js" />
|
||||
</f:section>
|
||||
|
||||
<f:section name="googleMaps">
|
||||
<f:if condition="{settings.map.googleMaps.key}">
|
||||
<f:then>
|
||||
<f:render section="rendering" arguments="{_all}"/>
|
||||
|
||||
<script src="https://maps.googleapis.com/maps/api/js?key={settings.map.googleMaps.key}"
|
||||
type="text/javascript"></script>
|
||||
<script type="text/javascript" src="{f:uri.resource(path:'JavaScript/Frontend/GoogleMaps.js')}"></script>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="alert alert-danger">{f:translate(key:'no_google_maps_key')}</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="staticGoogleMaps">
|
||||
<f:if condition="{settings.map.staticGoogleMaps.parameters.key}">
|
||||
<f:then>
|
||||
<img src="{ttaddr:staticGoogleMaps(parameters:settings.map.staticGoogleMaps.parameters,addresses:addresses)}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="alert alert-danger">{f:translate(key:'no_google_maps_key')}</div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:section>
|
||||
|
||||
<f:section name="rendering">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<ul class="list-group">
|
||||
<f:for each="{addresses}" as="address" iteration="i">
|
||||
<li id="ttaddress__label-{address.uid}" class="ttaddress__label list-group-item">
|
||||
<strong>{address.fullName}</strong><br>
|
||||
<f:render partial="Address" section="address" arguments="{_all}"/>
|
||||
<a href="#" data-iteration-id="{i.index}" class="ttaddress__markerlink">{f:translate(key:'show_on_map')}</a>
|
||||
</li>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div id="ttaddress__map" data-default-lat="{settings.map.defaultPosition.lat}"
|
||||
data-default-lng="{settings.map.defaultPosition.lng}"></div>
|
||||
<ul id="ttaddress__records">
|
||||
<f:for each="{addresses}" as="address">
|
||||
<div id="ttaddress__record-{address.uid}" data-id="{address.uid}" data-lat="{address.latitude}"
|
||||
data-lng="{address.longitude}" data-icon="icon">
|
||||
<h6>{address.fullName}</h6>
|
||||
<div>
|
||||
<f:render partial="Address" section="address" arguments="{_all}"/>
|
||||
<f:render partial="Address" section="contact" arguments="{_all}"/>
|
||||
<f:if condition="{settings.singlePid}">
|
||||
<f:link.action action="show" arguments="{address : address}" title="{address.fullName}" class="btn"
|
||||
pageUid="{settings.singlePid}">{f:translate(key:'more')}
|
||||
</f:link.action>
|
||||
</f:if>
|
||||
</div>
|
||||
</div>
|
||||
</f:for>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</f:section>
|
||||
@@ -0,0 +1,9 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:ttaddr="http://typo3.org/ns/FriendsOfTYPO3/TtAddress/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:variable name="address">{address.fullName} {f:if(condition: address.phone,then:'☎ {address.phone}')} {f:if(condition: address.addressInOneLine,then:'➤ {address.addressInOneLine}')}</f:variable>
|
||||
<ttaddr:metaTag property="description">{address}</ttaddr:metaTag>
|
||||
<ttaddr:metaTag property="og:description">{address}</ttaddr:metaTag>
|
||||
</html>
|
||||
@@ -0,0 +1,52 @@
|
||||
<ul class="f3-widget-paginator">
|
||||
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
<li class="first">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: 1})}" title="{f:translate(key:'pagination.first')}">
|
||||
<i class="material-icons">first_page</i>
|
||||
</a>
|
||||
</li>
|
||||
</f:comment>
|
||||
<li class="previous">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.previousPageNumber})}" title="{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}">
|
||||
{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}
|
||||
</a>
|
||||
</li>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
<li class="disabled"><span><i class="material-icons">first_page</i></span></li>
|
||||
<li class="disabled"><span>{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}</span></li>
|
||||
</f:comment>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:for each="{pagination.allPageNumbers}" as="page">
|
||||
<li class="{f:if(condition: '{page} == {paginator.currentPageNumber}', then:'current')}">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: page})}">{page}</a>
|
||||
</li>
|
||||
</f:for>
|
||||
|
||||
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
|
||||
<f:then>
|
||||
<li class="next">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.nextPageNumber})}" title="{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}">
|
||||
{f:translate(key:'widget.pagination.next', extensionName: 'fluid')}
|
||||
</a>
|
||||
</li>
|
||||
<f:comment>
|
||||
<li class="last">
|
||||
<a href="{f:uri.action(action:actionName, arguments:{currentPage: pagination.lastPageNumber})}" title="{f:translate(key:'pagination.last')}">
|
||||
last
|
||||
</a>
|
||||
</li>
|
||||
</f:comment>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
<li class="disabled"><span>{f:translate(key:'widget.pagination.previous', extensionName: 'fluid')}</span></li>
|
||||
<li class="disabled"><span>last page</span></li>
|
||||
</f:comment>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</ul>
|
||||
@@ -0,0 +1,40 @@
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="main">
|
||||
<div class="tt_address_list">
|
||||
<f:render section="displayMode_{settings.displayMode}" arguments="{_all}" />
|
||||
</div>
|
||||
</f:section>
|
||||
|
||||
<f:section name="displayMode_list">
|
||||
<!--TYPO3SEARCH_end-->
|
||||
<f:if condition="{settings.hidePagination}">
|
||||
<f:then>
|
||||
<f:for each="{addresses}" as="address" iteration="iterator">
|
||||
<f:render partial="ListItem" arguments="{_all}"/>
|
||||
</f:for>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{settings.paginate.insertAbove}">
|
||||
<f:render partial="Pagination" arguments="{pagination: pagination.pagination, pages: pagination.pages, paginator: pagination.paginator}" />
|
||||
</f:if>
|
||||
<f:for each="{pagination.paginator.paginatedItems}" as="address" iteration="iterator">
|
||||
<f:render partial="ListItem" arguments="{_all}"/>
|
||||
</f:for>
|
||||
<f:if condition="{settings.paginate.insertBelow}">
|
||||
<f:render partial="Pagination" arguments="{pagination: pagination.pagination, pages: pagination.pages, paginator: pagination.paginator}" />
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<!--TYPO3SEARCH_begin-->
|
||||
</f:section>
|
||||
|
||||
<f:section name="displayMode_single">
|
||||
<f:for each="{addresses}" as="address">
|
||||
<f:render partial="Full" arguments="{_all}"/>
|
||||
</f:for>
|
||||
</f:section>
|
||||
|
||||
<f:section name="displayMode_map">
|
||||
<f:render partial="Maps" section="{settings.map.rendering}" arguments="{_all}"/>
|
||||
</f:section>
|
||||
@@ -0,0 +1,6 @@
|
||||
<f:layout name="Default"/>
|
||||
|
||||
<f:section name="main">
|
||||
<f:render partial="MetaTags" arguments="{_all}" />
|
||||
<f:render partial="Full" arguments="{_all}"/>
|
||||
</f:section>
|
||||
@@ -0,0 +1,95 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:variable name="flex">{pi_flexform_transformed.settings}</f:variable>
|
||||
<table class="table table-condensed table-triped">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{f:translate(key:'LLL:EXT:tt_address/Resources/Private/Language/db/locallang.xlf:extbase_title')}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:if condition="{flex.displayMode}">
|
||||
<tr>
|
||||
<th>{f:translate(key:'{_computed.lll}displayMode')}</th>
|
||||
<td>
|
||||
<f:switch expression="{flex.displayMode}">
|
||||
<f:case value="list">{f:translate(key:'{_computed.lll}displayMode.listView')}</f:case>
|
||||
<f:case value="single">{f:translate(key:'{_computed.lll}displayMode.singleView')}
|
||||
</f:case>
|
||||
<f:case value="map">{f:translate(key:'{_computed.lll}displayMode.map')}</f:case>
|
||||
<f:defaultCase>{flex.displayMode}</f:defaultCase>
|
||||
</f:switch>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
<f:if condition="{_computed.singleRecords}">
|
||||
<tr>
|
||||
<th>{f:translate(key:'{_computed.lll}single_records')}</th>
|
||||
<td>
|
||||
<f:for each="{_computed.singleRecords}" as="row">
|
||||
<f:render section="rowElement" arguments="{table:'tt_address', row:row}"/>
|
||||
</f:for>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
<f:if condition="{_computed.pages}">
|
||||
<tr>
|
||||
<th>{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.startingpoint')}
|
||||
</th>
|
||||
<td>
|
||||
<f:for each="{_computed.pages}" as="row">
|
||||
<f:render section="rowElement" arguments="{table:'pages', row:row}"/>
|
||||
</f:for>
|
||||
<f:if condition="{flex.recursive}">
|
||||
{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.recursive')}:
|
||||
{f:translate(key:'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:recursive.I.{flex.recursive}')}
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
<f:if condition="{_computed.singlePid}">
|
||||
<tr>
|
||||
<th>{f:translate(key:'{_computed.lll}singlePid')}</th>
|
||||
<td>
|
||||
<f:render section="rowElement" arguments="{table:'pages', row:_computed.singlePid}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
<f:if condition="{_computed.groups}">
|
||||
<tr>
|
||||
<th>{f:translate(key:'{_computed.lll}group_selection')}</th>
|
||||
<td>
|
||||
<f:for each="{_computed.groups}" as="row">
|
||||
<f:render section="rowElement" arguments="{table:'sys_category', row:row}"/>
|
||||
</f:for>
|
||||
<hr style="margin:5px"/>
|
||||
{f:translate(key:'{_computed.lll}combination')}:
|
||||
<f:if condition="{flex.groupsCombination}">
|
||||
<f:then>
|
||||
{f:translate(key:'{_computed.lll}combination.or')}
|
||||
</f:then>
|
||||
<f:else>
|
||||
{f:translate(key:'{_computed.lll}combination.and')}
|
||||
</f:else>
|
||||
</f:if>
|
||||
<br>
|
||||
<f:if condition="{flex.includeSubcategories}">
|
||||
<core:icon identifier="actions-check" size="small"/>
|
||||
{f:translate(key:'{_computed.lll}includeSubcategories')}
|
||||
</f:if>
|
||||
</td>
|
||||
</tr>
|
||||
</f:if>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<f:section name="rowElement">
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="{table}" data-uid="{row.uid}" title="id={row.uid}">
|
||||
<core:iconForRecord row="{row}" table="{table}"/>
|
||||
</a>
|
||||
{row._computed.title}<br>
|
||||
</f:section>
|
||||
</html>
|
||||
Reference in New Issue
Block a user