vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Two players in the thread (https://vborg.vbsupport.ru/showthread.php?t=267512)

Frosty 07-27-2011 12:59 PM

Two players in the thread
 
I'm not sure what I'm doing wrong. But for some odd reason, it only shows 1 attachment embedded. As I do have multiple videos in the same threads, I need to get this working quickly.

Here's the code from postbit_legacy:

PHP Code:

<if condition="in_array($thread['forumid'], array(15,16,17,18,22,29,33))"
<if 
condition="$attachment[attachmentextension] != 'flv,mp4'">
<
script type='text/javascript' src='/player/swfobject.js'></script>
<
div id="player_$attachment[attachmentid]align="center">Something went wrongvideo can't load. Refresh the page.</div>
<script type='
text/javascript'>
  var so = new SWFObject('
/player/player.swf','jsplayer_$attachment[attachmentid]','720','480','6','#000000');
  
so.addParam('allowfullscreen','true');
  
so.addParam('allowscriptaccess','always');
  
so.addParam('wmode','opaque');
  
so.addVariable('file','/attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]');
  
so.addVariable('width','720');
  
so.addVariable('height','480');
  
so.addVariable('javascriptid','jsplayer_$attachment[attachmentid]');
  
so.addVariable('enablejs','true');
  
so.addVariable('type','video'); 
  
so.addParam('allownetworking','all');
  
so.addVariable('controlbar','bottom');
  
so.addVariable('showdigits','true');
  
so.addVariable('showstop','true');
  
so.addVariable('stretching','uniform');
  
so.addVariable('smoothing','true');
  
so.addVariable('autostart','false');
  
so.addVariable('skin''/player/bekle/bekle.zip');
  
so.write('player_$attachment[attachmentid]');
</
script>
<
br />
</if>
</if> 

If we get this working, feel free to use it on your forum. I won't have any problem with that.

What this code does, is it embeds automatically certain attachments.

Demo link can be provided.

kh99 07-27-2011 01:54 PM

Maybe I'm missing something, but if you've put this in postbit_legacy it will only show up once per post. If you wanted it to be inserted once per attachment you'd need a loop (in plugin code).

I also am not sure about this line

HTML Code:

<if condition="$attachment[attachmentextension] != 'flv,mp4'">

If you're trying to check for two possible extensions I think you'd need something like

HTML Code:

<if condition="!in_array($attachment[attachmentextension], array('flv','mp4'))">

Frosty 07-27-2011 02:07 PM

Hmm. Thanks Kev, and yes. I need it to display all attachments with certain extensions in the thread. Any idea how would I create a plugin? Never had the chance to play around with the plugin system.

kh99 07-27-2011 02:36 PM

Try this: take code from above and create a new template, like

HTML Code:

<div id="player_$attachment[attachmentid]" align="center">Something went wrong, video can't load. Refresh the page.</div>
<script type='text/javascript'>
  var so = new SWFObject('/player/player.swf','jsplayer_$attachment[attachmentid]','720','480','6','#000000');
  so.addParam('allowfullscreen','true');
  so.addParam('allowscriptaccess','always');
  so.addParam('wmode','opaque');
  so.addVariable('file','/attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]');
  so.addVariable('width','720');
  so.addVariable('height','480');
  so.addVariable('javascriptid','jsplayer_$attachment[attachmentid]');
  so.addVariable('enablejs','true');
  so.addVariable('type','video'); 
  so.addParam('allownetworking','all');
  so.addVariable('controlbar','bottom');
  so.addVariable('showdigits','true');
  so.addVariable('showstop','true');
  so.addVariable('stretching','uniform');
  so.addVariable('smoothing','true');
  so.addVariable('autostart','false');
  so.addVariable('skin', '/player/bekle/bekle.zip');
  so.write('player_$attachment[attachmentid]');
</script>
<br />


Then since you only want to include the .js file once, modify the SHOWTHREAD template and put this in:

HTML Code:

<if condition="in_array($thread['forumid'], array(15,16,17,18,22,29,33))"> 
<script type='text/javascript' src='/player/swfobject.js'></script>
</if>


(and if you need this to be done on some page other than showthread.php you'd need it there too. )


Then create a new plugin by going to Plugins & Products -> Create New Plugin, and select hook location postbit_attachment from the dropdown menu. Enter a title so that later you'll remember what this does, paste the code below into the large box, select the "Yes" radio button, and save. Plugin code:

Code:

if (in_array($this->thread['forumid'], array(15,16,17,18,22,29,33)) AND !in_array($attachment[attachmentextension], array('flv','mp4')))
{
    eval('$this->post[\'embed_attachments\'] .= "' . fetch_template('embed_attachment') . '";');
}


(note that the embed_attachment in red above needs to be the same as the name of the template you created at the beginning, so change it here if you have to.)


And finally, edit template postbit_legacy and put $post[embed_attachments] where you want them to appear.

BTW, I haven't actually tried any of this so you should probably expect (at least) some small errors. :)

Frosty 07-27-2011 02:46 PM

It doesn't work with 'postbit_attachment', but it does work with 'postbit_display_start'. Anyhow, this is a way better solution than mine. But I have no idea why it still doesn't want to embed all uploaded attachments? :/

http://i.imgur.com/QmJMD.png

As you can see, there are two attachments in that thread, but only one is actually embedded.

I really appreciate your helping. ;)

kh99 07-27-2011 02:51 PM

What do you mean when you say it doesn't work with postbit_attachment? You need to get it to work with that hook because that's inside a loop that goes through each attachment, and without some kind of loop you're only ever going to see it once (although I suppose if you knew the limit was 2 attachments, you could just put the code in postbit_legacy twice).

Also, are flv and mp4 the two attachments you want to embed? If so than you have to remove the '!' from in front of 'in_array' in the plugin code.

Frosty 07-27-2011 02:55 PM

Works now.. Lol. And yeah, those two were the attachment types I needed embedded. Again, much thanks for your help! :D


All times are GMT. The time now is 10:01 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01146 seconds
  • Memory Usage 1,755KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (4)bbcode_html_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (7)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete