vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Variable replacement (https://vborg.vbsupport.ru/showthread.php?t=182547)

Twilkey 06-15-2008 08:44 AM

Variable replacement
 
Here is the problem. I have asked many people and noone can figure out the problem.

I am storing embed code in a database table. I have a variable that is put in the src part and some variables in the width and height. Now this was working when I had the embed code just in the php file, but once I started storing the code in a database table and trying to pull the code from the table, it stopped working.

Here is what one embed code looks like when it goes into the database.
Code:

<OBJECT ID="MediaPlayer" width=600 height=500
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"

codebase="http://activex.microsoft.com/activex/
    controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"

standby="Loading Microsoft Windows Media Player components..."

type="application/x-oleobject">

<PARAM NAME="FileName"
VALUE="http://location.to.media/file.wmv">

<PARAM NAME="animationatStart" VALUE="true">

<PARAM NAME="transparentatStart" VALUE="true">

<PARAM NAME="autoStart" VALUE="true">

<PARAM NAME="showControls" VALUE="true">

<EMBED type="application/x-mplayer2"

pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/"

SRC="$movielink"

name="MediaPlayer"

width="$playerwidth";

height="... {$vbulletin->options['player_height']} ...";

AutoStart=true>

</EMBED>

</OBJECT>

Now the problem is that the variables arnt replaced with what they are supposed to when the embed code is pulled from the database.

Here is the code I use to display the embed code.
Code:

if ($_REQUEST['do'] == 'showmovie')
{
    $movieid = $vbulletin->input->clean_gpc('g', 'id', TYPE_UINT);
    $movie_query = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "psmedia_movie WHERE movieid=$movieid");
    $movie = $vbulletin->db->fetch_array($movie_query);
   
    $formatid = htmlspecialchars_uni($movie['formatid']);
    $format_query = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "psmedia_format WHERE id=$formatid");
    $format = $vbulletin->db->fetch_array($format_query);
   
    $formattitle = htmlspecialchars_uni($format['title']);
    $movietitle = htmlspecialchars_uni($movie['title']);
    $moviedescription = htmlspecialchars_uni($movie['description']);
    $movieotherinfo = htmlspecialchars_uni($movie['otherinfo']);
    $movieauthor = htmlspecialchars_uni($movie['author']);
    if ($movieauthor == '') {$movieauthor = "Unknown";}
    $moviestream = $format['code'];
    $movielink = htmlspecialchars_uni($movie['link']);
   
    ($hook = vBulletinHook::fetch_hook('psmedia_showmovie')) ? eval($hook) : false;
   
    eval('$psmedia_showmovie_rightbar = "' . fetch_template('psmedia_showmovie_rightbar') . '";');
    eval('$psmedia_content = "' . fetch_template('psmedia_showmovie') . '";');
}


Opserty 06-15-2008 11:36 AM

You need to eval() the embed code or put the embed code in a template and eval() that template.

Twilkey 06-15-2008 06:57 PM

Im kind of confused as to why I need to do that. I have this code $moviestream = $format['code']; pulling the embed code from the database. And the player gets embeded just fine, but the playerwidth, playerhieght, and movielink variables dont get replaced like they are supposed to.

Opserty 06-15-2008 07:44 PM

You need to use eval() on the embed code that gets fetched from the database.

Twilkey 06-16-2008 04:13 AM

Ok I have tried something, but I am getting an error and its still not changing the variables.

Code Used:
Code:

    $moviestream = $format['code'];   
    eval($moviestream);

Error Code:
Code:

Parse error:  syntax error, unexpected '<' in /home/paulsonn/public_html/forum/psmedia.php(458) : eval()'d code on line 1
Embed Code Used:
Code:

<OBJECT ID="MediaPlayer" width=600 height=500
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"

codebase="http://activex.microsoft.com/activex/
    controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"

standby="Loading Microsoft Windows Media Player components..."

type="application/x-oleobject">

<PARAM NAME="FileName"
VALUE="http://location.to.media/file.wmv">

<PARAM NAME="animationatStart" VALUE="true">

<PARAM NAME="transparentatStart" VALUE="true">

<PARAM NAME="autoStart" VALUE="true">

<PARAM NAME="showControls" VALUE="true">

<EMBED type="application/x-mplayer2"

pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/"

SRC="<? $movielink ?>"

name="MediaPlayer"

width="<? $playerwidth ?>";

height="<? $playerheight ?>";

AutoStart=true>

</EMBED>

</OBJECT>


Opserty 06-16-2008 06:20 AM

Is it not possible just to stick this code in a template?

You need to eval the embed code as a string, look at the way vBulletin does it to the templates.

King Kovifor 06-16-2008 02:18 PM

Do as Opserty has said and use a template and then use something along the lines of:

eval("$embedded_code = '" . fetch_template('my_embedded_code') . "';");

Twilkey 06-16-2008 05:53 PM

I get where I should use a template if I was storing only one or two embed cods. But I am storing many embed cods and using the database makes it easier and gives me the ability to easily add more embed codes.

Opserty 06-16-2008 06:29 PM

Well [minicode]eval()[/minicode] your embed code as though it was a template, so instead of [minicode]fetch_template(...)[/minicode], you have your embed code.

Twilkey 06-16-2008 10:09 PM

Ok I dont know if I am just not understanding you right or what. I have tried what you suggested, but yet it doesnt want to work for me. I dont know, maybe I am missing a period or something somewhere.


All times are GMT. The time now is 01:19 AM.

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.00979 seconds
  • Memory Usage 1,736KB
  • 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
  • (5)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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