PDA

View Full Version : Profile block issue...


Mythotical
22 Nov 2009, 06:37
Don't know how to keep from coming here. LOL

Here goes, I am trying to get my quote portion to work on the profile block but it won't. It shows the Quotes tab then when you click it you see 2 things, only one should show and I have items in the database that are registered to the account so I'm not sure why its not showing up.

member_build_blocks_start:
$blocklist = array_merge($blocklist, array(
'mybfc_quote' => array(
'class' => 'BFC_Quote',
'title' => 'Quotes',
'hook_location' => 'profile_left_last'
)
));

class vB_ProfileBlock_BFC_Quote extends vB_ProfileBlock
{
var $template_name = 'memberinfo_block_bfc_quote';

function confirm_empty_wrap()
{
return false;
}

function confirm_display()
{
return ($this->block_data['bfc_quote'] != '');
}

function prepare_output($id = '', $options = array())
{

global $vbulletin, $db, $prepared;

$quote_sql = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "bfc_quotes WHERE username = '".$prepared['username']."' ");
$total = $vbulletin->db->num_rows($quote_sql);
require_once(DIR . '/includes/class_bbcode.php');
$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

while($quotes = $vbulletin->db->fetch_array($quote_sql))
{
$uname = $quotes['username'];
$quote_text = $parser->do_parse($quotes['quote'] ,false, true, true, true, true, false);
$quotet = vB_Template::create('bfc_quote_memberbit');
$quotet->register('uname', $uname);
$quotet->register('quote_text', $quote_text);
$templatevalues['quote'] .= $quotet->render();
vB_Template::preRegister('MEMBERINFO', $templatevalues);
}

if (empty($quote))
{
$show = 0;
$this->block_data['bfc_quote'] = 'This user has no submitted quotes.';
}
else
{
$show = 1;
$this->block_data['bfc_quote'] = $quote;
}
}
}

Template bfc_quote_memberbit:
<tr>
<td class="alt1">{vb:var uname}</td>
<td class="alt1">{vb:raw quote_text}</td>
</tr>

Right now I don't want to do anything real technical, I want to get my if condition working in the php form then I will convert to template when the time comes or use a more code friendly means.

Cheers and thanks
Steve

PitchouneN64ngc
22 Nov 2009, 09:15
Could you post the 'memberinfo_block_bfc_quote' template content? Thanks.

Mythotical
22 Nov 2009, 17:23
Sure, here it is.

memberinfo_block_bfc_quote:
<table class="tborder" cellpadding="{vb:stylevar cellpadding}" cellspacing="{vb:stylevar cellspacing}" border="0" width="100%" align="center">
<tr>
<td class="thead" width="25%">Username</td>
<td class="thead" width="75%">Quote</td>
</tr>
<div class="alt1 block_row">
<ul class="list_no_decoration">
{vb:raw block_data.bfc_quote}
</ul>
</div>
</table>

PitchouneN64ngc
24 Nov 2009, 01:03
As I don't have the table structure, i can't test that part, but for all parts, works for me.

Plugin code:

$blocklist['mybfc_quote'] = array(
'class' => 'BFC_Quote',
'title' => 'Quotes',
'hook_location' => 'profile_left_last',
'wrap' => false
);

class vB_ProfileBlock_BFC_Quote extends vB_ProfileBlock
{
var $template_name = 'memberinfo_block_bfc_quote';

function confirm_empty_wrap()
{
return false;
}

function confirm_display()
{
return ($this->block_data['bfc_quote'] != '');
}

function prepare_output($id = '', $options = array())
{
global $vbulletin, $prepared;

$quote_sql = $vbulletin->db->query_read("
SELECT *
FROM " . TABLE_PREFIX . "bfc_quotes
WHERE username = '" . $vbulletin->db->escape_string($prepared['username']) . "'
");

if ($vbulletin->db->num_rows($quote_sql) > 0)
{
require_once(DIR . '/includes/class_bbcode.php');
$parser = new vB_BbCodeParser($vbulletin, fetch_tag_list());

while($quotes = $vbulletin->db->fetch_array($quote_sql))
{
$uname = $quotes['username'];
$quote_text = $parser->do_parse($quotes['quote'] ,false, true, true, true, true, false);

$quotet = vB_Template::create('bfc_quote_memberbit');
$quotet->register('uname', $uname);
$quotet->register('quote_text', $quote_text);
$quote .= $quotet->render();
}
$this->block_data['bfc_quote'] = $quote;
}
else
{
$this->block_data['bfc_quote'] = '<tr><td colspan="2">This user has no submitted quotes.</td></tr>';
}
}
}Template 'memberinfo_block_bfc_quote':

<div id="view-mybfc_quote" class="<vb:if condition="$selected_tab == 'mybfc_quote'">selected_view_section<vb:else />view_section</vb:if>">
<h3 class="subsectionhead" id="mybfc_quote">
<span class="subsectiontitle">Quotes</span>
</h3>
<h4 class="subsectionhead-understate" id="mybfc_quote-info">Quotes</h4>
<div class="subsection">
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
<tr>
<td class="thead" width="25%">Username</td>
<td class="thead" width="75%">Quote</td>
</tr>
{vb:raw block_data.bfc_quote}
</table>
</div>
</div>Template 'bfc_quote_memberbit':

<tr>
<td class="alt1">{vb:var uname}</td>
<td class="alt1">{vb:raw quote_text}</td>
</tr>All the useless code was removed.

Mythotical
24 Nov 2009, 04:31
TYVM, I will test tomorrow.