Skip to content

Commit

Permalink
FEATURE Bootstrap 5 updates (#5)
Browse files Browse the repository at this point in the history
* enforce $ShowTitle, check for values
* Remove GridFieldFilterHeader
* require Focuspoint
  • Loading branch information
jsirish authored Sep 8, 2023
1 parent 0cff6b4 commit 88d6552
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 24 deletions.
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"CMS"
],
"require": {
"jonom/focuspoint": "^5",
"silverstripe/recipe-cms": "^5.0"
},
"require-dev": {
Expand Down
14 changes: 9 additions & 5 deletions src/Extension/CarouselPageExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
namespace Dynamic\Carousel\Extension;

use SilverStripe\View\SSViewer;
use SilverStripe\Core\ClassInfo;
use Dynamic\Carousel\Model\Slide;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter;
use SilverStripe\Forms\GridField\GridFieldAddNewButton;
use Symbiote\GridFieldExtensions\GridFieldOrderableRows;
use Symbiote\GridFieldExtensions\GridFieldAddNewMultiClass;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
use SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor;
use SilverStripe\Forms\GridField\GridFieldFilterHeader;
use Symbiote\GridFieldExtensions\GridFieldAddExistingSearchButton;

/**
* Class \Dynamic\Carousel\Extension\CarouselPageExtension
*
* @property HomePage|CarouselPageExtension $owner
* @property BlockPage|CampaignLandingPage|HomePage|CarouselPageExtension $owner
* @method ManyManyList|Slide[] Slides()
*/
class CarouselPageExtension extends DataExtension
Expand Down Expand Up @@ -51,14 +51,18 @@ public function updateCMSFields(\SilverStripe\Forms\FieldList $fields)
GridFieldConfig_RelationEditor::create()
);
$grid->getConfig()
->removeComponentsByType(GridFieldAddNewButton::class)
->removeComponentsByType([
GridFieldAddNewButton::class,
GridFieldAddExistingAutocompleter::class,
GridFieldFilterHeader::class,
])
->addComponents([
$multiClass = GridFieldAddNewMultiClass::create(),
new GridFieldOrderableRows('SortOrder'),
new GridFieldAddExistingSearchButton(),
]);

$fields->addFieldToTab('Root.Slides', $grid);
$fields->addFieldToTab('Root.Hero', $grid);
}

/**
Expand Down
42 changes: 23 additions & 19 deletions templates/Includes/Carousel.ss
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
<% if $Slides %>
<div id="carousel-{$ID}" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<% loop $Slides.Sort('SortOrder') %>
<li data-target="#carousel-{$Top.ID}" data-slide-to="{$Pos(0)}" <% if $IsFirst %>class="active" aria-current="true"<% end_if %> aria-label="{$Title.XML}"></li>
<% end_loop %>
</ol>
<div id="carousel-{$ID}" class="carousel slide mb-5">
<% if $Slides.Count > 1 %>
<div class="carousel-indicators">
<% loop $Slides.Sort('SortOrder') %>
<button type="button" data-bs-target="#carousel-{$Up.ID}" data-bs-slide-to="{$Pos(0)}" <% if $IsFirst %>class="active" aria-current="true"<% end_if %> aria-label="{$Title.XML}"></button>
<% end_loop %>
</div>
<% end_if %>
<div class="carousel-inner">
<% loop $Slides.Sort('SortOrder') %>
<div class="carousel-item<% if $IsFirst %> active<% end_if %>">
<img src="$Image.Fill(1200,500).URL" class="d-block w-100" alt="$Image.Title.XML">
<div class="carousel-caption d-none d-md-block">
<h3>$Title</h3>
$Content
</div>
<% if $ClassName.ShortName == ImageSlide %>
<% include ImageSlide %>
<% else_if $ClassName.ShortName == VideoSlide %>
<% include VideoSlide UpID=$Up.ID %>
<% end_if %>
</div>
<% end_loop %>
</div>
<a class="carousel-control-prev" href="#carousel-{$ID}" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carousel-{$ID}" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
<% if $Slides.Count > 1 %>
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-{$ID}" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carousel-{$ID}" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
<% end_if %>
</div>
<% end_if %>
5 changes: 5 additions & 0 deletions templates/Includes/ImageSlide.ss
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<img src="$Image.FocusFill(1200,400).URL" class="d-block w-100 image-fluid" alt="$Image.Title.XML">
<div class="carousel-caption d-none d-md-block">
<% if $Title && $ShowTitle %><h3>$Title</h3><% end_if %>
<% if $Content %>$Content<% end_if %>
</div>

0 comments on commit 88d6552

Please sign in to comment.