Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Вставка видео с ютуба в доп поле

Опубликовано:

Сделал вставку видео в доп поле, получилось только по 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}}

Рекомендованные сообщения

Опубликовано:
Как сделать вставку видео по ссылке?
Никак. Нужно извлечь ID из ссылки и его использовать.
Опубликовано:
  • Автор

@newbie, а если пользователь вставит ссылку, есть ли какой то способ извлечь ID из ссылки?

Опубликовано:
  • Автор

@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>

Опубликовано:
{{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}}

Опубликовано:
  • Автор

@newbie, спасибо, а куда именно это прописывать?)

Опубликовано:

newbie, спасибо, а куда именно это прописывать?)

 

В шаблон view

Опубликовано:
  • Автор

@newbie, хмм, так и делаю. Но ничего не меняется.

Опубликовано:

Как выглядит ссылка?

Опубликовано:
  • Автор

@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, так и не понял.

Изменено пользователем alcatras

Опубликовано:

А вот как ваш код задействовать который выше для извлечения id, так и не понял.

В моем коде ничего не извлекается.

$html - html-код плеера.

Нужно просто вставить код и заменить 13 на ID поля.

Опубликовано:
  • Автор

@newbie, а ссылку в html-коде плеера указать в таком виде?

https://www.youtube.com/embed/{значение доп поля}

Изменено пользователем alcatras

Опубликовано:
  • Автор

@newbie, получается то же самое, что я выше кинул

Опубликовано:

а ссылку в html-коде плеера указать в таком виде?

В каком коде?

В моем решение ничего делать дополнительно не нужно.

Там берется ссылка из поля, делается запрос и получаем html уже с плеером.

Опубликовано:
  • Автор

@newbie, ну я просто вставил этот код, указал id нужного поля. И просто видео не появляется. Прописал его на странице с файлом в карусели с картинками.

Опубликовано:

Дадите доступ в АЦ - посмотрю.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.