mirror of
https://github.com/a2nt/silverstripe-webpack.git
synced 2024-10-22 17:05:31 +02:00
IMPROVEMENT: customize slide image size
This commit is contained in:
parent
d52c250076
commit
918cf66907
@ -24,10 +24,13 @@ class SliderElement extends ElementSlideshow
|
|||||||
|
|
||||||
private static $plural_name = 'Sliders';
|
private static $plural_name = 'Sliders';
|
||||||
|
|
||||||
private static $description = 'Displays slideshow';
|
private static $description = 'Displays slide show';
|
||||||
|
|
||||||
private static $table_name = 'SliderElement';
|
private static $table_name = 'SliderElement';
|
||||||
|
|
||||||
|
private static $slide_width = 2140;
|
||||||
|
private static $slide_height = 700;
|
||||||
|
|
||||||
private static $db = [
|
private static $db = [
|
||||||
'Interval' => 'Int',
|
'Interval' => 'Int',
|
||||||
];
|
];
|
||||||
@ -47,6 +50,16 @@ class SliderElement extends ElementSlideshow
|
|||||||
return self::$singular_name;
|
return self::$singular_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getSlideWidth()
|
||||||
|
{
|
||||||
|
return self::config()->get('slide_width');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSlideHeight()
|
||||||
|
{
|
||||||
|
return self::config()->get('slide_height');
|
||||||
|
}
|
||||||
|
|
||||||
public function getCMSFields()
|
public function getCMSFields()
|
||||||
{
|
{
|
||||||
$fields = parent::getCMSFields();
|
$fields = parent::getCMSFields();
|
||||||
@ -92,14 +105,14 @@ class SliderElement extends ElementSlideshow
|
|||||||
*/
|
*/
|
||||||
public function getSlideShow()
|
public function getSlideShow()
|
||||||
{
|
{
|
||||||
if($this->items) {
|
if ($this->items) {
|
||||||
return $this->items;
|
return $this->items;
|
||||||
}
|
}
|
||||||
|
|
||||||
$date = date('Y-m-d H:i:s');
|
$date = date('Y-m-d H:i:s');
|
||||||
$this->items = $this->Slides()->filter([
|
$this->items = $this->Slides()->filter([
|
||||||
'Hide' => '0',
|
'Hide' => '0',
|
||||||
])->filterByCallback(function($item, $list) use ($date) {
|
])->filterByCallback(static function ($item, $list) use ($date) {
|
||||||
$on = $item->getField('DateOn');
|
$on = $item->getField('DateOn');
|
||||||
$off = $item->getField('DateOff');
|
$off = $item->getField('DateOff');
|
||||||
|
|
||||||
@ -113,7 +126,7 @@ class SliderElement extends ElementSlideshow
|
|||||||
{
|
{
|
||||||
parent::onBeforeWrite();
|
parent::onBeforeWrite();
|
||||||
|
|
||||||
if(!$this->getField('Interval')){
|
if (!$this->getField('Interval')) {
|
||||||
$this->setField('Interval', 5000);
|
$this->setField('Interval', 5000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,16 +4,14 @@
|
|||||||
* User: tony
|
* User: tony
|
||||||
* Date: 6/30/18
|
* Date: 6/30/18
|
||||||
* Time: 11:37 PM
|
* Time: 11:37 PM
|
||||||
|
* Ref: Dynamic\FlexSlider\Model\SlideImage
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Site\Extensions;
|
namespace Site\Extensions;
|
||||||
|
|
||||||
use Sheadawson\Linkable\Forms\LinkField;
|
|
||||||
use Sheadawson\Linkable\Models\Link;
|
|
||||||
use SilverStripe\Forms\CheckboxField;
|
use SilverStripe\Forms\CheckboxField;
|
||||||
use SilverStripe\Forms\DatetimeField;
|
use SilverStripe\Forms\DatetimeField;
|
||||||
use SilverStripe\Forms\FieldList;
|
use SilverStripe\Forms\FieldList;
|
||||||
use SilverStripe\Forms\TextField;
|
|
||||||
use SilverStripe\Forms\ToggleCompositeField;
|
use SilverStripe\Forms\ToggleCompositeField;
|
||||||
use SilverStripe\ORM\DataExtension;
|
use SilverStripe\ORM\DataExtension;
|
||||||
|
|
||||||
@ -25,6 +23,29 @@ class SlideImageExtension extends DataExtension
|
|||||||
'DateOff' => 'Datetime',
|
'DateOff' => 'Datetime',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
private $_cache = [];
|
||||||
|
|
||||||
|
public function getElement()
|
||||||
|
{
|
||||||
|
if(!isset($this->_cache['element'])) {
|
||||||
|
$this->_cache['element'] = $this->owner->SlideshowElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_cache['element'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSlideWidth()
|
||||||
|
{
|
||||||
|
$element = $this->getElement();
|
||||||
|
return $element->getSlideWidth();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSlideHeight()
|
||||||
|
{
|
||||||
|
$element = $this->getElement();
|
||||||
|
return $element->getSlideHeight();
|
||||||
|
}
|
||||||
|
|
||||||
public function updateCMSFields(FieldList $fields)
|
public function updateCMSFields(FieldList $fields)
|
||||||
{
|
{
|
||||||
parent::updateCMSFields($fields);
|
parent::updateCMSFields($fields);
|
||||||
@ -36,9 +57,14 @@ class SlideImageExtension extends DataExtension
|
|||||||
'DateOff',
|
'DateOff',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
$fields->dataFieldByName('Image')
|
||||||
|
->setTitle('Image ('.$this->getSlideWidth().' x '.$this->getSlideHeight().' px)');
|
||||||
|
|
||||||
$fields->addFieldToTab('Root.Main', ToggleCompositeField::create(
|
$fields->addFieldToTab('Root.Main', ToggleCompositeField::create(
|
||||||
'ConfigHD',
|
'ConfigHD',
|
||||||
'Slide Settings', [
|
'Slide Settings',
|
||||||
|
[
|
||||||
CheckboxField::create('Hide', 'Hide this slide? (That will hide the slide regardless of start/end fields)'),
|
CheckboxField::create('Hide', 'Hide this slide? (That will hide the slide regardless of start/end fields)'),
|
||||||
DatetimeField::create('DateOn', 'When would you like to start showing the slide?'),
|
DatetimeField::create('DateOn', 'When would you like to start showing the slide?'),
|
||||||
DatetimeField::create('DateOff', 'When would you like to stop showing the slide?'),
|
DatetimeField::create('DateOff', 'When would you like to stop showing the slide?'),
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<span class="img">
|
<span class="img">
|
||||||
<img class="d-block w-100"
|
<img class="d-block w-100"
|
||||||
src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||||
data-lazy-src="<% if $ImageURL %>$ImageURL<% else %>$Image.Fill(1400,650).URL<% end_if %>"
|
data-lazy-src="<% if $ImageURL %>$ImageURL<% else %>$Image.Fill($SlideWidth,$SlideHeight).URL<% end_if %>"
|
||||||
alt="<% if $Headline %>$Headline.XML<% end_if %>"
|
alt="<% if $Headline %>$Headline.XML<% end_if %>"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
|
Loading…
Reference in New Issue
Block a user