Versuchen Sie, die Vegas-Schieberegler http://vegas.jaysalvat.com/ in einem Silverstripe-Projekt zu verwenden, und ich habe Probleme beim Einrichten der Bilder über das CMS hinzugefügt werden.Silverstripe Bild hochladen als Javascript Variable
$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);
auf der Seite Controller versucht.
Und dann in meiner Skript-Datei hatten
$('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'
});
In meiner Seitenvorlage Ich habe
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:'));
Die Variablen in den HTML-Code übergeben werden immer, aber es zeigt, wie
<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>
anstelle des Ladens von Bildern aus dem Ordner "Assets". Gerade jetzt ist es fest in die Slides eingearbeitet, aber in Zukunft würden gerne Bilder über das CMS hinzufügen können. Vielen Dank!
Sie sollten darüber nachdenken, Bilder als 'has_many' Beziehung zu speichern, oder sind Sie sicher, dass Sie immer genau sieben Bilder in der Diashow benötigen? – wmk
Die Person, die diese Site erstellt hat, hat sie gerade von HTML in eine CMS-Site konvertiert, also hat sie nur das verwendet, was sie hatte. Sie fragte, ob ich einen Weg wüsste, sie über CMS editierbar zu machen, also habe ich versucht, was ich dachte, würde funktionieren. Wir haben versucht, es so zu machen, wie es funktioniert, und es dann zu etwas anzupassen, das besser angepasst werden kann. –