Как реализовать случайные li для ul?
Как можно сделать, что бы для одного ul выдавало несколько случайных li. Допустим из 10 li, будет выходить рандомные 3?
Комментарии: 5
1. Создаем сниппет (random_list):
2. Вызываем:
<?php
$total = intval($total);
$list = explode("||", $input);
$random_items = array_rand($list, $total);
$result = '';
for ($i = 1; $i <= $total; $i++) {
$result .= '<li>' . $list[$random_items[$i - 1]] . '</li>';
}
return $result;
2. Вызываем:
<ul>
[[!random_list? &input=`Значение1||2||3||десять||8` &total=`3`]]
</ul>
Ох, забыл написать что решено. Вот как я сделал. Спасибо за помощь.
<?php
$input = array(
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
'<a href="#"><li>...</li></a>',
);
echo '<ul>';
$rand_keys = array_rand($input, 3);
echo '<li>' . $input[$rand_keys[0]] . '</li>';
echo '<li>' . $input[$rand_keys[1]] . '</li>';
echo '<li>' . $input[$rand_keys[2]] . '</li>';
echo '</ul>';
сниппет не должен делать echo он лишь возвращать должен массив, а чанк этот массив распечатывает!
То есть, лучше сделать как приведенный пример выше?
Сниппет возвращает данные, чанки возвращают результат в виде html
Даже в примере выше li был лишним
Даже в примере выше li был лишним
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.