ivideo не распознает ссылки с youtube формата Shorts.

#16 20 ноября 2022 в 02:23

Такое подключение скрипта вызывает ошибку 500 и сайт вообще не грузится.

vikont

ошибка 500 (если нет других проблем) из-за того, что слово shortreplace в одинарных кавычках — там не нужны — то есть чтобы не было 500: 'js/shortsreplace.js'

Метод подключения js, как я понял, в шаблонах двойки такой:

1. js файл кладём в папку /js используемого шаблона

2. в самом шаблоне в main.tpl или в нужном контроллере указываем только имя файла без пути и разрешения в таком виде:

<?php $this->addTplJSName('shortsreplace'); ?>

Нил™

Так ошибки нет, но и скрипта в коде страницы тоже.
В коде страницы есть такая строка
<input type=«hidden» class=«form-control input» name=«video» value="" id=«video» /><div id=«video-parse-video» class=«city-input»>
Из нее я сделал вывод, что надо писать так
$("#video").on(«input», function()
Или ошибаюсь?

#17 20 ноября 2022 в 03:04

Да похоже что так, насчёт id=«video».

А то, что скрипт так и не появился на странице, не знаю, возможно ещё какие то нюансы, вроде в двойке есть опция «объединять Js файлы и если она используется, надо делать сброс кэша (абстрактный счётчик), либо ещё что-то. Вообще, вот тут github.com/instantsoft/icms2/blob/master/templates/modern/controllers/rating/widget.tpl.php#L53 приводят пример того, что можно скрипт добавлять прямо в файл шаблона как я предлагал в первых сообщениях

#18 20 ноября 2022 в 18:10

Да похоже что так, насчёт id=«video».

А то, что скрипт так и не появился на странице, не знаю, возможно ещё какие то нюансы, вроде в двойке есть опция «объединять Js файлы и если она используется, надо делать сброс кэша (абстрактный счётчик), либо ещё что-то. Вообще, вот тут github.com/instantsoft/icms2/blob/master/templates/modern/controllers/rating/widget.tpl.php#L53 приводят пример того, что можно скрипт добавлять прямо в файл шаблона как я предлагал в первых сообщениях

Нил™

Когда добавляю скрипт в файл шаблона, он виден в коде. Но не работает!
Вот почему, не могу понять, что я делаю не так?
Не в тот шаблон вставляю, не в то место… В общем стопорнулся... 
Но никто из знатоков двойки в обсуждению темы так и не подключился.

#19 20 ноября 2022 в 19:25

Когда добавляю скрипт в файл шаблона, он виден в коде. Но не работает!
Вот почему, не могу понять, что я делаю не так?
Не в тот шаблон вставляю, не в то место…

vikont

нет, если скрипт виден в коде, то с вашей стороны всё нормально, просто я его использую после инпута, у вас он выше. Если попробуете вывести виджетом ниже инпута наверняка сработает.

Но для исправления, попробуйте так:

  1. $(document).ready(function(){
  2. $("#videolink").on("input", function() {
  3. var oL = $(this).val();
  4. if ( oL.search("youtube.com/shorts") != -1 ) {
  5. nL = oL.replace("youtube.com/shorts","youtu.be");
  6. $("#videolink").val(nL);
  7. alert("Вместо ссылки в формате Shorts " + oL + " будет использована стандартная ссылка " + nL);
  8. }
  9. });
  10. });

добавилась одна строка вначале и одна вконце. Соответственно вместо #videolink — ид как у вашего поля, кэши почистить.

#20 20 ноября 2022 в 21:32

Когда добавляю скрипт в файл шаблона, он виден в коде. Но не работает!
Вот почему, не могу понять, что я делаю не так?
Не в тот шаблон вставляю, не в то место…

vikont

нет, если скрипт виден в коде, то с вашей стороны всё нормально, просто я его использую после инпута, у вас он выше. Если попробуете вывести виджетом ниже инпута наверняка сработает.

Но для исправления, попробуйте так:

  1. $(document).ready(function(){
  2. $("#videolink").on("input", function() {
  3. var oL = $(this).val();
  4. if ( oL.search("youtube.com/shorts") != -1 ) {
  5. nL = oL.replace("youtube.com/shorts","youtu.be");
  6. $("#videolink").val(nL);
  7. alert("Вместо ссылки в формате Shorts " + oL + " будет использована стандартная ссылка " + nL);
  8. }
  9. });
  10. });

добавилась одна строка вначале и одна вконце. Соответственно вместо #videolink — ид как у вашего поля, кэши почистить.

Нил™

Вот так выглядит код скрипта на странице вставки видео, после помещения его в виджет HTML Скрипт виден под input. Не работает.
Может быть потому, что я вношу ссылку во всплывющее окно?

  1. <div class="widget_html_block"><script>$(document).ready(function(){
  2. $("#video").on("input", function() {
  3. var oL = $(this).val();
  4. if ( oL.search("youtube.com/shorts") != -1 ) {
  5. nL = oL.replace("youtube.com/shorts","youtu.be");
  6. $("#video").val(nL); alert("Вместо ссылки в формате Shorts " + oL + " будет использована стандартная ссылка " + nL);
  7. }
  8. });
  9. });</script></div>
#21 20 ноября 2022 в 22:22

В общем, нашёл сайт, где можно протестировать предлагаемый вариант. Добавил на страницу html виджет, внутри которого этот js скрипт. Правда на сайте, где я тестировал, id нужного поля не «video», как у вас, а «movie_link» (?). 

И вот што получается youtu.be/G7Jz-zDupdk

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

По поводу всплывающего окна, если вы видели инпут и скрипт в исходно коде одной и той же странице — работать должно.

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

#22 20 ноября 2022 в 22:34

В общем, нашёл сайт, где можно протестировать предлагаемый вариант. Добавил на страницу html виджет, внутри которого этот js скрипт. Правда на сайте, где я тестировал, id нужного поля не «video», как у вас, а «movie_link» (?). 

И вот што получается youtu.be/G7Jz-zDupdk

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

По поводу всплывающего окна, если вы видели инпут и скрипт в исходно коде одной и той же странице — работать должно.

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

Нил™

Интересно. Сколько это может стоить и кто возмется сделать?

#23 27 ноября 2022 в 20:30

Желающих помочь нет? У всех на ivideo работают ссылки с youtube формата Shorts?
Или я один остался на этом компоненте?

#24 27 ноября 2022 в 20:36

Желающих помочь нет? У всех на ivideo работают ссылки с youtube формата Shorts?
Или я один остался на этом компоненте?

vikont

А в поддержку ivideo не обращались? 

#25 28 ноября 2022 в 18:24

Желающих помочь нет? У всех на ivideo работают ссылки с youtube формата Shorts?
Или я один остался на этом компоненте?

vikont

А в поддержку ivideo не обращались? 

saturn

Конечно нет. Как я могу такого занятого человека как Fuze беспокоить мелочами?

#26 28 ноября 2022 в 19:59

В таблице cms_video_providers указаны регулярные выражения для ссылок. Дополните его в поле regexp для записи, где url равно youtube.com.

#27 28 ноября 2022 в 22:43

В таблице cms_video_providers указаны регулярные выражения для ссылок. Дополните его в поле regexp для записи, где url равно youtube.com.

Fuze

Спасибо! Но можно для тупых, ткнуть пальцем, что именно и куда вписать. Методом научного тыка не получилось. ((

...Изображение
#28 1 декабря 2022 в 20:17

Коллеги! Fuze, как всегда сильно занят, чтобы отвечать на идиотские вопросы...
Может быть кто то понял что посоветовал Fuze? Растолкуйте.
Я ничего не понял.

#29 1 декабря 2022 в 21:47

Не проверял, но попробуйте значение таблицы изменить на (сохраните сначала кудо нибудь, вдруг не сработает)

  1. #(youtu.*be.*)\/(watch\?v=|embed\/|v|shorts|)(.*?((?=[&\#?])|$))#ui

Щас у меня нет установленный ivideo поэтому сами попробуйте от сюда взять паттерны stackoverflow.com/questions/71000139/javascript-regex-for-youtube-video-and-shorts-id 

и в таблице заменить.

Например скопируйте это

Изображение

И в таблице вставите между двух решеток #

Изображение

#30 1 декабря 2022 в 21:52

Изменить регулярное выражение в ячейке, обведённой красным у вас на скриншоте, например вот так (не проверял)

  1. #(?:http|https):\/\/(?:\w+\.)?youtube\.com\/(?:watch|shorts\/)(?:\?.*v=|)([^&]+).*$#ui
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.