ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Теги на форуме

 

1163
Денис @Анатолич
Мне бы хотелось более глубоко отредактировать теги на форуме.
но не совсем пойму по какому принципу они работают.
например тег для видео с ютуба.
etags[i]=new Array(/\[video\]https:\/\/www.youtube.com\/watch\?v=(.*?)\[\/video\]/g,'<iframe width="685" height="410" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>');i++;
при определенных обстоятельствах он работать не будет. вернее будет но вместо видео выведет черный квадрат.
например если ссылка будет такой навороченой **********&list=PLC2D1C5FC9A554F32#t=41
мне нужно из строчки **********
извлечь цифру 41
затем разбить её на массив до знака# использовать только нулевую (левую) часть массива).
уже этот массив снова разбить только до символа &
$1 нужно сделать равным левой части последнего массива.
а цифру 41 использовать в переменной которую мне тоже нужно использовать в коде <iframe width="685" height="410" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>'
как разбить строчки как извлечь цифры, и поменять на нужный мне код я знаю.
Показать текст

но не могу понять можно ли это реализовать для массива форумных тегов?
подскажите плиз.

Отредактировано Анатолич - 08.01.2015
318
Алекс @Рой31
Анатолич пишет:

Мне бы хотелось более глубоко отредактировать теги на форуме.
но не совсем пойму по какому принципу они работают.
например тег для видео с ютуба.
etags[i]=new Array(/\[video\]https:\/\/www.youtube.com\/watch\?v=(.*?)\[\/video\]/g,'<iframe width="685" height="410" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>');i++;
при определенных обстоятельствах он работать не будет. вернее будет но вместо видео выведет черный квадрат.
например если ссылка будет такой навороченой **********&list=PLC2D1C5FC9A554F32#t=41
мне нужно из строчки **********
извлечь цифру 41
затем разбить её на массив до знака# использовать только нулевую (левую) часть массива).
уже этот массив снова разбить только до символа &
$1 нужно сделать равным левой части последнего массива.
а цифру 41 использовать в переменной которую мне тоже нужно использовать в коде <iframe width="685" height="410" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>'
как разбить строчки как извлечь цифры, и поменять на нужный мне код я знаю.
Показать текст

но не могу понять можно ли это реализовать для массива форумных тегов?
подскажите плиз.

тут нужно правильно написать регулярные выражения
etags[i]=new Array(/\[video\]https:\/\/www.youtube.com\/watch\?v=(.*?)\[\/video\]/g,'<iframe width="685" height="410" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>');i++;

Отредактировано Рой31 - 05.01.2015
1163
Денис @Анатолич
Рой31, я не знаю, что скрыто под смайликом. но похоже вы скопировали мой же код из первого поста.
он рабочий, но иногда может косячить. Простым людям сложно понять что нужно какие то закорючки в ссылке вручную удалять.
и вдобавок было бы полезно иногда ролик не с начала ставить. а с определенного момента.

2
GoDaddy @GoDaddy
Анатолич пишет:

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

в файле forum.inc найти :
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
etags[i]=new Array(/\[img\](https?:\/\/[^ "]+?)\[\/img\]/,'<img src="$1" border=0 style="position:relative;">',1);i++; //одноразовая замена для лимита
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ниже добавить :
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
etags[i]=new Array(/\[video\]http[s]*:\/\/www\.youtube\.com\/watch\?.*?v=(([A-Za-z0-9.\-])*)*(.*[\s\S]*?)\[\/video\]/g,'<iframe width="560" height="315" src=//www.youtube.com/embed/$1 frameborder="0" allowfullscreen></iframe>');i++;

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
найти
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tags+="<input title=картинка class=ok type=button value='Img' onclick=ftags('[img]','[/img]')> ";
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ниже добавить :
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tags+="<input title=вставить-видео class=ok type=button value='youtube' onclick=ftags('[video]','[/video]')> ";
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Отредактировано GoDaddy - 07.01.2015
1163
Денис @Анатолич
как много советов) и все они копируют, код из старт поста)
Спасибо от души) 😀
а по поводу способа, кое какие идеи появились. думаю через фильтрацию можно решить.

2615
Сергей @Pegass
Анатолич, я не понял задачу, нужно отправить одно видео из плейлиста или весь плейлист?

1163
Денис @Анатолич
Pegass, задача отфильтровать ссылку. в примере красным я выделил тут часть ссылки которая даст сбой.
не сработает вставка видео. красное нужно отбросить.
Это упрощенный вариант.
Более сложный вариант. помимо того что красная часть отбросится.
Вернее до того как она отбросится, из неё еще нужно извлечь цифру после символов "#t="
создать переменную, равную этой цифре и в дальнейшем использовать её в коде. <iframe width="685" height="410" src=//www.youtube.com/embed/$1 ;start='+переменная+' frameborder="0" allowfullscreen></iframe>
тогда длинный ролик можно включать с определенной секунды. что в некоторых случаях будет крайне полезно.

пока пробую ковыряться в разделе "фильтрация картинок, смайлов, ссылок".
но почему то там в массиве etags[k][] нет тегов отвечающих за вставку видео.
Только те теги которые были в форуме по умолчанию (шрифт, цвет, картинки и.т.п.)

2615
Сергей @Pegass
Анатолич, а, ну это проще паренной репы

etags[i]=new Array(/\[video\]https?:\/\/www.youtube.com\/watch\?v=([^&]*?)(&[^#&]*)?(#t=(.*?))?\[\/video\]/g,'<iframe width="685" height="410" src="//www.youtube.com/embed/$1?rel=0&amp;showinfo=0&amp;start=$4" frameborder="0" allowfullscreen></iframe>');i++;

Отредактировано Pegass - 07.01.2015
1163
Денис @Анатолич
Pegass, респект и Уважуха. А можно понаглеть?
не будет ли столь любезен многоуважаемый джин. Расскажи плиз.
какие действия производит например этот код.
(&[^#&]*)?(#t=(.*?))
и откуда берутся переменные?
вот например у тебя $4;
Понимаю, что вопросы слишком навязчивые и дилетанские.
Поэтому ответ вроде "изучай регулярки" и посыл по ссылке меня бы устроил.

Отредактировано Анатолич - 07.01.2015
2615