Рандомизировать изображения слайд-шоу - PullRequest
1 голос
/ 12 октября 2011

У меня есть это слайд-шоу 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 ]

2 голосов
/ 12 октября 2011

добавление

shuffle($banner_imgs_array);

строка перед

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

должен сделать трюк.

0 голосов
/ 12 октября 2011

array_rand вернет один или несколько случайных ключей массива. Если вы хотите перемешать сам массив, используйте shuffle .

...