Достать видео ID с помощью php или сделать lazy load iframe Есть решение
Необходимо из ссылки видео на ютуб, которая заложена в {$video.url} достать ее часть, а именно ID. Что я делаю не так и как это реализовать? Делаю одним из способов, которые представлены здесь https://coderoad.ru/2936467/pa...
ПС Мне это необходимо для реализации lazy load айфрейма с видео этим способом https://github.com/paulirish/l... , если есть другие способы - буду рад выслушать
<iframe src="<?php $subject="{$video.url}"; $url = parse_url($subject); parse_str($url['query'], $query); var_dump($query); ?> width="{$video.width}" height="{$video.height}" allowfullscreen></iframe>
2 ответа
Если речь о видео к товару, то URL находится в переменной {$product.video_url} и напрямую доступен в шаблоне. Есть ещё другие варианты типа
Но по факту сам URL на выходе одинаков. {$video} нужен, чтобы вытащить ширину, высоту и нулевой кадр заставку, а URL можно взять и просто из массива $product без этих выкрутасов.
Так же надо учесть тот факт, что движок Магазина преобразует ссылку на Ютуб к виду
Т.е. даже, если в товаре вы запостите URL вида
то в {$product.video_url} в БД все равно ляжет упрощенная версия youtu.be без https://
Далее в шаблоне вытаскиваете так
Можно усложнить и сделать даже так
Но эффект такой же как от простого replace парой строк выше, поэтому не стоит оно того.
Если вы хотите реализовать что-то иное, кроме товарного видео или сделать это вне приложения Магазин, то решения могут быть уже другие.
Благодарю!