PDA

View Full Version : Widget Code Fails


rcull
05-06-2015, 11:39 AM
I have a bit of code which works well in most places, but I would like it to work in my vb cms widgets. It seems beyond me to get it to work, but maybe someone would like to tell me what is wrong.

I have managed to get it work with an iframe in the widget, but the presentation is poor.



<?php
echo '<table class="alt1" border="1" bgcolor="fffceb" cellpadding="6" cellspacing="1" width="220">
<tr><td colspan="4"><u>WANTED ADS</u><br />from the <i>Team Classifieds</i>...</td></tr>
<tr>';

$mysql_link = mysql_connect("localhost", "username", "password");
mysql_select_db ("teambuic_forums");
if(!$mysql_link){
print("Did not connect to database<br>");
exit;
}
function cl_get_ext( $filename ) {
return substr($filename, strrpos($filename,"."));
}

$result = mysql_query('SELECT p.id, p.cat, p.user, p.userid, p.bigimage, p.title FROM ppc_products p WHERE p.cat=\'58\' OR p.cat=\'59\' OR p.cat=\'60\' OR p.cat=\'61\' OR p.cat=\'62\' ORDER BY RAND() DESC LIMIT 0, 4');
while($row = mysql_fetch_array($result,MYSQL_NUM))
{
$photo = $row[4];
$photolen = strlen($photo);
$theext = cl_get_ext($photo);
$photo_name = str_replace( $theext, "", $photo );

echo ' <tr><td><center><a href=http://www.teambuick.com/classifieds/showproduct.php?product='.$row[0].'>'.
'<br>'.$row[5].
'</a><br><b>'.$row[2].'</b><br></center></td>
';
}


echo '</tr>
</table>';
?>

kh99
05-06-2015, 02:52 PM
You want to use a PHP Direct Execution type of widget (if you haven't already), then use the "configure" link on the right to enter your php code. The output html needs to be returned in a string called $output instead of using echo or print. The easiest way to do that would be to surround the existing code with ob_start() and ob_end_clean(), like this:

ob_start();

// put existing code here, without the <?php and ?> tags

$output = ob_get_contents();
ob_end_clean();



and as the comment says, put your code there but don't include the first and last lines with the tags.

Also, I edited your post to put the code in code tags, and also to remove your database username and password, just in case.