Skip to content

Commit

Permalink
[FEATURE] adds new content element 'bootstrapSlider (#37)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anna Färber authored and dmh committed Jun 22, 2016
1 parent 6bcbce9 commit 079ce4f
Show file tree
Hide file tree
Showing 6 changed files with 214 additions and 1 deletion.
13 changes: 13 additions & 0 deletions Configuration/ContentElements/BootstrapSlider.pagets
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
mod.wizards.newContentElement.wizardItems.contentElements {
elements {
contentElementBootstrapSlider {
title = LLL:EXT:theme_t3kit/Resources/Private/Language/ContentElements.xlf:bootstrap.slider.title
description = LLL:EXT:theme_t3kit/Resources/Private/Language/ContentElements.xlf:bootstrap.slider.description
iconIdentifier = content-elements-contentElementSlider
tt_content_defValues {
CType = contentElementBootstrapSlider
}
}
}
show := addToList(contentElementBootstrapSlider)
}
26 changes: 26 additions & 0 deletions Configuration/ContentElements/BootstrapSlider.setupts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
tt_content {
contentElementBootstrapSlider =< lib.fluidContent
contentElementBootstrapSlider {
templateName = BootstrapSlider

dataProcessing {

# Process files
10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
references.fieldName = image
as = slides
}

20 = T3kit\T3kitExtensionTools\DataProcessing\FlexFormProcessor
20 {
fieldName = pi_flexform
as = settings
}

# "inherit" from lib.fluidContent
365 < lib.fluidContent.dataProcessing.365
1910 < lib.fluidContent.dataProcessing.1910
}
}
}
37 changes: 37 additions & 0 deletions Configuration/FlexForms/flexform_bootstrapSlider.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>LLL:EXT:theme_t3kit/Resources/Private/Language/ContentElements.xlf:bootstrapSlider.flexform.sheetGeneral</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<interval>
<TCEforms>
<label>LLL:EXT:theme_t3kit/Resources/Private/Language/ContentElements.xlf:bootstrapSlider.flexform.interval</label>
<config>
<type>input</type>
<rows>1</rows>
<default>5</default>
</config>
</TCEforms>
</interval>

<!-- Show or hide the small circles on bottom of slider to navigate to each slide. -->
<quickselect>
<TCEforms>
<label>LLL:EXT:theme_t3kit/Resources/Private/Language/ContentElements.xlf:bootstrapSlider.flexform.quickselect</label>
<config>
<type>check</type>
</config>
</TCEforms>
</quickselect>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
35 changes: 35 additions & 0 deletions Configuration/TCA/Overrides/tt_content.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,20 @@
);
$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes']['contentElementSlider'] = 'content-elements-contentElementSlider';

// "contentElementBootstrapSlider"
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
$contentElementLanguageFilePrefix . 'bootstrap.slider.title',
'contentElementBootstrapSlider',
'content-elements-contentElementSlider'
],
'contentElementSlider',
'after'
);
$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes']['contentElementBootstrapSlider'] = 'content-elements-contentElementSlider';

// "bigIconTextButton"
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
Expand Down Expand Up @@ -255,6 +269,24 @@
'
];

// "contentElementBootstrapSlider"
$GLOBALS['TCA']['tt_content']['types']['contentElementBootstrapSlider'] = [
'showitem' => '
--palette--;' . $frontendLanguageFilePrefix . 'palette.general;general,
header;' . $frontendLanguageFilePrefix . 'header.ALT.div_formlabel,
--linebreak--,pi_flexform;' . $contentElementLanguageFilePrefix . 'tt_content.tabs.settings,
--div--;' . $contentElementLanguageFilePrefix . 'bootstrap.slider.tabs.slides,image,
--div--;' . $frontendLanguageFilePrefix . 'tabs.appearance,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,
--palette--;' . $contentElementLanguageFilePrefix . 'tt_content.palette.imageSize;imageSize,
--palette--;' . $frontendLanguageFilePrefix . 'palette.appearanceLinks;appearanceLinks,
--div--;' . $frontendLanguageFilePrefix . 'tabs.access,
hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden,
--palette--;' . $frontendLanguageFilePrefix . 'palette.access;access,
--div--;' . $frontendLanguageFilePrefix . 'tabs.extended
'
];

// "bigIconTextButton"
$GLOBALS['TCA']['tt_content']['types']['bigIconTextButton'] = [
'showitem' => '
Expand Down Expand Up @@ -503,6 +535,9 @@
// "accordion"
$GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['config']['ds']['*,accordion'] = 'FILE:EXT:theme_t3kit/Configuration/FlexForms/flexform_accordion.xml';

// "contentElementBootstrapSlider"
$GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['config']['ds']['*,contentElementBootstrapSlider'] = 'FILE:EXT:theme_t3kit/Configuration/FlexForms/flexform_bootstrapSlider.xml';

// Add additional fields for tt_content
$additionalColumns = [
'wrapper' => [
Expand Down
19 changes: 18 additions & 1 deletion Resources/Private/Language/ContentElements.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,24 @@
<trans-unit id="slider.tabs.slides">
<source>Slides</source>
</trans-unit>

<trans-unit id="bootstrap.slider.title">
<source>Bootstrap Slider</source>
</trans-unit>
<trans-unit id="bootstrap.slider.description">
<source>Basic slider included from Bootstrap package. Add sliding interval and turn on/off quickselect. </source>
</trans-unit>
<trans-unit id="bootstrap.tabs.slides">
<source>Slides</source>
</trans-unit>
<trans-unit id="bootstrapSlider.flexform.sheetGeneral">
<source>Additional settings</source>
</trans-unit>
<trans-unit id="bootstrapSlider.flexform.interval">
<source>Interval in seconds</source>
</trans-unit>
<trans-unit id="bootstrapSlider.flexform.quickselect">
<source>Quickselect</source>
</trans-unit>
<trans-unit id="bigIconTextButton.title">
<source>Icon,Text and Link</source>
</trans-unit>
Expand Down
85 changes: 85 additions & 0 deletions Resources/Private/Templates/ContentElements/BootstrapSlider.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">

<f:layout name="ContentFooter" />

<f:section name="content">

<f:if condition="{slides}">
<div id="carousel-{data.uid}" class="carousel image-slider slide" data-interval="{settings.interval}000" data-ride="carousel">

<f:if condition="{settings.quickselect}">
<f:if condition="{slides->f:count()} > 1">
<ol class="carousel-indicators">
<f:for each="{slides}" as="image" iteration="iteration">
<li data-target="#carousel-{data.uid}" data-slide-to="{iteration.index}" class="{f:if(condition: iteration.isFirst, then: 'active')}">
</li>
</f:for>
</ol>
</f:if>
</f:if>

<div class="carousel-inner" role="listbox">
<f:for each="{slides}" as="image" iteration="iteration">
<div class="item{f:if(condition: iteration.isFirst, then: ' active')}">

<f:render section="Image" arguments="{_all}" />
</div>
</f:for>
</div>

<f:if condition="{slides->f:count()} > 1">
<div class="container carousel-control-wrapper">
<a class="carousel-control left" href="#carousel-{data.uid}" role="button" data-slide="prev">
<span class="swiper-button-prev swiper-button-white"></span>
</a>
<a class="carousel-control right" href="#carousel-{data.uid}" role="button" data-slide="next">
<span class="swiper-button-next swiper-button-white"></span>
</a>
</div>
</f:if>
</div>
</f:if>
</f:section>

<f:section name="Image">
<f:image src="{image.uid}" treatIdAsReference="1"/>

<f:if condition="{image.referenceProperties.title}">
<f:then>
<div class="carousel-caption">
<h2 class="img-slider__caption-header">{image.referenceProperties.title}</h2>

<f:if condition="{image.referenceProperties.description}">
<p class="img-slider__caption-p js__img-slider__caption-p">{image.referenceProperties.description}</p>
</f:if>

<f:if condition="{image.referenceProperties.link}">
<f:link.typolink parameter="{image.referenceProperties.link}" class="btn btn-primary"><f:translate key="contentElement.slider.linkText" extensionName="theme_t3kit" /></f:link.typolink>
</f:if>
</div>
</f:then>
<f:else>
<f:then>
<f:if condition="{image.referenceProperties.description}">
<div class="carousel-caption">
<p class="img-slider__caption-p js__img-slider__caption-p">{image.referenceProperties.description}</p>

<f:if condition="{image.referenceProperties.link}">
<f:link.typolink parameter="{image.referenceProperties.link}" class="btn btn-primary"><f:translate key="contentElement.slider.linkText" extensionName="theme_t3kit" /></f:link.typolink>
</f:if>
</div>
</f:if>
</f:then>
<f:else>
<f:if condition="{image.referenceProperties.link}">
<div class="carousel-caption">
<f:link.typolink parameter="{image.referenceProperties.link}" class="btn btn-primary"><f:translate key="contentElement.slider.linkText" extensionName="theme_t3kit" /></f:link.typolink>
</div>
</f:if>
</f:else>
</f:else>
</f:if>
</f:section>
</div>

0 comments on commit 079ce4f

Please sign in to comment.