Skip to content

Commit

Permalink
v1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
schloram committed Aug 14, 2020
0 parents commit 3e85405
Show file tree
Hide file tree
Showing 19 changed files with 814 additions and 0 deletions.
33 changes: 33 additions & 0 deletions Configuration/TCA/Overrides/pages.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php
defined('TYPO3_MODE') or die ('Access denied.');

$GLOBALS['TCA']['pages']['types'][87]['showitem'] = '
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;;standard,
--palette--;;editorial,
--palette--;;title,
--palette--;;abstract,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata,
--palette--;;metatags,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance,
--palette--;;layout,
--palette--;;replace,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,
--palette--;;links,
--palette--;;caching,
--palette--;;miscellaneous,
--palette--;;module,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.resources,
--palette--;;media,
--palette--;;config,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.access,
--palette--;;visibility,
--palette--;;access,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
categories,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,
rowDescription,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended,
';
13 changes: 13 additions & 0 deletions Configuration/TCA/Overrides/sys_template.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php
defined('TYPO3_MODE') or die ('Access denied.');

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'flexible_news',
'Configuration/TypoScript/',
'Flexible News Content Elements'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'flexible_news',
'Configuration/TypoScript/Styling/',
'Flexible News CSS (optional)'
);
3 changes: 3 additions & 0 deletions Configuration/TypoScript/Styling/setup.typoscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
page.includeCSS {
flexible_news = EXT:flexible_news/Resources/Public/Css/FlexibleNews.css
}
8 changes: 8 additions & 0 deletions Configuration/TypoScript/constants.typoscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
plugin.tx_flexiblenews {
# cat=flexible_news/a1; type=string; label= Path of Fluid Templates for all defined content elements
templateRootPath =
# cat=flexible_news/a2; type=string; label= Path of Fluid Partials for all defined content elements
partialRootPath =
# cat=flexible_news/a3; type=string; label= Path of Fluid Layouts for all defined content elements
layoutRootPath =
}
16 changes: 16 additions & 0 deletions Configuration/TypoScript/setup.typoscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
lib.contentElement {
templateRootPaths {
32 = EXT:flexible_news/Resources/Private/Templates/PageList
33 = {$plugin.tx_flexiblenews.templateRootPath}
}

partialRootPaths {
32 = EXT:flexible_news/Resources/Private/Partials/PageList
33 = {$plugin.tx_flexiblenews.partialRootPath}
}

layoutRootPaths {
32 = EXT:flexible_news/Resources/Private/Layouts/PageList
33 = {$plugin.tx_flexiblenews.layoutRootPath}
}
}
9 changes: 9 additions & 0 deletions Configuration/Yaml/flexible_pages/news/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dokType: 87
configuration:
label: 'News'
iconSet:
defaultIcon:
source: 'EXT:flexible_news/Resources/Public/Icons/apps-pagetree-flexiblenews.svg'
hideInMenuIcon:
source: 'EXT:flexible_news/Resources/Public/Icons/apps-pagetree-flexiblenews-hideinmenu.svg'
isDraggableInNewPageDragArea: true
12 changes: 12 additions & 0 deletions Resources/Private/Language/locallang.xlf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1517337922" source-language="en" datatype="plaintext" original="messages" date="2018-01-30T18:45:22Z"
product-name="flexible_pages">
<header/>
<body>
<trans-unit id="dateFormat">
<source>%m/%d/%Y</source>
</trans-unit>
</body>
</file>
</xliff>
19 changes: 19 additions & 0 deletions Resources/Private/Partials/PageList/News/Footer.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<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"
>
<div class="FlexibleNewsPreviewFooter">
<f:if condition="{keywords}">
<core:icon identifier="actions-tag"/>
{keywords}
<f:if condition="{author.name}">
&nbsp;&nbsp;
</f:if>
</f:if>
<f:if condition="{author.name}">
<core:icon identifier="actions-user"/>
{author.name} {f:if(condition: author.email, then: '({author.email})')}
</f:if>
</div>
</html>
56 changes: 56 additions & 0 deletions Resources/Private/Partials/PageList/News/Header.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<div class="FlexibleNewsPreviewHeader">
<f:if condition="{media}">
<div class="FlexibleNewsPreviewHeader-image">
<f:for
each="{media}"
as="mediaItem"
>
<f:render
partial="Media/Type"
arguments="{file: mediaItem, settings: settings}"
/>
</f:for>
</div>
</f:if>
<f:if condition="{topline.date || topline.categories}">
<div class="FlexibleNewsPreviewHeader-topline">
<f:if condition="{topline.date}">
<time
itemprop="datePublished"
datetime="{f:format.date(date: topline.date, format:'Y-m-d')}"
>
<f:format.date format="{f:translate(key:'dateFormat', extensionName: 'flexible_news')}">
{topline.date}
</f:format.date>
</time>
</f:if>
<f:if condition="{topline.categories}">
&nbsp;–&nbsp;
<f:for
each="{topline.categories}"
as="category"
iteration="iterator"
>
{category.data.title}{f:if(condition: iterator.isLast, else: ', ')}
</f:for>
</f:if>
</div>
</f:if>
<f:if condition="{title}">
<div class="FlexibleNewsPreviewHeader-title">
<f:render
partial="Header/Header"
arguments="{
header: title,
layout: headerLayout,
default: '{settings.defaultHeaderType + 1}'
}"
/>
</div>
</f:if>
</div>
</html>
45 changes: 45 additions & 0 deletions Resources/Private/Partials/PageList/News/Item.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<article class="FlexibleNewsPreview">
<f:link.typolink
parameter="{page.data.uid}{f:if(condition: page.data.target, then: ' {page.data.target}')}"
title="{page.data.title}"
>
<header class="FlexibleNewsPreview-header">
<f:render
partial="News/Header"
arguments="{
media: page.media,
title: page.data.title,
headerLayout: data.pi_flexform.headerLayout,
topline: {
date: '{page.data.lastUpdated ? page.data.lastUpdated : page.data.crdate}',
categories: page.categories
}
}"
/>
</header>
<f:if condition="{page.data.abstract}">
<div class="FlexibleNewsPreview-abstract">
{page.data.abstract -> f:format.nl2br()}
</div>
</f:if>
<f:if condition="{page.data.author} || {page.data.author_email} || {page.data.keywords}">
<footer class="FlexibleNewsPreview-footer">
<f:render
partial="News/Footer"
arguments="{
author: {
name: page.data.author,
email: page.data.author_email
},
keywords: page.data.keywords
}"
/>
</footer>
</f:if>
</f:link.typolink>
</article>
</html>
32 changes: 32 additions & 0 deletions Resources/Private/Templates/PageList/News.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Default"/>

<f:section name="Main">
<f:if condition="{pages}">
<f:then>
<div class="FlexibleNewsPreviewList">
<f:for
each="{pages}"
as="page"
>
<div class="FlexibleNewsPreviewList-item">
<f:render
partial="News/Item"
arguments="{page: page, data: data}"
/>
</div>
</f:for>
</div>
</f:then>
<f:else>
<f:translate
key="noPagesFound"
extensionName="flexible_pages"
/>
</f:else>
</f:if>
</f:section>
</html>
94 changes: 94 additions & 0 deletions Resources/Public/Css/FlexibleNews.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
:root {
--FlexibleNewsPreview-transitionDuration: 0.3s;
--FlexibleNewsPreview-transitionTimingFunction: cubic-bezier(0.3, 0, 0.2, 1);
--FlexibleNewsPreview-onEmphasized-filter: brightness(calc(100% - 100% * 0.08));
}

.FlexibleNewsPreviewList {
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto;
grid-row-gap: 50px;
}

.FlexibleNewsPreview a {
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto;
grid-row-gap: 15px;
text-decoration: none;
cursor: pointer;
-webkit-transition-duration: var(--FlexibleNewsPreview-transitionDuration);
transition-duration: var(--FlexibleNewsPreview-transitionDuration);
-webkit-transition-property: -webkit-filter;
transition-property: -webkit-filter;
transition-property: filter;
transition-property: filter, -webkit-filter;
-webkit-transition-timing-function: var(--FlexibleNewsPreview-transitionTimingFunction);
transition-timing-function: var(--FlexibleNewsPreview-transitionTimingFunction);
outline: none;
}

.FlexibleNewsPreview a:active,
.FlexibleNewsPreview a:focus,
.FlexibleNewsPreview a:hover {
-webkit-filter: var(--FlexibleNewsPreview-onEmphasized-filter);
filter: var(--FlexibleNewsPreview-onEmphasized-filter);
text-decoration: none;
}

.FlexibleNewsPreviewHeader {
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto;
grid-row-gap: 5px;
cursor: inherit;
pointer-events: inherit;
}

.FlexibleNewsPreviewHeader-topline {
-webkit-filter: contrast(20%);
filter: contrast(20%);
}

.FlexibleNewsPreviewHeader-title h1,
.FlexibleNewsPreviewHeader-title h2,
.FlexibleNewsPreviewHeader-title h3,
.FlexibleNewsPreviewHeader-title h4,
.FlexibleNewsPreviewHeader-title h5,
.FlexibleNewsPreviewHeader-title h6 {
margin-top: 0;
margin-bottom: 0;
}

.FlexibleNewsPreviewHeader-image {
display: block;
margin-bottom: 5px;
}

.FlexibleNewsPreviewHeader-image .image .image-embed-item {
display: block;
cursor: inherit;
pointer-events: inherit;
height: auto;
max-width: 100%;
}

.FlexibleNewsPreviewHeader-image .image {
display: block;
cursor: inherit;
pointer-events: inherit;
margin: 0;
}

.FlexibleNewsPreview-abstract {
display: block;
cursor: inherit;
pointer-events: inherit;
}

.FlexibleNewsPreviewFooter {
-webkit-filter: contrast(20%);
filter: contrast(20%);
text-align: right;
}
Loading

0 comments on commit 3e85405

Please sign in to comment.