...
 
Commits (34)
......@@ -146,7 +146,12 @@
"selector-pseudo-element-colon-notation": "single",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"selector-type-no-unknown": [
true,
{
"ignoreTypes": ["/^typo3-/"]
}
],
"shorthand-property-no-redundant-values": true,
"string-no-newline": true,
"unit-case": "lower",
......
......@@ -30,7 +30,7 @@ NotifyMessage.prototype.show = function (alertClass, alertHeader, alertText) {
spacing: 10,
z_index: 9000,
delay: 5000,
timer: 1000,
timer: 5000,
width: '50%',
url_target: "_blank",
mouse_over: null,
......
......@@ -184,7 +184,7 @@ $container-max-widths: (
//
// $caret-width: .3em !default;
//
// $transition-base: all .2s ease-in-out !default;
$transition-base: 2s ease-in-out !default;
// $transition-fade: opacity .15s linear !default;
// $transition-collapse: height .35s ease !default;
......
......@@ -6,104 +6,37 @@
//
// Styleguide 4.14
.jumbotron-image-wrap {
.jumbotron {
position: relative;
width: auto;
height: 400px;
margin-bottom: 30px;
background: no-repeat center center;
background-size: cover;
background-position: 50% 25%;
overflow: hidden;
padding: 4rem 2rem;
transition: padding $transition-base;
.headerce {
top: 54%;
padding-left: 15px;
padding-right: 15px;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
width: 100%;
&__text * {
color: white;
}
}
.jumbotron-content-wrap {
position: relative;
top: -110px;
.card {
font-size: 1.5rem;
&__card {
background-color: white;
box-shadow: 0 0 16px 1px rgba(81, 81, 81, 0.1);
padding: 2rem;
}
.card-text {
.btn {
margin-bottom: 0;
}
}
}
@media (max-width: 1024px) {
.features-header-image {
height: 400px;
}
}
@media (max-width: 992px) {
.jumbotron-image-wrap {
height: 228px;
@media all and (min-width: 768px) {
padding: 8rem 4rem;
.headerce p {
font-size: 1rem;
}
.headerce-head {
font-size: 2rem;
}
}
.jumbotron-content-wrap {
top: -60px;
.card {
font-size: 1rem;
padding: 0.5rem;
}
}
}
@media (max-width: 767px) {
.jumbotron-image-wrap {
height: auto;
margin-bottom: 0;
.headerce {
&__card {
position: relative;
top: auto;
-webkit-transform: translateY(0);
transform: translateY(0);
color: #333;
.headerce-head {
color: #333;
margin-bottom: 0.4rem;
}
p {
margin-bottom: 0;
color: #333;
}
top: -5rem;
}
}
.jumbotron-content-wrap {
position: relative;
top: auto;
.container {
&__cardwrapper {
margin-top: 0;
}
}
.card {
padding: 0;
}
@media all and (min-width: 1024px) {
padding: 10rem 4rem;
}
}
.page-container {
padding-top: 44px;
}
typo3-universe {
z-index: 1001;
position: absolute;
top: 0;
left: 0;
right: 0;
}
@media (max-width: 991.99px) {
typo3-universe {
position: fixed;
}
.main-header .main-header__bottom {
top: 44px;
}
.main-nav__collapse {
top: 100px;
max-height: calc(100vh - 100px);
}
}
@media (min-width: 992px) {
typo3-universe {
--universe-link-background: #fff;
--universe-link-color: #212121;
--universe-link-hover-background: #f2f2f2;
--universe-link-hover-color: #212121;
--universe-background-color: #fff;
--universe-button-background: #f2f2f2;
--universe-button-color: #212121;
--universe-button-hover-background: #e2e2e2;
--universe-button-hover-color: #212121;
--universe-caret-color: #f49700;
--universe-maxwidth: 1170px;
}
}
......@@ -59,6 +59,7 @@
@import "layout/infoBanner";
@import "layout/alert-fixed";
@import "layout/lightbox";
@import "layout/typo3-universe";
// Components
//
......
This diff is collapsed.
......@@ -7,7 +7,7 @@
"@fancyapps/fancybox": "^3.2.5",
"@fortawesome/fontawesome-free": "^5.5.0",
"baguettebox.js": "^1.9.1",
"bootstrap": "^4.1.3",
"bootstrap": "^4.4.1",
"bootstrap4-notify": "^4.0.3",
"cookieconsent": "^3.1.0",
"datatables.net-bs4": "^1.10.19",
......@@ -24,7 +24,7 @@
"babel-core": "^6.26.3",
"babel-preset-es2015": "^6.24.1",
"babelify": "^8.0.0",
"browser-sync": "^2.26.3",
"browser-sync": "^2.26.7",
"browserify": "^16.2.3",
"gulp": "^4.0.0",
"gulp-autoprefixer": "^4.1.0",
......
......@@ -21,11 +21,15 @@ stages:
test:typoscript:
stage: test
image: composer:1
variables:
GIT_STRATEGY: "clone"
before_script:
- composer global require helmich/typo3-typoscript-lint
- composer global require helmich/typo3-typoscript-lint --update-with-all-dependencies
script:
- /tmp/vendor/bin/typoscript-lint -c typoscript-lint.yml --fail-on-warnings
allow_failure: true
except:
- assets
test:php:
stage: test
......@@ -90,7 +94,7 @@ layout:
- ssh-keyscan -p ${STAGE_PORT} ${STAGE_HOST} >> /root/.ssh/known_hosts
- ssh-keyscan -p ${PRODUCTION_PORT} ${PRODUCTION_HOST} >> /root/.ssh/known_hosts
- composer config cache-dir /cache/composer
- composer global require deployer/deployer
- composer global require deployer/deployer:6.6.0 --update-with-dependencies
- composer global require deployer/recipes
script:
- /tmp/vendor/bin/dep --file=./.gitlab-ci/deployer/deploy.php deploy -vv ${CI_BUILD_REF_NAME}
......@@ -117,12 +121,12 @@ deploy-develop:
dump-assets:
stage: dump
image: ubuntu:16.04
image: ubuntu:18.04
variables:
LANG: de_DE.UTF-8
before_script:
- apt-get update
- apt-get install -y rsync openssh-client
- apt-get install -y rsync openssh-client php7.2-mysql
- mkdir -p /root/.ssh/
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY_STAGE" | ssh-add -
......@@ -133,7 +137,8 @@ dump-assets:
- ./assets/
expire_in: '1d'
script:
- rsync -ah -e "ssh -p ${STAGE_PORT}" --exclude=services --exclude=_processed_ --exclude=typo3conf ${DUMP_USER}@${STAGE_HOST}:ci/shared/ ./assets/ --delete
- mkdir -p ./assets/private/fileadmin/
- rsync -ah -e "ssh -p ${STAGE_PORT}" --exclude=_processed_ ${DUMP_USER}@${STAGE_HOST}:ci/shared/private/fileadmin/ ./assets/private/fileadmin/ --delete
- ssh -p${STAGE_PORT} ${DUMP_USER}@${STAGE_HOST} "${PHP_EXECUTABLE} ./ci/current/vendor/bin/typo3cms database:export --exclude-tables ${DUMP_EXCLUDE_TABLES_LIST} | gzip -9 -c" > ./assets/db.sql.gz
dependencies:
when:
......
......@@ -4,6 +4,7 @@
lib.dynamicContent = COA
lib.dynamicContent {
wrap = <!--TYPO3SEARCH_begin-->|<!--TYPO3SEARCH_end-->
5 = LOAD_REGISTER
5 {
colPos.cObject = TEXT
......
# loaded ts after install the ext:gridelements
[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('gridelements')]
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.typoscript">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.typoscript">
[global]
lib.gridelements.defaultGridSetup.cObject =< lib.contentElement
......
......@@ -5,5 +5,12 @@ page {
includeJSFooterlibs {
t3olayout = EXT:t3olayout/Resources/Public/JavaScript/main.min.js
typo3infrastructure = https://typo3.azureedge.net/typo3infrastructure/universe/dist/webcomponents-loader.js
typo3infrastructure.external = 1
typo3universe = https://typo3.azureedge.net/typo3infrastructure/universe/dist/typo3-universe.js
typo3universe {
external = 1
type = module
}
}
}
# TYPO3 Universe Header
The header bar is added via an external JS.
To highlight the active state, a typoScript constant must be set:
`{$settings.platformKey}`
Possible settings are:
* community
* extensions
![02-universe-header-element](/Users/stefan/Workspace/TYPO3/typo3.org/private/typo3conf/ext/t3olayout/Documentation/Functionality/img/02-universe-header-element.png)
......@@ -3,3 +3,4 @@
## Functionality
* [Feedback Form](Functionality/01-FeedbackForm.md)
* [TYPO3 universe Header](Functionality/02-universe-header-element.md)
......@@ -19,13 +19,6 @@
<header class="container-fluid main-header">
<div class="row clearfix main-header__top">
<div class="col-12 pull-right">
<div class="container m-auto text-right">
<f:render partial="Page/Meta" section="Meta" arguments="{_all}" />
</div>
</div>
</div>
<div class="main-header__bottom">
<div class="container m-auto">
<f:render partial="Page/Navigation" section="Navigation" arguments="{_all}" />
......
<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:section name="Meta">
<ul class="navbar-nav main-nav__list main-nav__meta-nav">
<f:for each="{metanavigation}" as="metaitem">
<li class="main-nav__meta-nav_item{f:if(condition: metaitem.active, then: ' active', else: '')}">
<f:link.typolink title="{metaitem.data.description}" parameter="{metaitem.link}">
<f:if condition="{metaitem.meta_icon}">
<f:image class="main-nav__meta-nav_item-icon img-fluid" image="{metaitem.meta_icon.0}" alt="{metaitem.meta_icon.0.description}" />
</f:if>
{metaitem.title}
</f:link.typolink>
</li>
</f:for>
</ul>
</f:section>
</div>
......@@ -33,8 +33,6 @@
</form>
<!-- END OF solr search form -->
</div>
<f:render partial="Page/Meta" section="Meta" arguments="{_all}" />
</div>
</div>
</nav>
......
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="Default"/>
<f:section name="Main">
<div class="jumbotron-image-wrap">
<f:if condition="{images.0}">
<picture class="features-header-image__image">
<source srcset="{f:uri.image(image: images.0, width:'1700c', maxWidth: '3250c', treatIdAsReference: 1)}"
media="(min-width: 1260px)">
<source srcset="{f:uri.image(image: images.0, width:'1260c', maxWidth: '3250c', treatIdAsReference: 1)}"
media="(min-width: 990px)">
<source srcset="{f:uri.image(image: images.0, width:'990c', maxWidth: '3250c', treatIdAsReference: 1)}"
media="(min-width: 780px)">
<source srcset="{f:uri.image(image: images.0, width:'780c', maxWidth: '3250c', treatIdAsReference: 1)}"
media="(min-width: 480px)">
<source srcset="{f:uri.image(image: images.0, width:'480c', maxWidth: '3250c', treatIdAsReference: 1)}"
media="(max-width: 479px)">
<img
src="{f:uri.image(image: images.0)}"
width="{dimensions.width}"
height="{dimensions.height}"
alt="{file.alternative}"
title="{file.title}"/>
</picture>
</f:if>
<f:if condition="{data.header} || {data.subheader}">
<div class="container">
<div class="row">
<div class="headerce">
<f:if condition="{data.header}">
<h1 class="headerce-head">{data.header}</h1>
</f:if>
<f:if condition="{data.subheader}">
<p class="headerce-p">
{data.subheader}
</p>
</f:if>
</div>
</div>
<div class="jumbotron" style="background-image: url('{f:uri.image(image: images.0)}');">
<div class="container">
<div class="jumbotron__text">
<f:if condition="{data.header}">
<h1 class="headerce-head">{data.header}</h1>
</f:if>
<f:if condition="{data.subheader}">
<p class="headerce-p">{data.subheader}</p>
</f:if>
</div>
</f:if>
</div>
</div>
<f:if condition="{data.bodytext}">
<div class="jumbotron-content-wrap">
<div class="container">
<div class="row">
<div class="col">
<div class="card">
<div class="card-body">
<div class="card-body__content">
<div class="card-text">
{data.bodytext -> f:format.html()}
</div>
</div>
</div>
</div>
</div>
</div>
<f:if condition="{data.bodytext}">
<div class="container jumbotron__cardwrapper">
<div class="jumbotron__card">
<p>{data.bodytext -> f:format.html()}</p>
</div>
</div>
</f:if>
</div>
</f:if>
</f:section>
</html>
......@@ -3,6 +3,10 @@
data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">
<typo3-universe active="{settings.platformKey}">
<!-- Fallback to consume the defined space on loading and no component support -->
<div style="display: block; height: 44px; background-color: #fff;"></div>
</typo3-universe>
<div class="page-container mx-auto">
<f:render section="Header" partial="Page/Header" arguments="{_all}" />
<main>
......
......@@ -297,12 +297,12 @@
</f:section>
<f:section name="pictureset">
<picture>
<source srcset="{f:uri.image(image: file, width: dimensions.width, height: dimensions.height, maxWidth: maxWidth.full, cropVariant: 'default')}" media="(min-width: 1200px)">
<source srcset="{f:uri.image(image: file, width: dimensions.width, height: dimensions.height, maxWidth: maxWidth.desktop, cropVariant: 'default')}" media="(min-width: 992px)">
<source srcset="{f:uri.image(image: file, width: dimensions.width, height: dimensions.height, maxWidth: maxWidth.tablet, cropVariant: 'tablet')}" media="(min-width: 768px)">
<source srcset="{f:uri.image(image: file, width: dimensions.width, height: dimensions.height, maxWidth: maxWidth.phone, cropVariant: 'mobile')}" media="(max-width: 767px)">
<source srcset="{f:uri.image(image: file, maxWidth: 1200, cropVariant: 'default')}" media="(min-width: 1200px)">
<source srcset="{f:uri.image(image: file, maxWidth: 1200, cropVariant: 'default')}" media="(min-width: 992px)">
<source srcset="{f:uri.image(image: file, maxWidth: 992, cropVariant: 'tablet')}" media="(min-width: 768px)">
<source srcset="{f:uri.image(image: file, maxWidth: 768, cropVariant: 'mobile')}" media="(max-width: 767px)">
<!---Fallback--->
<f:image class="img-fluid" image="{file}" width="{dimensions.width}" height="{dimensions.height}" maxWidth="{maxWidth.full}" cropVariant="{default}" alt="{file.alternative}" title="{file.title}" />
<f:image class="img-fluid" image="{file}" maxWidth="1200" cropVariant="{default}" alt="{file.alternative}" title="{file.title}" />
</picture>
</f:section>
</html>
......@@ -3,6 +3,10 @@
data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">
<typo3-universe active="{settings.platformKey}">
<!-- Fallback to consume the defined space on loading and no component support -->
<div style="display: block; height: 44px; background-color: #fff;"></div>
</typo3-universe>
<div class="page-container page-template-404 mx-auto">
<f:render section="Header" partial="Page/Header" arguments="{_all}" />
<main>
......
......@@ -3,6 +3,10 @@
data-namespace-typo3-fluid="true">
<f:layout name="Default"/>
<f:section name="Main">
<typo3-universe active="{settings.platformKey}">
<!-- Fallback to consume the defined space on loading and no component support -->
<div style="display: block; height: 44px; background-color: #fff;"></div>
</typo3-universe>
<f:render section="Header" partial="Page/Header" arguments="{_all}"/>
<main>
<f:render section="Slider" partial="Page/Slider" arguments="{_all}"/>
......
......@@ -3,6 +3,10 @@
data-namespace-typo3-fluid="true">
<f:layout name="Default"/>
<f:section name="Main">
<typo3-universe active="{settings.platformKey}">
<!-- Fallback to consume the defined space on loading and no component support -->
<div style="display: block; height: 44px; background-color: #fff;"></div>
</typo3-universe>
<div class="page-container mx-auto">
<f:render section="Header" partial="Page/Header" arguments="{_all}" />
<main>
......
......@@ -3,10 +3,13 @@
data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">
<typo3-universe active="{settings.platformKey}">
<!-- Fallback to consume the defined space on loading and no component support -->
<div style="display: block; height: 44px; background-color: #fff;"></div>
</typo3-universe>
<div class="page-container mx-auto">
<f:render section="Header" partial="Page/Header" arguments="{_all}" />
<main>
<!--TYPO3SEARCH_begin-->
<div class="container">
<div class="row">
<div class="col-md-8">
......@@ -21,7 +24,6 @@
<f:if condition="{data.t3o_discourse}">
<f:render partial="Page/Discourse" arguments="{_all}"></f:render>
</f:if>
<!--TYPO3SEARCH_end-->
</main>
<f:render section="Footer" partial="Page/Footer" arguments="{_all}" />
......
......@@ -8,8 +8,8 @@ $EM_CONF[$_EXTKEY] = [
'category' => 'extension',
'constraints' => [
'depends' => [
'typo3' => '8.7.0-9.5.99',
'fluid_styled_content' => '8.7.0-9.5.99'
'typo3' => '9.5.0-9.5.99',
'fluid_styled_content' => '9.5.0-9.5.99'
],
'conflicts' => [
],
......@@ -25,5 +25,5 @@ $EM_CONF[$_EXTKEY] = [
'clearCacheOnLoad' => 1,
'author' => 't3o team',
'author_email' => 't3o@typo3.org',
'version' => '3.7.0',
'version' => '4.1.1',
];
......@@ -48,3 +48,8 @@ $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['custom'] = 'EXT:t3olayout/Configu
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['nolink'] = 'EXT:t3olayout/Configuration/Yaml/Rte/Nolink.yaml';
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['backend']['loginBackgroundImage'] = 'EXT:t3olayout/Resources/Public/Images/login_background.jpg';
// Deactivate deprecation log for stage and production
if (\TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext() !== 'Development') {
$GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['deprecations']['writerConfiguration'][\TYPO3\CMS\Core\Log\LogLevel::NOTICE] = [];
}