Hallo Oliver, alle,
nochmals vielen Dank für Deine tolle Erweiterung.
Damit ich mich nicht wiederholen muss: hier ein Tipp, wie/dass die Slideshow auch noch anders aussehen kann und eine Template-Erweiterung, die dem großen Bild ebenfalls einen Link verpasst.
Und dann noch 2 Patches, die eventuell in die Erweiterung einfließen könnten:
PHP-Code:
--- system/modules/news_slideshow/dca/tl_module.php.ORG So 17. Jul 17:53:13 2011
+++ system/modules/news_slideshow/dca/tl_module.php So 17. Jul 17:52:24 2011
@@ -72,7 +72,7 @@
'label' => &$GLOBALS['TL_LANG']['tl_module']['transition'],
'exclude' => true,
'inputType' => 'select',
- 'options' => array('fade', 'slide'),
+ 'options' => array('fade', 'slide-left', 'slide-right', 'slide-top', 'slide-bottom'),
),
'autostart' => array
(
Damit kann man dann im Backend einstellen, aus welcher Richtung die großen Bilder herein sliden (war vorher immer von links).
Der zweite Patch betrifft die JS-Funktionalität, wenn Autostart ausgeschaltet war: dann wurde kein großes Bild gezeigt, aber der Infotext dazu. Abgesehen davon, dass ich das unschön fand, führte es auch dazu, dass 2 Infotexte gleichzeitig display: list-item; erhielten, wenn man nicht den ersten Menüpunkt anklickte. Dann war der erste Text immer zu sehen, der andere, richtige, dann darunter, aber ganz oder teilweise unsichtbar, je nach Höhe der Infobox und der beiden Texte. Erst nach einem kompletten Durchlauf der Slideshow war die Anzeige wieder korrekt. Das Start-Flag bin ich auch losgeworden.
PHP-Code:
--- system/modules/news_slideshow/html/news_slideshow.js.ORG Do 14. Jul 17:45:46 2011
+++ system/modules/news_slideshow/html/news_slideshow.js Mo 18. Jul 19:24:11 2011
@@ -26,12 +26,13 @@
},
initialize: function(menu, images, loader, infos, options){
- this.start = 1;
this.infozone = new Fx.Morph($(infos));
this.infos = $$('#' + infos + ' li').setStyle('display', 'none');
this.infos[0].setStyle('display', 'list-item');
this.infoheight = $(infos).getStyle('height').toInt();
+ this.infos[0].setStyle('display', 'none');
+ this.infozone.set({'height': 0});
this.parent(menu, options);
this.images = $(images);
@@ -75,9 +76,7 @@
break;
case 'fade': image.fade('in'); break;
}
- if (this.start == 1) {
- this.start = 0;
- } else {
+ if ($chk(this.curindex) && this.infos[this.curindex]) {
this.infozone.start({'height': 0});
this.infos[this.curindex].setStyle('display', 'none');
}
Möchte man ein bestimmtes großes Bild von vorn herein anzeigen, dann kann man genau einem der <li> Elemente im ul.news_slideshow_menu die Klasse current verpassen. Hier wird das erste Bild (und auch dessen Infotext) angezeigt:
PHP-Code:
--- templates/news_slideshow.tpl.ORG Mo 18. Jul 21:08:25 2011
+++ templates/news_slideshow.tpl Mo 18. Jul 19:33:17 2011
@@ -8,8 +8,8 @@
<?php endforeach; ?>
</ul>
<ul id="menu<?php echo $this->id1; ?>" class="news_slideshow_menu">
-<?php foreach ($this->items as $item): ?>
-<li><a href="<?php echo $item['link']; ?>"><?php if ($item['showmenupicture']) echo $item['menupicture']; ?><span><?php echo $item['newsHeadline']; ?></span></a></li>
+<?php foreach ($this->items as $idx => $item): ?>
+<li<?php if ($idx == 0): ?> class="current"<?php endif; ?>><a href="<?php echo $item['link']; ?>"><?php if ($item['showmenupicture']) echo $item['menupicture']; ?><span><?php echo $item['newsHeadline']; ?></span></a></li>
<?php endforeach; ?>
</ul>
<ul <?php if (!$this->showinfobox) echo 'style="display:none" '; ?>id="infos<?php echo $this->id1; ?>" class="news_slideshow_infos">
Das funktioniert sowohl mit Autostart aus wie auch ein. Bei Autostart ein macht es aber nur Sinn, wenn ein anderes als das erste Bild am Anfang gezeigt werden soll.
Ein letzter Tipp: klickt man auf den bereits aktiven Menüeintrag (nachdem alle Animationen durchgelaufen sind), dann stoppt die Slideshow, bis man auf einen anderen Menüeintrag klickt. Dafür gibt es bisher kein visuelles Feedback.
LG, Georg
Lesezeichen