您在這裡

如何顯示images相片的slide show?

tky's 的頭像
tky 在 2008-08-30 (週六) 18:27 發表

TKY目前架設的6.4網站需要在首頁放個能夠顯示多張相片的slide show,前人的作法是用gif動畫去作,但TKY想試試看能否結合images來辦到。目標是隨機顯示images gallery中的任何圖片。

既然是要放slide show,就不會想要使用images所提供的最新圖片與隨機圖片區塊。
找了一個叫做Couloir Slideshow的模組,可以指定slide show的圖片路徑,也可以設定隨機顯示,算頂合用的(如果可以指定切換圖片的效果會更好一點)。

但是離TKY的理想還有一點距離:

  1. TKY希望點選圖片可以跳到該張圖片的images node去;Couloir Slideshow只會顯示該張圖片
  2. TKY希望圖片可以只顯示preview大小的圖片,但Couloir Slideshow沒法指定原始圖片的大小(只能指定最終顯示的最大高度與寬度),會把縮圖大小的圖片也顯示出來

不曉得有沒人試著作過類似的嘗試,能否提供一些建議或其他模組,達到TKY的目標呢?感激啦!

TKY

我大概試了一下, 從 image gallery module 、innerfade demo 到處抄一些程式碼來用
首先找個網址放 innerfade plugin (或是找 hosting)
然後在新增一個 block 在裡面寫以下片段, 並且用 PHP Code filter

$(document).ready(function(){
$('#hot').innerfade({
animationtype: 'slide',
speed: 750,
timeout: 5000,
type: 'random',
containerheight: '200px'
});
});

<?
$nodes = range(35, 38);
echo '
    ';
    foreach($nodes as $nid)
    {
    $node = node_load($nid);
    echo '
  • '.l(image_display($node, IMAGE_THUMBNAIL), 'node/'. $image->nid, array('html' => TRUE)).'
  • ';
    }
    echo '

';
?>


node 35 ~ 38 是我用來測試的 node id, 都是 image type
如果是要套用現成的 gallery 的話, 應該要參考 image_gallery.module 的 image_gallery_page() 裡面的程式出來改
因為 image gallery 似乎沒有提供一個 image_gallery_get_gallery($tid) 的函數可以很方便取得其中所有的 image node
所以我就簡單直接指定 node id list
用 image_display() 可以直接顯示 image 的圖片, 第二個參數應該是圖片大小, 這就可以自己設定
顯示以後再用 inline java script 套用 innerfade plugin 上去就可以了

雖然很硬幹..不過..就先這樣吧