Перейти к контенту

[2.1.x]Автоматический распознаватель swf/flv v3


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

  • 3 недели спустя...
  • Ответы 151
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Надо при редактировании парсить обратно с html в bb.

 

каким образом?

 

насколько я понял, если я добавил в код клипа тег <center><object ... </object></center>

то мне нужно в файле ./sources/classes/bbcode/class_bbcode.php добавить до и после тега <object> тег <center>

 

только вот тут я сомневаюсь в том, как правильно это сделать.

//find youtube
$txt = preg_replace_callback( "/(?:\&|\&)lt;object width=(?:\&|\&)quot;(\d+?)(?:\&|\&)quot; height=(?:\&|\&)quot;(\d+?)(?:\&|\&)quot;(.+?)(?:\&|\&)lt;param name=(?:\&|\&)quot;movie(?:\&|\&)quot; value=(?:\&|\&)quot;http:\/\/www\.youtube([\-nocookie]*?)\.com\/v\/(.+?)(?:\&|\&)quot;(?:\&|\&)gt;(.+?)(?:\&|\&)lt;\/object(?:\&|\&)gt;/is", array(&$this,"youtube"),	$txt);

 

там до и после слов object идут мнемоподстановки, и не совсем понятно куда и как вписать тег <center>.

 

а тут попроще (я уже добавил):

Find

	if ( $this->parse_html )
	{
		$txt = str_replace( "'", "'", $txt);
	}

Add after

	else
	{
		$txt = preg_replace("/<center><object width=\"425\" height=\"355\"(.+?)<param name=\"movie\" value=\"http:\/\/www\.youtube\.com\/v\/(.+?)\"><\/param>(.+?)<\/object><\/center>/s","\nhttp://www.youtube.com/watch?v=\\2\n",$txt);
	}

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
  • 2 недели спустя...

Класный мод, спасибо!

 

Нашел глюк, у меня по крайне мере на v2.3.4

Если редактировать пост через "Полное редактирование" то видео очищается после сохранения :D

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Вот такая беда получается если выполнить быстрое редактирование цитированного поста

 

http://trash.evermore.ru/f/17140_b40.jpg

 

Как это можно исправить?

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

а можно еще код для сервисов (день потратил. хотел по анологии сделать (ничег оне понимаю в реплейсах) не вышло):

http://ukrtube.com.ua

http://vidbox.ru

http://video.online.ua/

 

спасибо

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
Напишите что у вас в этой плюс/минус 5 строчках.
Ссылка на комментарий
Поделиться на других сайтах

Напишите что у вас в этой плюс/минус 5 строчках.

 

[none] function _parse_new_quote( $matches=array() )

{

//-----------------------------------------

// INIT

//-----------------------------------------

 

$return = array();

$quote_data = $matches[1];

$quote_text = $matches[2];

 

//-----------------------------------------

// No data?

//-----------------------------------------

 

if ( ! $quote_data )

{

return '

';

}

else

{

preg_match( "#\(post=(.+?)?:date=(.+?)?:name=(.+?)?\)#", $quote_data, $match );

 

if ( $match[3] )

{

$return[] = " name='{$match[3]}'";

}

 

if ( $match[1] )

{

$return[] = " post='".intval($match[1])."'";

}

 

if ( $match[2] )

{

$return[] = " date='{$match[2]}'";

}

 

return str_replace( ' ', ' ', '

' );

}

}

 

}

Find

 

$show = $url['show'];

 

Add after

 

if(preg_match("/^http:\/\/video\.mail\.ru\/(.+?)\/(.+?)\/(.+?)\/(\d+)\.html$/i",$show,$m))

{

return '<object width="400" height="300"><param name="flashvars" value="imaginehost=video.mail.ru&perlhost=video.mail.ru&alias='.$m[1].'&username='.$m[2].'&albumid='.$m[3].'&id='.$m[4].'&catalogurl=http://video.mail.ru/catalog/misc/&tagurl=" /><param name="allowscriptaccess" value="never" /><param name="movie" value="http://img.mail.ru/r/video2/player_v2.swf?par=http://content.video.mail.ru/'.$m[1].'/'.$m[2].'/'.$m[3].'/$'.$m[4].'$0$0" /><embed src="http://img.mail.ru/r/video2/player_v2.swf?par=http://content.video.mail.ru/'.$m[1].'/'.$m[2].'/'.$m[3].'/$'.$m[4].'$0$0" type="application/x-shockwave-flash" width="452" height="385" flashvars="imaginehost=video.mail.ru&perlhost=video.mail.ru&alias='.$m[1].'&username='.$m[2].'&albumid='.$m[3].'&id='.$m[4].'&catalogurl=http://video.mail.ru/catalog/misc/" allowscriptaccess="never"></embed></object>';

}

if(preg_match("/^http:\/\/rutube\.ru\/tracks\/(.+?)\.html\?v=(.+?)$/i",$show,$m))

{

return '<object width="400" height="353"><!--'.$m[1].'--><param name="movie" value="http://video.rutube.ru/'.$m[2].'"></param><param name="wmode" value="window"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"><embed allowscriptaccess="never" src="http://video.rutube.ru/'.$m[2].'" type="application/x-shockwave-flash" wmode="window" width="400" height="353" allowfullscreen="true" ></embed></object>';

}

if(preg_match("/^http:\/\/(?:www|ru)\.youtube\.com\/watch\?v=(.+?)$/i",$show,$m)

or preg_match("/^http:\/\/(?:www|ru)\.youtube\.com\/v\/(.+?)$/i",$show,$m))

{

return '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/watch?v='.$m[1].'&fs=1"></param><param name="wmode" value="transparent"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never" /><embed allowscriptaccess="never" src="http://www.youtube.com/watch?v='.$m[1].'&fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355" allowfullscreen="true"></embed></object>';

}

if(preg_match("/^http:\/\/smotri\.com\/video\/view\/\?id=(.+?)$/i",$show,$m))

{

return '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="330"><param name="movie" value="http://pics.smotri.com/scrubber_custom8.swf?file='.$m[1].'&bufferTime=3&autoStart=false&str_lang=eng&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color_lightaqua.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="never" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/scrubber_custom8.swf?file='.$m[1].'&bufferTime=3&autoStart=false&str_lang=eng&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color_lightaqua.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="never" allowfullscreen="true" wmode="window" width="400" height="330" type="application/x-shockwave-flash"></embed></object>';

}[/none]

 

На теги [none] [/none] -не смотрите, я хотел скрытый текст сделать.

Ссылка на комментарий
Поделиться на других сайтах

Find

 

$show = $url['show'];

 

Add after

Это уже следующий пункт :D

 

И кстати, если вы хотите обновиться потом на версию для 2.3 с расширенным функционалом, сделайте обязательно бекап, будет проще откатиться.

Ссылка на комментарий
Поделиться на других сайтах

Поставить мод по инструкции. Вы вместо того что надо вставили ещё и кусок инструкции и код к ней. Вернитесь к оригиналу файла и внимательнее выполняйте инструкцию.
Ссылка на комментарий
Поделиться на других сайтах

Еще можете перевести, вот это, то есть куда вот этот кусок "сувать":

 

	/*-------------------------------------------------------------------------*/
// regex_build_url: Checks, and builds the a href
/*-------------------------------------------------------------------------*/

Add before

function vkadre($flashvars)
{
	$flashvars=str_replace("&amp;","&",stripslashes($flashvars));
	return '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="460" height="345" ><param name="movie" value="http://vkadre.ru/swf/VkadrePlayer.swf?1" /><param name="allowfullscreen" value="true" /><param name="flashvars" value="'.$flashvars.'" /><param name="allowscriptaccess" value="never"><embed allowscriptaccess="never" type="application/x-shockwave-flash" src="http://vkadre.ru/swf/VkadrePlayer.swf?1" width="460" height="345" allowfullscreen="true" flashvars="'.$flashvars.'" /></object>';
}
function youtube($vars)
{
	$movie=str_replace("&amp;","&",stripslashes($vars[5]));
	$nocookie = ($vars[4]=='-nocookie')?'-nocookie':'';

	return '<object width="'.$vars[1].'" height="'.$vars[2].'"><param name="movie" value="http://www.youtube'.$nocookie.'.com/v/'.$movie.'"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><embed src="http://www.youtube'.$nocookie.'.com/v/'.$movie.'" type="application/x-shockwave-flash" allowscriptaccess="never" allowfullscreen="true" width="'.$vars[1].'" height="'.$vars[2].'"></embed></object>';
}

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
mimas, обсуждение новой версии для 2.3.x в отдельной теме: http://forums.ibresource.ru/index.php?showtopic=60439.
Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...
Все отлично работает за одни ездинственным "но" необходимо включать "HTML код" каждый раз, т.к. по умолчанию он выключен, соответственно необходимо отвечать развернуто, что неудобно. Подскажите как сделать чтобы по умолчанию html был включен.
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

помогите пож. доработать уже рабочий код под новый тип VIMEO. теперь vimeo использует протокол https. проблем нет, если только добавить букву s в коде, но хочется чтобы и старый вариант работал - http. в общем чтобы обе ссылки начинающиеся на http и https преобразовывались корректно и при редактировании ест-но корректно возвращались в редакторе. спасибо.

 

$txt = preg_replace("/<object(.+?)http:\/\/www\.vimeo\.com\/moogaloop.swf\?clip_id=(.+?)(\"><)(.+?)<\/object>/is","\nhttp://www.vimeo.com/\\2", $txt);

 

 

 

if(preg_match('/^http:(\/\/|\/\/www.)vimeo\.com\/(.+?)$/i',$show,$m))
  	{
       return '<br /><object type="application/x-shockwave-flash" width="640" height="360" data="http://www.vimeo.com/moogaloop.swf?clip_id='.$m[2].'"><param name="quality" value="best" /><param name="allowfullscreen" value="true" /><param name="scale" value="showAll" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id='.$m[2].'" /></object><br />';

Изменено пользователем AEC
Ссылка на комментарий
Поделиться на других сайтах

$txt = preg_replace("/<object(.+?)(https?)://www.vimeo.com/moogaloop.swf?clip_id=(.+?)("><)(.+?)</object>/is","n\2://www.vimeo.com/\3", $txt);

 

if(preg_match('/^(https?)\/\/|\/\/www.)vimeo\.com\/(.+?)$/i',$show,$m))
  	{
       return '<br /><object type="application/x-shockwave-flash" width="640" height="360" data="$m[1]://www.vimeo.com/moogaloop.swf?clip_id='.$m[3].'"><param name="quality" value="best" /><param name="allowfullscreen" value="true" /><param name="scale" value="showAll" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id='.$m[3].'" /></object><br />';

Ссылка на комментарий
Поделиться на других сайтах

спасибо, но не работает ваш код. даже ошибку возвращает. там насколько я вижу нужно добавить \ в соответствующих местах. но даже просто используя выражение (https?) код к сожалению не работает.
Ссылка на комментарий
Поделиться на других сайтах

слэши почему-то побились

 

$txt = preg_replace("/<object(.+?)(https?):\/\/www\.vimeo\.com\/moogaloop\.swf\?clip_id=(.+?)(\"><)(.+?)<\/object>/is", "n\\2://www.vimeo.com/\\3", $txt);


if(preg_match('/^(https?)\/\/|\/\/www.)vimeo\.com\/(.+?)$/i',$show,$m))
{
       return '<br /><object type="application/x-shockwave-flash" width="640" height="360" data="'.$m[1].'://www.vimeo.com/moogaloop.swf?clip_id='.$m[3].'"><param name="quality" value="best" /><param name="allowfullscreen" value="true" /><param name="scale" value="showAll" /><param name="movie" value="'.$m[1].'://www.vimeo.com/moogaloop.swf?clip_id='.$m[3].'" /></object><br />';

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.