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

12
nui
На сайте с 01.05.2010
Offline
139
nui
#11
ibatanov:
nui,
напишите:
echo "<pre>";
print_r($lucky);

перед:
foreach ($lucky AS $key=>$value)

обновите страницу эту, и сюда скрин... , после скрина строчки:
echo "<pre>";
print_r($lucky);
удалите =)
это танцы с бубнами конечно, за одну итерацию цикла выводить текущее и следующие значения массива или что там у вас, бог его знает.

Вот сделал.

jpg 01.jpg
I
На сайте с 01.05.2015
Offline
72
#12

nui,

вот так попробуйте, добавить след. код.

$lucky_second = $general->lucky_strike();

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

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

}

в шаблоне {$lucky_second_id} и так далее...

если не прокатит нада лезть во внутрь метода $general->lucky_strike() и смотреть как он работает

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

Начались вышеупомянутые "танцы с бубном":). Сразу два замечания:

1) будет не несколько видео, а 2;

2) надо учесть справедливое пожелание

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

А в самом первом посте нет ошибки? Там действительно $lucky_id, а не $lucky_youtube_id?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
I
На сайте с 01.05.2015
Offline
72
#14

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

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

Получается примерно так: в контроллере код

// lucky strike widget

if (isset($theme_setting['display_lucky_strike_widget']) and $theme_setting['display_lucky_strike_widget'] == 1) {
$disp_num = 4; //Количество клипов; можно задавать в админке
$id_check = array();
$lucky_ = array();
for($i=0;$i<$disp_num;){
$arr = $general->lucky_strike();
if($arr && !in_array($arr['id'], $id_check)){
$lucky_[] = $arr;
$id_check[] = $arr['id'];
$i++;
}
}
$smarty->assign('lucky_',$lucky_);
}
а в шаблоне
{if $lucky }

{foreach item=lucky from=$lucky_}
<iframe src="http://www.youtube.com/embed/{$lucky.youtube_id}?iv_load_policy=3&modestbranding=1&rel=0&autoplay=0" frameborder="0" allowfullscreen></iframe>
{/foreach}
{/if}
Использовал всё-таки youtube_id. Однако там ещё куча элементов в массиве, и наверняка они где-то используются (что-то типа рейтинга, например). Тогда и там надо будет подправить код. Должно работать, правда проверить можно только на реальном сайте. Лично у меня этот долбаный шаблонизатор Смарти нигде не установлен, потому что я эти костыли не люблю.
12

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