Log in

View Full Version : Intergrating external pages into usercp's USERCP_SHELL design?


The-Ensemble
10-04-2007, 09:09 PM
I have a plugin that Is finally working (thanks to Paul M)

Here is the code for it:

if (in_array($_REQUEST['do'], array('contributors')))
{



// disable other displays
$vbulletin->bf_ugp_genericoptions['showgroup'] = 0;
$vbulletin->options['forumleaders'] = 0;



$groupcache = array();
while ($user = $db->fetch_array($users))
{
$user = array_merge($user , convert_bits_to_array($user['options'], $vbulletin->bf_misc_useroptions));

if ($user['userid'])
{
$t = strtoupper($user['title']);
$u = strtoupper($user['username']);
$groupcache["$t"]["$u"] = $user;
}
}

$usergroups = '';
if (sizeof($groupcache) >= 1)
{
foreach ($groupcache AS $users)
{
ksort($users); // alphabetically sort users
$usergroupbits = '';
foreach ($users AS $user)
{
exec_switch_bg();
$user = process_showgroups_userinfo($user);

if ($user['receivepm'] AND $vbulletin->userinfo['receivepm'] AND $permissions['pmquota'] AND $vbulletin->options['enablepms'])
{
$show['pmlink'] = true;
}
else
{
$show['pmlink'] = false;
}

if ($user['showemail'] AND $vbulletin->options['displayemails'] AND (!$vbulletin->options['secureemail'] OR ($vbulletin->options['secureemail'] AND $vbulletin->options['enableemail'])))
{
$show['emaillink'] = true;
}
else
{
$show['emaillink'] = false;
}

eval('$usergroupbits .= "' . fetch_template('showgroups_usergroupbit') . '";');
}

eval('$usergroups .= "' . fetch_template('showgroups_usergroup') . '";');
}
}
$customgroups = $usergroups;

}

and I have this; which I know integrates pages into usercp's look with the links and navbar.

$headinclude = str_replace('clientscript', $vbulletin->options['bburl'] . '/clientscript', $headinclude);

$navbits = array('usercp.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['user_control_panel']);
$navbits[''] = "New Page Title";


$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('$HTML = "' . fetch_template('blah') . '";');
eval('print_output("' . fetch_template('USERCP_SHELL') . '");');

I think the main problem is changing
eval('$HTML = "' . fetch_template('blah') . '";'); this to wrap around the rest of the code, I tried to mesh them together and its not worked, any Help?

WhaLberg
10-05-2007, 02:25 AM
Did you put this $HTML anywhere in USERCP_SHELL template?

Opserty
10-05-2007, 12:53 PM
Did you put this $HTML anywhere in USERCP_SHELL template?Is already in the template by default :p

Did you make a new template called 'blah'? stick all your content in that template, including any variables you will use.

The-Ensemble
10-05-2007, 05:52 PM
The templates and how it works is all defined in the php code I posted first, I need to know how to put what I've got defined into the the usercp design, I've done it before by using that fetchtemplate ' blah' thing, but I need to change that so fetchtemplate is replaced with the php code I posted first and I don't know how to do it.

Opserty
10-05-2007, 06:31 PM
Try Changing

eval('$HTML = "' . fetch_template('blah') . '";');

To:

$HTML = $usergroups;
// if the above DOES (not a typo) work...try using $HTML =& $usergroups; instead

WhaLberg
10-05-2007, 07:11 PM
Opserty, what I meant was, if you set a template var in php and if you don't call it in the main template, it won't work out. :)

The-Ensemble
10-05-2007, 08:17 PM
Try Changing

eval('$HTML = "' . fetch_template('blah') . '";');

To:

$HTML = $usergroups;
// if the above DOES (not a typo) work...try using $HTML =& $usergroups; instead


Oh thank you! works! but erm the usergroup title doesn't seem to be showing up, I'll define the plugin as a script then use an if condition see if I can do it that way, thank again! and thanks to everyone else who tried to help! :up::up:

--------------- Added at 22:25 ---------------

Erm, the script thing didn't work.

--------------- Added at 22:26 ---------------

Oh another thought how could I convert this into a HTML if condition?

if (in_array($_REQUEST['do'], array('contributors')))

Opserty
10-05-2007, 09:08 PM
Oh thank you! works! but erm the usergroup title doesn't seem to be showing up, I'll define the plugin as a script then use an if condition see if I can do it that way, thank again! and thanks to everyone else who tried to help! :up::up:

I don't know I think thats more a problem with your script then anything else.


Oh another thought how could I convert this into a HTML if condition?
if (in_array($_REQUEST['do'], array('contributors')))
Its a vB conditional not HTML :p

Technically it would be:

<if condition="in_array($_REQUEST['do'], array('contributors'))">
BLAH
</if>

(I think)
However it would be better to use:

<if condition="$_REQUEST['do'] == 'contributors'">
BLAH
</if>

(You could also you the code within the 'condition' attribute in your PHP code.

The-Ensemble
10-05-2007, 09:17 PM
<if condition="in_array($_REQUEST['do'], array('contributors'))">
BLAH
</if>

That one worked perfectly! Thanks again!

--------------- Added at 23:40 ---------------

This may be a long show but do you think there is a simple thing I could add into the code to make users with addition usergroup = 12 show up as well? the current one shows only primary users. *crosses fingers*