Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Morty

Как сделать чтоб при прикреплении видео к посту отображалась прямая ссылка на него?

Recommended Posts

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

Я получаю тег

Нужно чтоб под этим

--------------------------------------------------

xxxxxxx.mp4

x.xx MB Добавить в сообщение | Удалить файл

--------------------------------------------------

была ссылка на сам файл. Пример

--------------------------------------------------

xxxxxxx.mp4

x.xx MB Добавить в сообщение | Удалить файл

Ссылка: [http://xxxxx.xx/uploads/xxxx/xxxx.mp4]

--------------------------------------------------

Share this post


Link to post
Share on other sites

А разве видио не встраивается по дефолту?

http://www.youtube.com/watch?v=8wchi7i6Ru8

 

Просто кнопкой для мультимедиа.

 

А ссылку на сам файл можно добавить отдельно

  • Upvote 1

Share this post


Link to post
Share on other sites

Это видео с ютуба. А мне надо для того которое прикрепляется к сообщению через аттач.

Ну или с другого сайта но по прямой ссылке типа http://site.com/xxx/xxx/video.mp4

Share this post


Link to post
Share on other sites

Ну или с другого сайта но по прямой ссылке типа

Это у меня реализована и работает. Давно собираюсь выложить решения в блог, все не как. Постараюсь выложить в выходные.

 

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

Не успел поставить и к себя на сайт.

Проще заново написать. Возможно в выходные.

Share this post


Link to post
Share on other sites

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

 

Для видео и аудио в аттачах есть готовое решение. Давно как-то кидал модифицированный шаблон на IBR, с тех пор их техподдержка его всем впаривает.

 

Нужно изменить шаблон Темы > Show_attachments:

<php>
$url = urlencode("{$this->settings['base_url']}app=core&module=attach&section=attach&attach_id={$data['attach_id']}");
$path_info = pathinfo($data['attach_file']);
$data['ext'] = strtolower($path_info['extension']);
</php>

<a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}"><img src="{$this->settings['public_dir']}{$data['mime_image']}" alt="{$this->lang->words['attached_file']}" /></a> <a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}">{$data['attach_file']}</a> <span class='desc'><strong>({$data['file_size']}, {$this->lang->words['attach_hits']} {$data['attach_hits']})</strong></span>

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" width="420" height="340">
       <param name="movie" value="{$this->settings['board_url']}/public/player/player_flv_maxi.swf" />
       <param name="allowFullScreen" value="true" />
       <param name="FlashVars" value="flv={$url}" />
</object><br />
</if>

<if test="$data['ext'] == 'mp3'">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" height="60" width="400">
<param name="wmode" VALUE="transparent" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="movie" value="{$this->settings['board_url']}/public/player/mp3.swf" />
<param name="FlashVars" value="way={$url}&showstop=1&swf={$this->settings['board_url']}/public/player/flvplayer.swf&w=470&h=70&time_seconds=0&autoplay=0&q=1&skin=grey&volume=50&comment=Слушаем музыку!" /></object><br />
</if>

 

И положить в указанные папки /public/player/ соответствующие плееры.

  • Upvote 5

Share this post


Link to post
Share on other sites

Для видео и аудио в аттачах есть готовое решение.

ГМ.

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">

Я сохранял, точно другой код. Этот и переделывать не надо. Только плеер заменить и все. :)

  • Upvote 1

Share this post


Link to post
Share on other sites

Ritsuka, Ph-A, Спасибо. Сейчас попробую.

Share this post


Link to post
Share on other sites

Работает но не совсем...

Я использую другой плеер.

Аудио воспроизводится, а вот видеоне хочет...

Вот сам код

<php>
$url = urlencode("{$this->settings['base_url']}app=core&module=attach&section=attach&attach_id={$data['attach_id']}");
$path_info = pathinfo($data['attach_file']);
$data['ext'] = strtolower($path_info['extension']);
</php>
<a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}"><img src="{$this->settings['public_dir']}{$data['mime_image']}" alt="{$this->lang->words['attached_file']}" /></a> <a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}">{$data['attach_file']}</a> <span class='desc'><strong>({$data['file_size']}, {$this->lang->words['attach_hits']} {$data['attach_hits']})</strong></span>
<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="400" id="Player-e4efcf5b557c82ee0bd564c1a2599d7b">
<param name="movie" value="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" />
<param name="allowFullScreen" value="true" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<param name="wmode" value="opaque" />
<embed src="http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" quality="high" bgcolor="#000000" wmode="opaque" allowFullScreen="true" width="600" height="400" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object><br/>
</if>
<if test="$data['ext'] == 'mp3'">
<br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="425" height="30" id="Player-17293be98d1d7445115d5c0acd44cea2">
<param name="movie" value="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&showPlayButton=false&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" />
<param name="allowFullScreen" value="false" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&showPlayButton=false&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" quality="high" wmode="transparent" allowFullScreen="false" width="425" height="30" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object><br />
</if>

Share this post


Link to post
Share on other sites

Ну или с другого сайта но по прямой ссылке типа http://site.com/xxx/xxx/video.mp4

Ну если сам метр ответил. И я не буду затягивать.

 

Исторически у меня на всех проектах для проигрывания используется JW Player. Естественно мне, проще всего и для IP.Board использовать его.

 

Сам плеер и вызывающий его яваскрипт загружается на сервер. В моем случае это: forum/public/player/

 

Добавляем поддержку mp4.

 

Панель управления > Внешний вид > Содержимое сообщений > BB-коды > Управление BB-кодами --> добавить

 

Название

MP4

 

Медиа-тег

{1}.mp4

 

Шаблон замены медиа-тега

<div id="container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="/forum/public/player/swfobject.js"></script>
<script type="text/javascript">
	var s1 = new SWFObject("/forum/public/player/player.swf","ply","640","480","9","false","#FFFFFF");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=$1.mp4");
	s1.write("container");
</script>

 

Добавляем поддержку flv.

 

Название

flv

 

Медиа-тег

{1}.flv

 

Шаблон замены медиа-тега

<div id="container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="/forum/public/player/swfobject.js"></script>
<script type="text/javascript">
	var s1 = new SWFObject("/forum/public/player/player.swf","ply","640","480","9","#FFFFFF");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=$1.flv");
	s1.write("container");
</script>

 

Естественно bb коды легко переделываются под поддержку другого плеера.

 

Как пример поддержка flv для Flowplayer

 

<script type="text/javascript" src="/forum/public/player/flowplayer-3.2.4.min.js'></script>
<a href='$1.flv'style='display:block;width:640px;height:338px;' id='player'></a>
<script>
flowplayer('player', '/forum/public/player/flowplayer-3.2.4.swf', {
clip:  {
   	autoPlay: false,
   	autoBuffering: true
}
});
</script>

  • Upvote 2

Share this post


Link to post
Share on other sites

У вас в шаблоне два разных URL плеера:

http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000
http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000

 

Исправьте. И flash не кроссдоменен, пока не укажаете это специально с помощью crossdomain.xml.

Share this post


Link to post
Share on other sites

У вас в шаблоне два разных URL плеера:

http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000
http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000

 

Исправьте. И flash не кроссдоменен, пока не укажаете это специально с помощью crossdomain.xml.

Спасибо, исправлю. Но это не критично так как плеер есть в обоих местах.

Что такое кроссдоменность, зачем и как нужно указывать с помощью crossdomain.xml?

======================

Ссылку исправил, видео всё равно не работает...

Через BB-код с разными адресами swf видео работает...

======================

С этим

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" width="420" height="340">
       <param name="movie" value="{$this->settings['board_url']}/public/player/player_flv_maxi.swf" />
       <param name="allowFullScreen" value="true" />
       <param name="FlashVars" value="flv={$url}" />
</object><br />
</if>

Даже плеер не отображается...

Share this post


Link to post
Share on other sites
post-44346-0-10970500-1301564819_thumb.jpg

Share this post


Link to post
Share on other sites

ИМХО если ошибок нет, надо смотреть документацию плеера. Не скачав его, нечего не скажу.

Качать сейчас, нет времени.

Share this post


Link to post
Share on other sites

Извините, что не создал свою тему, вроде бы проблемка, имеет что-то общее с этой темой.

В общем как мне вставить .mp3 на форум IPB 3.2.3 , так что бы оно проигрывалось в плеере ?

Вроде бы простая вещь, а никак до меня не дойдет.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...