【发布时间】:2017-08-23 17:35:50
【问题描述】:
尝试在 Silverstripe 项目中使用 vegas 滑块 http://vegas.jaysalvat.com/,但在设置允许通过 CMS 添加图像时遇到问题。
尝试使用
$vars = array(
'Slideshow1' => $this->Slideshow1,
'Slideshow2' => $this->Slideshow2,
'Slideshow3' => $this->Slideshow3,
'Slideshow4' => $this->Slideshow4,
'Slideshow5' => $this->Slideshow5,
'Slideshow6' => $this->Slideshow6,
'Slideshow7' => $this->Slideshow7
);
Requirements::javascriptTemplate("themes/mysite/javascript/vegas1.js", $vars);
在页面控制器中。
然后在我的脚本文件里有了
$('body').vegas({
delay: 7000,
timer: false,
shuffle: true,
transition: 'fade2',
transitionDuration: 3000,
slides: [
{ src: "$Slideshow1"},
{ src: "$Slideshow2"},
{ src: "$Slideshow3"},
{ src: "$Slideshow4"},
{ src: "$Slideshow5"},
{ src: "$Slideshow6"},
{ src: "$Slideshow7"}
],
overlay: '/themes/mysite/images/overlays/01.png'
});
在我的页面模板中
public static $has_one = array(
'Slideshow1' => 'Image',
'Slideshow2' => 'Image',
'Slideshow3' => 'Image',
'Slideshow4' => 'Image',
'Slideshow5' => 'Image',
'Slideshow6' => 'Image',
'Slideshow7' => 'Image',
);
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow1', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow2', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow3', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow4', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow5', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow6', 'Slideshow Background Image:'));
$fields->addFieldToTab('Root.Slides', new UploadField('Slideshow7', 'Slideshow Background Image:'));
变量正在传递到 html,但它显示为
<div class="vegas-slide-inner" style="background-image: url($Slideshow1); background-color: rgba(0, 0, 0, 0); background-position: center center; background-size: cover;"></div>
而不是从资产文件夹加载图像。现在它是硬编码的,所以幻灯片可以工作,但将来希望能够通过 CMS 添加图像。谢谢!
【问题讨论】:
-
您应该考虑将图像保存为
has_many关系,或者您确定幻灯片中始终需要恰好七张图像? -
制作这个网站的人只是将它从 HTML 转换为 CMS 网站,所以她只是在使用他们所拥有的。她问我是否知道通过 CMS 使它们可编辑的方法,所以我尝试了我认为可行的方法。认为我们会尝试让它按照他们的方式工作,然后将其切换为更可定制的东西。
标签: javascript php jquery silverstripe