And your condition is now like this ?
HTML Code:
<if condition="in_array($foruminfo['forumid'], $pl9_quoteloc) OR THIS_SCRIPT == 'index' OR in_array($forum['forumid'], $pl9_quoteloc)">
If that isn't working, I'd start spitting stuff out in the template like $pl9_quoteloc and $vboptions['pl9_qloc'] to see exactly what it is getting.
Also, it looks like in your query, you are only pulling one row. You could just use query_first instead and then you don't have to do the fetch_array stuff:
PHP Code:
$quotes = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bfc_quotes WHERE unapproved = 0 ORDER BY RAND() LIMIT 1");
$uname = $quotes['username'];
$quote_text = $quotes['quote'];
eval('$table = "' . fetch_template('bfc_quote_table') . '";');
eval('$stable = "' . fetch_template('bfc_quote_stable') . '";');
eval('$normal = "' . fetch_template('bfc_quote_normal') . '";');
eval('$snormal = "' . fetch_template('bfc_quote_snormal') . '";');
No biggie. What you wrote will work also, but query_first is also nice cuz it's easy.