Commit 34944f76 authored by Thomas Löffler's avatar Thomas Löffler

Merge branch 'develop' into 'master'

Develop

See merge request !211
parents d5bd8c35 7010275a
......@@ -2,6 +2,7 @@
img {
max-width: 100%;
height: auto;
width: inherit;
}
.row {
......
......@@ -24,11 +24,17 @@
.slider-element-cta-container {
color: #fff;
padding: 1rem;
&._background {
background-color: rgba(255, 255, 255, 0.7);
}
h3 {
font-size: calculate_rem(60);
font-family: $headlineFont;
margin: 0;
line-height: 1.1;
}
p {
......@@ -60,7 +66,7 @@
.slick-slide {
height: calculate_rem(100);
padding: calculate_rem(20);
padding: calculate_rem(15);
background: #fff;
display: flex;
flex-direction: column;
......@@ -73,10 +79,14 @@
font-weight: normal;
padding: calculate_rem(2);
margin: 0;
line-height: 1.1;
font-size: calculate_rem(15);
}
h3 {
font-weight: bold;
line-height: 1.1;
font-size: calculate_rem(16);
}
&.slick-current {
......@@ -131,3 +141,14 @@
}
}
}
.landing-slick-slider,
.landing-slick-slider-nav {
opacity: 0;
transition: opacity 0.2s ease-in-out;
position: relative;
&.slick-initialized {
opacity: 1;
}
}
......@@ -2,6 +2,9 @@
position: relative;
max-width: 480px;
margin: 30px auto;
transition: all 0.25s ease;
@include box-shadow();
&._layout-0 {
h3 {
......@@ -9,13 +12,8 @@
}
&:hover {
@include linear-gradient(-45deg, $t3_keyColor 0%, $support_OrangeLight 100%);
img,
h3,
p {
color: white;
}
box-shadow: 0 3px 4px 2px rgba(81, 81, 81, 0.2);
margin-top: 28px;
}
}
......
......@@ -8,8 +8,8 @@
min-height: calculate_rem(450);
p {
max-height: 3rem;
max-height: 3em;
overflow: hidden;
color: $greyLight;
}
}
.footer {
background-color: $greySuperlight;
padding-top: calculate_rem(217);
padding-top: calculate_rem(35);
padding-bottom: calculate_rem(35);
> .container {
margin-top: 0;
margin-bottom: 0;
}
.downloadT3 {
margin-bottom: calculate_rem(70);
......@@ -22,6 +28,7 @@
.button-container {
position: absolute;
bottom: 0;
right: 0;
.btn-primary {
margin: 0 calculate_rem(20) 0 0;
......@@ -45,9 +52,29 @@
}
}
.footerNavigation {
h2 {
text-transform: uppercase;
font-size: calculate_rem(16);
font-family: $primaryFont;
font-weight: 600;
color: $greyDark;
margin-bottom: calculate_rem(21);
}
ul {
margin: 0;
padding: 0;
li {
font-size: calculate_rem(16);
}
}
}
.logo {
margin: 0 0 calculate_rem(20) 0;
width: calculate_rem(200);
width: calculate_rem(160);
justify-content: flex-start;
}
......
......@@ -98,6 +98,7 @@
&__list {
padding-left: 20px;
z-index: 2;
@media (max-width: 991px) {
padding: 0;
......@@ -371,16 +372,18 @@
position: absolute;
height: 100%;
top: 0;
right: 0;
left: 0;
width: 0;
padding-right: 160px;
padding-right: 0;
will-change: transform;
transition: width 0.3s ease;
transition: visibility 0.5s ease;
transform-origin: right;
overflow-x: hidden;
&._visible {
width: 100%;
z-index: 3;
max-width: 732px;
}
.typeahead {
......
.tx-solr {
.results-list {
padding-left: 1rem;
}
.results-entry {
color: $t3_keyColor;
font-weight: bold;
font-size: 0.83em;
h5 {
font-size: inherit;
}
}
}
......@@ -84,6 +84,7 @@
@import "layout/event";
@import "layout/404";
@import "layout/typo3_default";
@import "layout/solr.scss";
// Modules
@import "components/slider";
......
<?php
namespace T3o\T3olayout\ViewHelpers;
/**
* This file is taken of the "news" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*/
use TYPO3\CMS\Core\Page\PageRenderer;
use TYPO3\CMS\Core\Utility\GeneralUtility;
/**
* ViewHelper to render meta tags
*
* # Example: Basic Example: News title as og:title meta tag
* <code>
* <t3o:metaTag property="og:title" content="{record.title}" />
* </code>
* <output>
* <meta property="og:title" content="TYPO3 is awesome" />
* </output>
*
* # Example: Force the attribute "name"
* <code>
* <t3o:metaTag name="keywords" content="{record.keywords}" />
* </code>
* <output>
* <meta name="keywords" content="tag 1, tag 2" />
* </output>
*/
class MetaTagViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
{
/**
* @var string
*/
protected $tagName = 'meta';
/**
* Arguments initialization
*
*/
public function initializeArguments()
{
$this->registerTagAttribute('property', 'string', 'Property of meta tag');
$this->registerTagAttribute('name', 'string', 'Content of meta tag using the name attribute');
$this->registerTagAttribute('content', 'string', 'Content of meta tag');
}
/**
* Renders a meta tag
*
* @param bool $useCurrentDomain If set, current domain is used
* @param bool $forceAbsoluteUrl If set, absolute url is forced
*/
public function render($useCurrentDomain = false, $forceAbsoluteUrl = false)
{
// set current domain
if ($useCurrentDomain) {
$this->tag->addAttribute('content', GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
}
// prepend current domain
if ($forceAbsoluteUrl) {
$path = $this->arguments['content'];
if (!GeneralUtility::isFirstPartOfStr($path, GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))) {
$this->tag->addAttribute('content',
rtrim(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'), '/')
. '/'
. ltrim($this->arguments['content'], '/')
);
}
}
if ($useCurrentDomain || (isset($this->arguments['content']) && !empty($this->arguments['content']))) {
$pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
$pageRenderer->addMetaTag($this->tag->render());
}
}
}
<?php
namespace T3o\T3olayout\ViewHelpers;
/**
* This file is taken of the "news" Extension for TYPO3 CMS.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*/
use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
/**
* ViewHelper to render the page title
*
* # Example: Basic Example
* # Description: Render the content of the VH as page title
* <code>
* <t3o:titleTag>{newsItem.title}</n:titleTag>
* </code>
* <output>
* <title>TYPO3 is awesome</title>
* </output>
*
*/
class TitleTagViewHelper extends AbstractViewHelper implements CompilableInterface
{
use CompileWithRenderStatic;
/**
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
*/
public static function renderStatic(
array $arguments,
\Closure $renderChildrenClosure,
RenderingContextInterface $renderingContext
) {
$content = trim($renderChildrenClosure());
if (!empty($content)) {
$GLOBALS['TSFE']->altPageTitle = $content;
$GLOBALS['TSFE']->indexedDocTitle = $content;
}
}
}
......@@ -67,7 +67,8 @@ $GLOBALS['TCA']['tt_content']['types']['ce_teaserbox'] = array_replace_recursive
hidden;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:field.default.hidden,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.extended,
--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category,categories
--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category,categories,
--div--;Multi Content,multi_content_parent,multi_content_column
',
'columnsOverrides' => [
'bodytext' => ['config' => ['enableRichtext' => true]],
......
......@@ -30,13 +30,15 @@ return [
'interface' => [
'showRecordFieldList' => '
hidden,
header
header,
showcontent
',
],
'types' => [
'1' => [
'showitem' => '
header,
showcontent,
subheader,
buttonlink,
buttonlable,
......@@ -154,6 +156,39 @@ return [
'eval' => 'trim,required'
],
],
'showcontent' => [
'exclude' => 0,
'label' => 'Hide the Headline on the slide',
'config' => [
'type' => 'check',
],
],
'showcontent' => [
'exclude' => 1,
'label' => 'Content view:',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'default' => '2',
'items' => [
[
'Hide',
0
],
[
'Show without background',
1
],
[
'Show with background',
2
]
],
'allowNonIdValues' => true,
]
],
'subheader' => [
'exclude' => 0,
'label' => 'Subheader',
......
#wrap uploads with container by default
tt_content.uploads.stdWrap.outerWrap = <div class="container">|</div>
\ No newline at end of file
tt_content.uploads.stdWrap.outerWrap = <div class="container">|</div>
lib {
loginPid = TEXT
loginPid.value = {$styles.content.loginform.pid}
forgotPasswordPageURL = TEXT
forgotPasswordPageURL.value = {$tx_t3olayout.page.forgotPasswordURL}
signUpPageURL = TEXT
signUpPageURL.value = {$tx_t3olayout.page.signUpURL}
}
plugin.tx_felogin_pi1 {
......
......@@ -4,7 +4,7 @@
<f:if condition="{data.frame_class} != none">
<f:then>
<div id="c{data.uid}" class="frame frame-{data.frame_class} frame-type-{data.CType} frame-layout-{data.layout}{f:if(condition: data.space_before_class, then: ' frame-space-before-{data.space_before_class}')}{f:if(condition: data.space_after_class, then: ' frame-space-after-{data.space_after_class}')}">
<div id="c{data.uid}" class="frame frame-{data.frame_class} frame-type-{data.CType} frame-layout-{data.layout}{f:if(condition: data.space_before_class, then: ' frame-space-before-{data.space_before_class}')}{f:if(condition: data.space_after_class, then: ' frame-space-after-{data.space_after_class}')} {f:render(partial: 'ContentElements/CardClasses', arguments:_all) -> f:spaceless()}">
<f:if condition="{data._LOCALIZED_UID}">
<a id="c{data._LOCALIZED_UID}"></a>
</f:if>
......
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:if condition="{data.frame_class} == 200"> card card-size-small</f:if>
<f:if condition="{data.frame_class} == 201"> card card-size-medium</f:if>
<f:if condition="{data.frame_class} == 202"> card card-size-large</f:if>
</html>
......@@ -37,8 +37,8 @@
<input class="form-control" name="pass" placeholder="Password" data-rsa-encryption onfocus="rsaauthInit()" type="password">
<div class="d-flex justify-content-between">
<button type="submit" class="btn btn-secondary btn-lg">Login</button>
<button type="button" class="btn btn-primary btn-lg" type="submit">Sign up</button>
<a href="{f:cObject(typoscriptObjectPath: 'lib.signUpPageURL')}" class="btn btn-primary btn-lg">Sign up</a>
</div>
<a href="#" class="small">Forgot password?</a>
<a href="{f:cObject(typoscriptObjectPath: 'lib.forgotPasswordPageURL')}" class="small">Forgot password?</a>
</form>
</html>
......@@ -37,27 +37,25 @@
aria-hidden="true"></a>
</div>
</div>
<div class="row">
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent1')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent2')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent3')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent4')}
<div class="col-md-8 col-sm-12">
<div class="container footerNavigation">
<div class="row">
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent1')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent2')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent3')}
</div>
<div class="col-md-3">
{f:cObject(typoscriptObjectPath: 'lib.footercontent4')}
</div>
</div>
</div>
</div>
</div>
<div class="sponsors">
<span>Hosting Sponsors</span>
<div class="sponsor-logos">
{f:cObject(typoscriptObjectPath: 'lib.sponsorlogos')}
</div>
</div>
</div>
</footer>
</f:section>
......
......@@ -2,7 +2,7 @@
xmlns:f="http://xsd.helhum.io/ns/typo3/cms-fluid/master/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:section name="Slider">
<div class="container-fluid landing-slider-wrapper">
<div class="landing-slider-wrapper">
<div class="landing-slick-slider">
<div class="slider-element slider-element-1"
style="background-image: url(https://images.unsplash.com/photo-1448906654166-444d494666b3?dpr=1&auto=format&fit=crop&w=1500&h=1000&q=80&cs=tinysrgb&crop=)">
......@@ -86,4 +86,4 @@
</div>
</div>
</f:section>
</div>
\ No newline at end of file
</div>
......@@ -11,7 +11,7 @@
<ul class="nav nav-tabs listing__nav" role="tablist">
<f:for each="{listingHeaders.0.header.0}" as="header" iteration="tabIterator">
<li class="nav-item listing__nav-item">
<a class="nav-link listing__nav-item_link px-lg-0 py-lg-3{f:if(condition:'{tabIterator.isFirst}',then:' active')}" data-toggle="tab" href="#tab{tabIterator.cycle}" role="tab">
<a class="nav-link listing__nav-item_link px-lg-0 py-lg-3{f:if(condition:'{tabIterator.isFirst}',then:' active')}" data-toggle="tab" href="#tab-{data.uid}-{tabIterator.cycle}" role="tab">
{header}
</a>
</li>
......@@ -20,7 +20,7 @@
<div class="tab-content listing__tabs">
<f:for each="{listingItems}" as="listingItem" iteration="listingItemIterator">
<div class="tab-pane listing__tabs-pane{f:if(condition:'{listingItemIterator.isFirst}',then:' active')}" id="tab{listingItemIterator.cycle}" role="tabpanel">
<div class="tab-pane listing__tabs-pane{f:if(condition:'{listingItemIterator.isFirst}',then:' active')}" id="tab-{data.uid}-{listingItemIterator.cycle}" role="tabpanel">
<f:cObject typoscriptObjectPath="lib.tx_listing.contentElementRendering">{listingItem.data.uid}</f:cObject>
<f:link.page pageUid="{settings.newsListPid}" class="btn btn-primary py-lg-3">Show more</f:link.page>
</div>
......
......@@ -12,9 +12,7 @@
<div class="card-container">
<f:for each="{data.multi_content}" as="row">
<f:for each="{row}" as="element">
<div class="card {f:if(condition:'{element.frame_class} == 200', then:'card-size-small')}{f:if(condition:'{element.frame_class} == 201', then:'card-size-medium')}{f:if(condition:'{element.frame_class} == 202', then:'card-size-medium')}">
<f:cObject typoscriptObjectPath="lib.multi_content_element" data="{element.uid}" />
</div>
<f:cObject typoscriptObjectPath="lib.multi_content_element" data="{element.uid}" />
</f:for>
</f:for>
</div>
......@@ -111,4 +109,4 @@
</f:for>
</div>
</f:section>
</div>
\ No newline at end of file
</div>
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://xsd.helhum.io/ns/typo3/cms-fluid/master/ViewHelpers"
data-namespace-typo3-fluid="true">
<div xmlns="http://www.w3.org/1999/xhtml" lang="en" xmlns:f="http://xsd.helhum.io/ns/typo3/cms-fluid/master/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="ContentElements/CustomDefault" />
<f:section name="Main">
<div class="container-fluid landing-slider-wrapper">
<div class="landing-slider-wrapper">
<div class="landing-slick-slider js__landing-slick-slider">
<f:for each="{slides}" as="SliderItems" iteration="i">
<div class="slider-element slider-element-{i.cycle}"
style="background-image: url({f:uri.image(image:SliderItems.media.0, maxWidth: 1980)})">
<div class="container slider-element-cta-container">
<f:if condition="{SliderItems.data.header}">
<h3>{SliderItems.data.header}</h3>
</f:if>
<f:if condition="{SliderItems.data.subheader}">
<p>{SliderItems.data.subheader}</p>
</f:if>
<f:if condition="{SliderItems.data.buttonlink}">
<div class="button-container">
<f:link.typolink class="btn btn-primary" parameter="{SliderItems.data.buttonlink}">
<f:if condition="{SliderItems.data.buttonlable}" then="{SliderItems.data.buttonlable}" else="Default Text?" />
</f:link.typolink>
</div>
</f:if>
</div>
<div class="slider-element slider-element-{i.cycle}" style="background-image: url({f:uri.image(image:SliderItems.media.0, maxWidth: 1980)})">
<f:if condition="{SliderItems.data.showcontent} != 0">
<div class="slider-element-cta-container{f:if(condition: '{SliderItems.data.showcontent} == 1', then: ' ')}{f:if(condition: '{SliderItems.data.showcontent} == 2', then: ' _background')}">
<f:if condition="{SliderItems.data.header}">
<h3>{SliderItems.data.header}</h3>
</f:if>
<f:if condition="{SliderItems.data.subheader}">
<p>{SliderItems.data.subheader}</p>
</f:if>
<f:if condition="{SliderItems.data.buttonlink}">
<div class="button-container">
<f:link.typolink class="btn btn-primary" parameter="{SliderItems.data.buttonlink}">
<f:if condition="{SliderItems.data.buttonlable}" then="{SliderItems.data.buttonlable}" else="Default Text?" />
</f:link.typolink>
</div>
</f:if>
</div>
</f:if>
</div>
</f:for>
</div>
......
......@@ -2,7 +2,7 @@
<f:layout name="Default" />
<f:section name="Main">
<div class="container">
<div id="c{data.uid}">
<div id="c{data.uid}" class="{f:render(partial: 'ContentElements/CardClasses', arguments:_all) -> f:spaceless()}">
<f:if condition="{gallery.position.vertical} === above || {gallery.position.vertical} === below">
<f:then>
<f:variable name="textCol" value="col-md-12" />
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Template for the search results view for EXT:solr</title>
</head>
<body>
......@@ -53,25 +54,11 @@
<!-- ###SOLR_SEARCH_RESULTS### begin -->
###RESULTS.SEARCHED_FOR###
###RESULTS.FOUND###
###RESULTS.RANGE###
<p>###RESULTS.SEARCHED_FOR###
###RESULTS.FOUND###