PDA

View Full Version : Code Help


Hex_legend
01-12-2009, 04:08 AM
Hi there, I have been asked to get the award system to put award info onto profiles. The code automatically adds it to the default profile, but as I am using my MySpace profile, its not putting the information there, I would like to know what code to use to pull the information.

Here is the plugin code which goes in member_build_blocks_start


$blocklist = array_merge($blocklist, array(
'myawards' => array(
'class' => 'MyAwards',
'title' => $vbphrase['my_awards'],
'hook_location' => ($vbulletin->options['cat_yaas_stats_profile_pos']=='left') ? 'profile_left_first' : 'profile_left_last'
)
));

require_once('./global.php');
global $vbulletin;
require_once(DIR . '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

class vB_ProfileBlock_MyAwards extends vB_ProfileBlock
{
var $template_name = 'memberinfo_block_myawards';

function confirm_empty_wrap()
{
return false;
}

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

function prepare_output($id = '', $options = array())
{
global $show, $vbphrase, $stylevar, $vbcollapse, $bgclass, $vbulletin;

require_once(DIR . '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($this->registry, fetch_tag_list());


$result = $this->registry->db->query_read('
SELECT
*
FROM
' . TABLE_PREFIX . 'award_user AS award_user
LEFT JOIN ' . TABLE_PREFIX . 'award AS award USING (award_id)
WHERE
award_user.userid = ' . $this->profile->userinfo['userid'] . '
AND award.award_active = "1"
ORDER BY
'.$vbulletin->options['aw_awardorder'].'
');

$num = $this->block_data['num'] = $this->registry->db->num_rows($result);

$this->block_data['myawards'] = '';

if ($num > 0)
{
// Display Awards
while ($award = $this->registry->db->fetch_array($result))
{
exec_switch_bg();

$award['award_desc'] = $bbcode_parser->parse($award['award_desc']);
$award['issue_reason'] = $bbcode_parser->parse($award['issue_reason']);

$award_issue_date = vbdate($this->registry->options['dateformat'], $award['issue_time'], true);
$award_issue_time = vbdate($this->registry->options['timeformat'], $award['issue_time']);

eval('$this->block_data[\'myawards\'] .= "' . fetch_template('awards_userawards_bit') . '";');
}
}
}
}


I've tried $block_data[myawards] and $vbulletin->options['myawards']

Neither of these seem to be working. Any idea what I can use there instead?

Marco van Herwaarden
01-12-2009, 10:20 AM
If you have questions/problems with a modification or style, then please post in the thread (or support forum/board) about that modification/style. Best chance to receive a reply from either the author or another member using the same modification/style.

Hex_legend
01-13-2009, 02:44 AM
If you have questions/problems with a modification or style, then please post in the thread (or support forum/board) about that modification/style. Best chance to receive a reply from either the author or another member using the same modification/style.

Which is what I am doing.

I am the coder for the MySpace profiles and its the profiles causing this error.

Lynne
01-13-2009, 03:46 AM
I'm pretty sure these lines don't need to be above the class vB_Profile.... line or else they don't need to be inside the class (global shouldn't be needed in either place):

require_once('./global.php');
global $vbulletin;
require_once(DIR . '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
Then change:$num = $this->block_data['num'] = $this->registry->db->num_rows($result);
To:$num = $this->registry->db->num_rows($result); (Although you have $vbulletin as global, so you could just use $vbulletin->db->num_rows)
And I might change this:
eval('$this->block_data[\'myawards\'] .= "' . fetch_template('awards_userawards_bit') . '";');To this:eval('$awards .= "' . fetch_template('awards_userawards_bit') . '";');
$this->block_data['myawards'] = $awards;