Как вывести несколько видео случайным образом.

12
nui
На сайте с 01.05.2010
Offline
139
nui
1075

Здравствуйте, уважаемые!

Помогите пожалуйста с кодом, я в этом практически не разбираюсь.

Вот этот код выводит одно случайное видео.

{if $lucky neq 0}

<iframe src="http://www.youtube.com/embed/{$lucky_id}?iv_load_policy=3&modestbranding=1&rel=0&autoplay=0" frameborder="0" allowfullscreen></iframe>
{/if}

Подскажите, как изменить код, чтобы выводилось несколько случайных видео?

I
На сайте с 01.05.2015
Offline
72
#1

nui, пример массива от куда выводите покажите, тогда может быть кто то и подскажет, если это вообще реально в вашем случае..

S
На сайте с 30.09.2016
Offline
469
#2

Глядя на этот кусок кода, могу дать только общую рекомендацию. Где-то "там далеко", где формируется пара переменных $lucky и $lucky_id, нужно сформировать несколько таких пар. А вместо представленного кода написать код, выводящий видео для каждой пары.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Крошка
На сайте с 23.12.2009
Offline
80
#3

насколько я понимаю, надо еще учесть вероятность выпадений двух - трех одинаковых видео. Так что учтите этот фактор

LinkBoss.net - Трастовые ссылки для увеличения трафика в 10 раз! (http://linkboss.net/)
nui
На сайте с 01.05.2010
Offline
139
nui
#4

ibatanov, вот такой код нашёл.

// lucky strike widget

if (isset($theme_setting['display_lucky_strike_widget']) AND $theme_setting['display_lucky_strike_widget'] == 1) {

$lucky = $general->lucky_strike();

$smarty->assign('lucky',$lucky);

if ($lucky != 0) {

foreach ($lucky AS $key=>$value) {

$smarty->assign('lucky_'.$key,$value);

}

}

}

S
На сайте с 30.09.2016
Offline
469
#5

Судя по этому:

if ($lucky != 0)
- это самописный код? Тогда будет правильнее обратиться к тому, кто этот код внедрял. Здесь мы увязнем в цепочке наводящих вопросов. Потому что тут используются какие-то функции и переменные, изменение которых может привести к неопределённым последствиям.
I
На сайте с 01.05.2015
Offline
72
#6

nui,

напишите:

echo "<pre>";

print_r($lucky);

перед:

foreach ($lucky AS $key=>$value)

обновите страницу эту, и сюда скрин... , после скрина строчки:

echo "<pre>";

print_r($lucky);

удалите =)

это танцы с бубнами конечно, за одну итерацию цикла выводить текущее и следующие значения массива или что там у вас, бог его знает.

S
На сайте с 30.09.2016
Offline
469
#7
ibatanov:

echo "<pre>";
print_r($lucky);

В конце ещё забыли

echo "</pre>";
А может быть, ещё и "die;" добавить, в зависимости от кода.
I
На сайте с 01.05.2015
Offline
72
#8

Sitealert, не критично для скрина будет... все равно табуляцию поставит как нужно... вроде как должно...) пхп в глаза не видел год с лишним, но раньше вроде так было

danforth
На сайте с 18.12.2015
Offline
153
#9

Ищите переменную lucky_id выше по коду. Например, что-то вроде

{assign var="lucky_id" value=youTube::getLuckyId()}

Можно через Ctrl+F и поиском "lucky_id"

Потом этот сниппет (участок кода) и +- 5 строк выше и ниже кидаете сюда. На YouTube вообще ID генерируется не рандомное число, для защиты от парсинга. Поэтому самая интересная часть кода в вашем случае, это сам генератор lucky_id переменной. Возможно там просто выборка из БД где хранятся ~100 видео.

Junior Web Developer
S
На сайте с 30.09.2016
Offline
469
#10
danforth:
Ищите переменную lucky_id выше по коду.

Не надо, это вот здесь:

$smarty->assign('lucky_'.$key,$value);
Тут, в принципе, всё более или менее ясно, но по хорошему - нужно переопределять массивы, а это может выйти боком в каком-то другом месте.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий