View Full Version : Use of output on php code
cloferba
09-18-2012, 06:54 PM
I?ve read this manual (https://www.vbulletin.com/forum/showthread.php/371709-Creating-an-HTML-or-PHP-Block) but I don?t understand very well how to implement this on my custom code.
I need to show this php code on a block, but I don?t know how to use $output variables:
<?php
// Each sponsor is an element of the $sponsors array:
$sponsors = array(
array('facebook','The biggest social network in the world.','http://www.facebook.com/'),
array('adobe','The leading software developer targeted at web designers and developers.','http://www.adobe.com/'),
array('microsoft','One of the top software companies of the world.','http://www.microsoft.com/'),
array('sony','A global multibillion electronics and entertainment company ','http://www.sony.com/'),
array('dell','One of the biggest computer developers and assemblers.','http://www.dell.com/'),
array('ebay','The biggest online auction and shopping websites.','http://www.ebay.com/'),
array('digg','One of the most popular web 2.0 social networks.','http://www.digg.com/'),
array('google','The company that redefined web search.','http://www.google.com/'),
array('ea','The biggest computer game manufacturer.','http://www.ea.com/'),
array('mysql','The most popular open source database engine.','http://www.mysql.com/'),
array('hp','One of the biggest computer manufacturers.','http://www.hp.com/'),
array('yahoo','The most popular network of social media portals and services.','http://www.yahoo.com/'),
array('cisco','The biggest networking and communications technology manufacturer.','http://www.cisco.com/'),
array('vimeo','A popular video-centric social networking site.','http://www.vimeo.com/'),
array('canon','Imaging and optical technology manufacturer.','http://www.canon.com/')
);
// Randomizing the order of sponsors:
shuffle($sponsors);
// Looping through the array:
foreach($sponsors as $company)
{
echo'
<div class="sponsor" title="Click to flip">
<div class="sponsorFlip">
<img src="img/sponsors/'.$company[0].'.png" alt="More about '.$company[0].'" />
</div>
<div class="sponsorData">
<div class="sponsorDescription">
'.$company[1].'
</div>
<div class="sponsorURL">
<a href="'.$company[2].'">'.$company[2].'</a>
</div>
</div>
</div>
';
}
?>
Can anybody help me?
pd: I will pay if you want money :)
Try changing the word "echo" to "$output .= ", so that the line looks like this:
$output .= '
Edit: you may also have to remove the <?php and ?> from the beginning and end - I can't remember if they're allowed or not.
cloferba
09-18-2012, 09:11 PM
Can?t get this work :(
OK, what happened? Did you try my suggestion, and if so, did you get any errors?
cloferba
09-18-2012, 09:52 PM
I?m using borbole?s mod (http://www.forumservices.eu/vb/threads/34-Unlimited-PHP-amp-HTML-amp-BB-Code-Custom-Pages-15) and I receive an error) and I?m inserting php inside html code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sponsor Flip Wall With jQuery & CSS | Tutorialzine demo</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="jquery.flip.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1>PET&PET PARTNERS</h1>
<h2><a href="http://www.petandpet.com">Go Back to Pet&Pet »</a></h2>
<?php
// Each sponsor is an element of the $sponsors array:
$sponsors = array(
array('facebook','The biggest social network in the world.','http://www.facebook.com/'),
array('adobe','The leading software developer targeted at web designers and developers.','http://www.adobe.com/'),
array('microsoft','One of the top software companies of the world.','http://www.microsoft.com/'),
array('sony','A global multibillion electronics and entertainment company ','http://www.sony.com/'),
array('dell','One of the biggest computer developers and assemblers.','http://www.dell.com/'),
array('ebay','The biggest online auction and shopping websites.','http://www.ebay.com/'),
array('digg','One of the most popular web 2.0 social networks.','http://www.digg.com/'),
array('google','The company that redefined web search.','http://www.google.com/'),
array('ea','The biggest computer game manufacturer.','http://www.ea.com/'),
array('mysql','The most popular open source database engine.','http://www.mysql.com/'),
array('hp','One of the biggest computer manufacturers.','http://www.hp.com/'),
array('yahoo','The most popular network of social media portals and services.','http://www.yahoo.com/'),
array('cisco','The biggest networking and communications technology manufacturer.','http://www.cisco.com/'),
array('vimeo','A popular video-centric social networking site.','http://www.vimeo.com/'),
array('canon','Imaging and optical technology manufacturer.','http://www.canon.com/')
);
// Randomizing the order of sponsors:
shuffle($sponsors);
?>
<div id="main">
<div class="sponsorListHolder">
<?php
// Looping through the array:
foreach($sponsors as $company)
{
echo'
<div class="sponsor" title="Click to flip">
<div class="sponsorFlip">
<img src="img/sponsors/'.$company[0].'.png" alt="More about '.$company[0].'" />
</div>
<div class="sponsorData">
<div class="sponsorDescription">
'.$company[1].'
</div>
<div class="sponsorURL">
<a href="'.$company[2].'">'.$company[2].'</a>
</div>
</div>
</div>
';
}
?>
<div class="clear"></div>
</div>
</div>
<p class="note">We thank to all of them :)</p>
</body>
</html>
I?ve deleted the <?php and ?> and also changed "echo" to "$output .= '" and I can?t see the code, it seems that something is wrong
I don't understand what that mod has to do with this, I thought you were trying to create a php type forum block. In that case you'd be entering that code (from the first post) in the Forum Block manager when you create a new "Custom HTML/PHP" block. But one thing I forgot is that using $output is for widgets. For forum blocks you need to return the value, so you'd also have to add
return $output;
as the last line.
ForumsMods
09-18-2012, 10:08 PM
If I understand, you want this:
foreach($sponsors as $company)
{
$output = '
<div class="sponsor" title="Click to flip">
<div class="sponsorFlip">
<img src="img/sponsors/'.$company[0].'.png" alt="More about '.$company[0].'" />
</div>
<div class="sponsorData">
<div class="sponsorDescription">
'.$company[1].'
</div>
<div class="sponsorURL">
<a href="'.$company[2].'">'.$company[2].'</a>
</div>
</div>
</div>
';
}
echo $output;
cloferba
09-18-2012, 10:13 PM
I will make things clear, sorry guys.
From the beginning I said that was for a forumblock to don?t give more details about the situations (it seems complex but it is not)
Actually, I want implement a sponsor wall on my forum, using a custom page created with Borbole?s mod:
http://tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/
What I need to do is adapt the code of the index.php file (http://demo.tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/demo.php) to work on vBulletin...
That php file has html inside, but to work with php on vbulletin you need to use $output variables and that?s my main problem, I don?t know how can I adapt this code.
Scanu
09-19-2012, 06:40 PM
Should'nt be "return $output"?
foreach($sponsors+as+$company)
{
++++$output+=+'
++++<div+class="sponsor"+title="Click+to+flip">
++++++++<div+class="sponsorFlip">
++++++++++++<img+src="img/sponsors/'.$company[0].'.png"+alt="More+about+'.$company[0].'"+/>
++++++++</div>
+++++
++++++++<div+class="sponsorData">
++++++++++++<div+class="sponsorDescription">
++++++++++++++++'.$company[1].'
++++++++++++</div>
++++++++++++<div+class="sponsorURL">
++++++++++++++++<a+href="'.$company[2].'">'.$company[2].'</a>
++++++++++++</div>
++++++++</div>
++++</div>
++++';
}
return+$output;+
--------------- Added 1348083681 at 1348083681 ---------------
Sorry for ++, i copied text from my iPad and it looked like that :confused:
Crotan
10-05-2012, 05:50 AM
I don't mean to threadcrap, but is there a consensus on this?
I have php code that works fine, and the only way I've found to use it in a cms widget is using an html iframe to the php file because I'm not really sure what needs to change for it to be usable in a php widget?
If you create a "PHP Direct Execution" CMS widget, then you need all the output to be assigned to $output. So if you have php code that uses echo (or other "print" functions) to send output, or uses ?>...<?php tags to include html, then you either need to rewrite the code to assign the output to the $output variable (such as ForumsMods did above), or else use ob_start()/ob_get_contents()/ob_end_clean() to capture the output to a string.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.