alcatras 2 06/05/2019 11:37 PM Сделал вставку видео в доп поле, получилось только по id видео. Как сделать вставку видео по ссылке? Что бы ссылка преобразовалась в iframe. Как в редакторе.Знаю что можно через поле типа "Редактор" сделать, но мне нужно сделать доп поле без использования редактора для пользователей.Вот код: {{if $cfields['field_13']['value']}} {{$link = strip_tags($cfields['field_13']['value']);}} <li class='ipsCarousel_item ipsAreaBackground_reset ipsPad_half' data-ipsLazyLoad> <iframe width="385" height="225" src="https://www.youtube.com/embed/{$link}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></li> {{endif}} Share this post Link to post
newbie 1,721 06/06/2019 06:22 AM Как сделать вставку видео по ссылке? Никак. Нужно извлечь ID из ссылки и его использовать. Share this post Link to post
alcatras 2 06/06/2019 01:24 PM @newbie, а если пользователь вставит ссылку, есть ли какой то способ извлечь ID из ссылки? Share this post Link to post
alcatras 2 06/06/2019 04:43 PM @newbie, к примеру с помощью подобных скриптов. Можно это реализовать именно для доп поля? <script type="text/javascript"> function youTubeGetId(url) { var expression = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be[.]?\/|youtube\.com[.]?\/(?:embed\/|v\/|watch\/?\?(?:\S+=\S*&)*v=))([\w-]{11})\S*$/; return url.match(expression) ? RegExp.$1 : undefined; } </script> Share this post Link to post
newbie 1,721 06/08/2019 10:28 AM {{if $value = trim(strip_tags($cfields['field_13']['value']))}} {{$cacheKey = 'downloads_cfield_embed_' . md5($value); try { $html = \IPS\Data\Cache::i()->getWithExpire($cacheKey, TRUE); } catch (\Exception $e) { $html = \IPS\Text\Parser::embeddableMedia(\IPS\Http\Url::createFromString($value, FALSE), TRUE); \IPS\Data\Cache::i()->storeWithExpire($cacheKey, $html, \IPS\DateTime::create()->add(new \DateInterval('P10D')), TRUE); } }} {{if $html}} {$html|raw} {{endif}} {{endif}} Share this post Link to post
alcatras 2 06/08/2019 12:59 PM @newbie, спасибо, а куда именно это прописывать?) Share this post Link to post
newbie 1,721 06/09/2019 04:38 AM newbie, спасибо, а куда именно это прописывать?) В шаблон view Share this post Link to post
alcatras 2 06/09/2019 12:51 PM @newbie, хмм, так и делаю. Но ничего не меняется. Share this post Link to post
alcatras 2 06/10/2019 03:34 PM (edited) @newbie, именно сейчас у меня так {{if $cfields['field_13']['value']}} {{$link = strip_tags($cfields['field_13']['value']);}} <li class='ipsCarousel_item ipsAreaBackground_reset ipsPad_half' data-ipsLazyLoad> <iframe width="385" height="225" src="https://www.youtube.com/embed/{$link}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></li> {{endif}} Ссылку прописал так:https://www.youtube.com/embed/{$link} А вот как ваш код задействовать который выше для извлечения id, так и не понял. Edited June 10, 2019 by alcatras Share this post Link to post
newbie 1,721 06/12/2019 05:21 AM А вот как ваш код задействовать который выше для извлечения id, так и не понял. В моем коде ничего не извлекается.$html - html-код плеера.Нужно просто вставить код и заменить 13 на ID поля. Share this post Link to post
alcatras 2 06/12/2019 07:33 PM (edited) @newbie, а ссылку в html-коде плеера указать в таком виде? https://www.youtube.com/embed/{значение доп поля} Edited June 12, 2019 by alcatras Share this post Link to post
alcatras 2 06/12/2019 07:38 PM @newbie, получается то же самое, что я выше кинул Share this post Link to post
newbie 1,721 06/13/2019 08:17 AM а ссылку в html-коде плеера указать в таком виде? В каком коде?В моем решение ничего делать дополнительно не нужно.Там берется ссылка из поля, делается запрос и получаем html уже с плеером. Share this post Link to post
alcatras 2 06/13/2019 01:04 PM @newbie, ну я просто вставил этот код, указал id нужного поля. И просто видео не появляется. Прописал его на странице с файлом в карусели с картинками. Share this post Link to post