проигрыватель flv на форуме

Статус
В этой теме нельзя размещать новые ответы.

ledsky

Постоялец
Регистрация
21 Мар 2008
Сообщения
56
Реакции
5
FLV проигрыватель на форуме IPB.



Что надо:

flv player - 1 шт.
Файлы IP.Board - 2 шт
Новый шаблон в стилях - 1 шт.



Инструкция к действию:
1. Качаем flv player
2. Изменяем класс загрузки для того, что бы он не переименовывал flv файлы
./ips_kernel/class_upload.php
Добавляем новую логику в условие на проверку расширения. Меняя

Код:
if ( $this->force_data_ext and ! $this->is_image )

{

$this->file_extension = str_replace( ".", "", $this->force_data_ext ); 

}

на

Код:
if ( $this->force_data_ext and ! $this->is_image and $this->file_extension != 'flv' )

{

$this->file_extension = str_replace( ".", "", $this->force_data_ext ); 

}


3. Изменяем класс работы с прикрепленными файлами. Наша цель при обнаружении flv файлов вставленных в текст сообщения подменять их flv player ом.

Для этого находим в /sources/classes/attach/class_attach.php

Код:
//-----------------------------------------

// Is it an image, and are we viewing the image in the post?

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

                

if ( $this->ipsclass->vars['show_img_upload'] and $row['attach_is_image'] )

{

добаляем перед данным текстом следующее :

Код:
//-----------------------------------------

// Is it flash video file, and are we viewing the video in the post?

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

                if ( $row['attach_ext'] == 'flv' )

                {

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

                    // Make sure we've not seen this ID

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

                        

                    $row['_attach_id'] = $row['attach_id'] . '-' . preg_replace( "#[\.\s]#", "-", microtime() );


                    $tmp = $this->ipsclass->compiled_templates[ $skin_name ]->show_attachments_flv( 

                    array( 'location'  => $this->ipsclass->vars['upload_url'] . '/' . $row['attach_location'],

                              'attach_id'  => $row['_attach_id'],

                                                                            )    );

                        

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

                        // Convert HTML

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

                        

                        $_count = substr_count( $html, '[attachment='.$row['attach_id'].':' );


                        if ( $_count )

                        {

                            # Just the one, then?

                            $html = preg_replace( "#\[attachment=".$row['attach_id']."\:(?:[^\]]+?)[\n|\]]#is", $tmp, $html );

                        }

                   

                }

4.Далее идём в админку форума (внешний вид – список стилей ), справа от стиля выбираем «изменить HTML шаблоны», выбираем skin_topic
Добавляем в skin_topic новый шаблон с именем show_attachments_flv, входными данными $data=array()
содержимое шаблона такое:


Код:
<div id='$data[attach_id]'>Для просмотра ролика необходимо скачать <a href="http://www.macromedia.com/go/getflashplayer">Flash Player</a></div>

<script type="text/javascript" src="jscripts/swfobject.js"></script>
<script type="text/javascript">
var so = new SWFObject('flvplayer.swf','mpl','320','240','7');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('displayheight','240');
so.addVariable('file','$data[location]');
so.addVariable('height','240');
so.addVariable('width','320');
so.write("$data[attach_id]");
</script>


5. Закинуть файлы из архива flv player:

flvplayer.swf - в корень (я закинул 2 файла swf в корень своего форума поскольку там была какаято муть с названиями и я заморачиваться не стал, в скачанов вами архиве оригинал называется mediaplayer.swf)

swfobject.js - в jscripts

6. Добавить новый тип файлов в АЦ.
УПРАВЛЕНИЕ -> Прикрепляемые файлы -> Типы файлов -> Добавить новый тип

Расширение прикрепляемого файла - flv
MIME-тип файла - unknown/unknown
Разрешить прикреплять этот тип файла к сообщениям? – Да


КАК ПОСТИТЬ ПРАВИЛЬНО :
вставляем в сообщение тег [attachmentid=xxx]
обязательно
без возражений
для этого есть кнопка во всех версиях ипб
в старших она в выпадающем меню справа вверху в форме загрузки (там где файл загружаете. Сначала грузим файл потом крепим тег)



Данное творение не моё, я просто облегчил мануал и постарался исправить непонятные моменты______________________ledsky.
 
Я это использую:

//auto swf/flv
//video.mail
//rutube
//youtube
//vkadre




sources/classes/bbcode/class_bbcode_core.php


Find

PHP:
$show = $url['show'];

Add after

PHP:
//mega swf/flv recognizer
		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"><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/v/'.$m[1].'"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="never"><embed allowscriptaccess="never" src="http://www.youtube.com/v/'.$m[1].'" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>';
		}

Find

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

Add before

PHP:
function vkadre($flashvars)
	{
		$flashvars=str_replace("&amp;amp;","&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>';
	}


/sources/classes/bbcode/class_bbcode.php

Find

PHP:
while( preg_match( "#\[color=([^\]]+)\](.+?)\[/color\]#ies", $txt ) )
			{
				$txt = preg_replace( "#\[color=([^\]]+)\](.+?)\[/color\]#ies"  , "\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
			}

Add after

PHP:
//find vkadre
			$txt = preg_replace( "/(?:\&amp;|\&)lt;object (.+?)(?:\&amp;|\&)lt;param name=(?:\&amp;|\&)quot;movie(?:\&amp;|\&)quot; value=(?:\&amp;|\&)quot;http:\/\/vkadre\.ru\/swf\/VkadrePlayer\.swf\?1(?:\&amp;|\&)quot; \/(?:\&amp;|\&)gt;(.+?)(?:\&amp;|\&)lt;param name=(?:\&amp;|\&)quot;flashvars(?:\&amp;|\&)quot; value=(?:\&amp;|\&)quot;(.+?)(?:\&amp;|\&)quot; \/(?:\&amp;|\&)gt;(.+?)(?:\&amp;|\&)lt;\/object(?:\&amp;|\&)gt;/ies", "\$this->vkadre(\"\\3\")",	$txt);


Find

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

Add after

PHP:
else
		{
			$txt = preg_replace("/<object width=\"400\" height=\"353\"(.+?)<param name=\"movie\" value=\"http:\/\/video\.rutube\.ru\/(.+?)\"><\/param>(.+?)<\/object>/s","\nhttp://rutube.ru/tracks/0.html?v=\\2\n",$txt);
			$txt = preg_replace("/<object width=\"425\" height=\"355\"(.+?)<param name=\"movie\" value=\"http:\/\/www\.youtube\.com\/v\/(.+?)\"><\/param>(.+?)<\/object>/s","\nhttp://www.youtube.com/watch?v=\\2\n",$txt);
			$txt = preg_replace("/<object(.+?)http:\/\/content\.video\.mail\.ru\/(.+?)\/(.+?)\/(.+?)\/(?:\$|\\\$)(.+?)(?:\$|\\\$)0(?:\$|\\\$)0\" \/>(.+?)<\/object>/is","\nhttp://video.mail.ru/\\2/\\3/\\4/\\5.html\n",$txt);
		}

Сразу можно вставлять прямые ссылки без всяких тегов

Проверено на 2.3.5
 
Ребят интересует воспросик,а этот Flash проигрователь надежный в плане безопасности?
 
а у его открытый код (для изменения) ?
 
2Pokemon,
Я правильно понял - в твоей реализации видео только с хостингов
youtube
rutube
video.mail.ru
Посмотрев по коду - "vkadre" Я не нашёл. :(

Ребят интересует воспросик,а этот Flash проигрователь надежный в плане безопасности?
а у его открытый код (для изменения) ?

Используется видеовставка со сторонних серверов и надёжность, Я думаю, будет зависить от них напрямую.
 
поскольку файл на том сервере отсутствует. Кидаю альтернативную ссылку

PS: Переделав чуток статью, сделал себе такое же чудо на плеере из ДЛЕ + проигрователь mp3-файлов. Если кому-то надо - могу написать как.
 
Поставил на 2.3.6 Работает только в файлаз bbcode и bbcode_core.php tcnm некоторые отличия от инструкций второго поста...Некоторые строчки пришлось отдельно искать...
 
я в версии 2.3.6. установил flowplayer

добавил новый BB-код

[flash]{content}[/flash]

Название - Флеш плеер

Полное описание - Данный тег позволяет проигрывать flv видео

Пример использования - [flash]http://www.forum.com.ua/video.flv[/flash]

Тег - flash

Шаблон замены BB-кода -

<a href="{content}" style="display:block;width:320px;height:240px;" id="player"></a><script language="JavaScript">flowplayer("player", "http://www.forum.com.ua/style_images/flashplayer/flowplayer-3.0.7.swf",{clip:{autoPlay:false,autoBuffering:true}});</script>

Добавить в меню «Теги» редактора? - да

Подсказка для 'content' - Введите url до flv файла

скачать плеер можно здесь - Для просмотра ссылки Войди или Зарегистрируйся
 
Я это использую:

//auto swf/flv
//video.mail
//rutube
//youtube
//vkadre


Проверено на 2.3.5

Поставил на 2.3.3, все работает, только Вкадре не идет, может подправить чего надо?

PS: Переделав чуток статью, сделал себе такое же чудо на плеере из ДЛЕ + проигрователь mp3-файлов. Если кому-то надо - могу написать как.

о мр3 плеере если можно подробнее
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху