开发者

Randomize slideshow images

I have this drupal slideshow which pulls images from a folder sequentially by image title (01_title.jpg, 02_title.jpg, etc..)

I was wondering if there is an easy way to randomize the images, so it starts with a different image every time you refresh the page?

you can view the slideshow here http://www.rubensteinpr.com/

Thanks!

<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>


adding

shuffle($banner_imgs_array);

line just before

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

should do the trick.


array_rand will return one or more random array keys. If you want to shuffle the array itself, use shuffle.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜