Block Designer Pro や画像スライダーのリピートアイテムをランダム表示する。


concrete5 でオリジナルのリピート要素なブロックを作れる Block Designer Pro.

時々、スライドショーなどで、順番通りじゃなくて、ランダムに表示させたい時があるので、その時の技。

view.php にリピートアイテム (例では $slideshow_items )の情報が格納されている array をシャッフルするコードを書きます。ただ、単に shuffle() を使うと、キーがめちゃくちゃになるので、キーだけを取り出して、その順番だけをシャッフルして、他の情報は追従するようにします。

注) $slideshow_items の「$slideshow」の部分は、自分が決めた repeatable のハンドルが使われるので、適宜変更してください。

$slideshow_item_keys = array_keys($slideshow_items);
shuffle($slideshow_item_keys);
foreach($slideshow_item_keys as $key){
    $slideshow_random_items[$key] = $slideshow_items[$key];
}

あとは view.php の foreach を $slideshow_items から $slideshow_random_items に変更すれば OK

というか、Ramon に機能追加要望を出したので、将来の Block Designer Pro にはオプションで登場するかも。

参考
http://www.programming-magic.com/20070905162631/