2011-10-12 164 views
1

我有此drupal的幻燈片,其通過圖像標題拉動從文件夾中依次的圖像(01_title.jpg,02_title.jpg等。)隨機化幻燈片放映圖像

我想知道是否有是隨機的一種簡單的方法圖像,所以每次刷新頁面時都會以不同的圖像開始?

您可以查看這裏的幻燈片http://www.rubensteinpr.com/

謝謝!

<div id ="index"> 
     <?php 
      // Note that !== did not exist until 4.0.0-RC2 
      $desired_extension = 'jpg'; //extension we're looking for 
      $banner_imgs_array = array(); // array of banner images 
      $banner_imgs = ''; // sting of banner images names comma dileneated 

      if ($handle = opendir(file_directory_path().'/banner_imgs')) { 

       /* This is the correct way to loop over the directory. */ 
       while (false !== ($file = readdir($handle))) { 
        if(($file != ".") and ($file != "..")) { 
         $fileChunks = explode(".", $file); 
         if($fileChunks[1] == $desired_extension) //interested in second chunk only 
         {  
         $banner_imgs_array[] = $file; 
         } 
        } 
       } 

       closedir($handle); 

       $banner_imgs = implode(',', $banner_imgs_array); 
      } 
     ?> 
     <div id="banner"><img src="<?php print file_directory_path(); ?>/temp_banner.jpg" width="702" height="310" border="0"></div> 
     <div id="bannerText">media relations &bull; strategic planning &bull; digital communications &bull; crisis management</div> 
     <script type="text/javascript"> 
      // <![CDATA[ 

      var so = new SWFObject("<?php print file_directory_path(); ?>/banner.swf", "ban", "702", "310", "8", "#ffffff"); 
      so.addParam('menu', 'false'); 
      so.addParam("wmode", "transparent"); 
      so.addParam("base", "<?php print file_directory_path(); ?>"); 
      so.addVariable("banner_imgs", "<?php print $banner_imgs; ?>"); 
      so.write("banner"); 

      // ]]> 
     </script> 
</div> 

回答

2

加入

shuffle($banner_imgs_array); 

線只是

$banner_imgs = implode(',', $banner_imgs_array); 

之前應該做的伎倆。

+1

這段代碼現在已經生效,它確實似乎在源代碼中對數組進行了混洗,但由於某種原因,即使在清除緩存後,幻燈片仍然按順序顯示圖像。也許問題在別處。感謝您的回答! – TheRealBillyT

+1

你確定你把洗牌「前」線?請在「$ banner_imgs = implode(',',$ banner_imgs_array);」之後嘗試「echo $ banner_imgs」並看看它是否真的在字符串中洗牌。也許Flash小程序有一個排序功能。嘗試重命名圖像文件,看看是否改變了順序。 –

0

array_rand將返回一個或多個隨機數組鍵。如果您想要對陣列本身進行洗牌,請使用shuffle