We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 122
    • 18 Posts
    Добрый день, товарищи. Буду признателен, если вы мне подскажете, как сделать такую штуку...

    [!Wayfinder? &outerTpl=`outer` &rowTpl=`row`!]


    rowTpl такой
    <div class="stickerss" style="background-repeat: no-repeat; background-image: url(assets/images/bgs/[color=red]rotate.php[/color]); float: left;">
    <table border="0" width="400px"><tr><td height="478px" valign="top" align="center"><a href="[+wf.link+]" title="[+wf.title+]"[+wf.attributes+]>[+wf.linktext+]</a></td></tr></table>
    </div>


    Rotate.php - скрипт, лежащей в папке с пятью картинками, которые рандомно ставятся на фон дива.
    Только когда выводится несколько пунктов меню в WF, на фон рандомно становится одинаковый фон. То есть при обновлении страницы на фон ко всем строкам меню встаёт один из 5 фонов.

    Задача: сделать так, чтобы на фоне у каждого из пунктов меню была рандомно своя (из пяти имеющихся) картинка.
    Есть ли возможность? чтобы WF присваивал каждому элементу меню класс рандомом из 5?
    Тогда можно было бы в CSS расписать каждый из классов с закреплённым за каждым фоном.

    Надеюсь, я понятно объяснил суть проблемы.

      • 122
      • 18 Posts
      Спрошу иначе:

      Как сделать, чтобы каждый пункт меню на выходе имел свой id, выбранный рандомно из 4ёх возможных вариантов?
        • 26744
        • 157 Posts
        Можно использовать функцию array_rand

        простой пример:
        $a=array(’red’,’green’,’blue’,’yellow’);
        $t=array_rand($a, count($a));
        for ($i=0; $i<count($a); $i++) {
        echo $a[$t[$i]];
        echo "
        ";
        }
          • 122
          • 18 Posts
          Пасиб.
          А куда это теперь вставить, чтобы всё работало?)))
          Чанк для вывода пункта меню такой:
          <div class="stickerss" style="background-repeat: no-repeat; background-image: url(assets/images/bgs/[color=red]rotate.php[/color]); float: left;">
          <table border="0" width="400px"><tr><td height="478px" valign="top" align="center"><a href="[+wf.link+]" title="[+wf.title+]"[+wf.attributes+]>[+wf.linktext+]</a></td></tr></table>
          </div>
            • 26744
            • 157 Posts
            Логика:
            вызываем четыре Wayfinder-а с разными чанками. Чанки подставляются в случайном порядке.

            1. Создаем новый сниппет:
            <?php
            $a=array(’red’,’green’,’blue’,’yellow’);
            $t=array_rand($a, count($a));
            for ($i=0; $i<count($a); $i++) {
            ?>
            [[Wayfinder? &outerTpl=`outer` &rowTpl=`row_<? echo $a[$t[$i]];?>`]]
            <?
            }
            ?>

            2. Создаем четыре чанка с именами row_red, row_green, row_blue, row_yellow
            3. Запускаем.

            Теоретически будет работать. Сам не проверял.
            P.S. сбрось ссылочку посмотреть результат