PDA

View Full Version : Custom page in UserCP


Christos Teriakis
07-23-2011, 07:01 AM
Hello,

I'm trying to build a custom page in the UserCP. I added the menu option in My Settings block, which links to: usercp_classifieds.php?do=myitems.

Now, trying to finish the work, I've added in the file usercp_classifieds.php:

// SET PHP ENVIRONMENT
error_reporting(E_ALL & ~E_NOTICE);

// DEFINE IMPORTANT CONSTANTS
define('THIS_SCRIPT', 'usercp_classifieds');

// PRE-CACHE TEMPLATES AND DATA

// get special phrase groups
$phrasegroups = array('user', 'infractionlevel', 'microclassifieds');

// get special data templates from the datastore
$specialtemplates = array(
'iconcache',
'noavatarperms',
'smiliecache',
'bbcodecache',
);

// pre-cache templates used by all actions
$globaltemplates = array(
'USERCP_SHELL',
'usercp_nav_folderbit',
'microclassifieds_my_items'
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// REQUIRE BACK-END
require_once('./global.php');
require_once(DIR . '/includes/functions_user.php');
require_once(DIR . '/microclassifieds/includes/functions.php');
require_once(DIR . '/includes/class_bootstrap_framework.php');
vB_Bootstrap_Framework::init();

// START MAIN SCRIPT

if (empty($_REQUEST['do']))
{
$_REQUEST['do'] = 'myitems';
}

if (empty($vbulletin->userinfo['userid']))
{
print_no_permission();
}
// set shell template name
$shelltemplatename = 'USERCP_SHELL';
$includecss = array();

// initialise onload event
$onload = '';

// initialise navbar
$navbits = array('usercp.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['user_control_panel']);

// My Items
if ($_REQUEST['do'] == 'myitems')
{
$navbits[''] = $vbphrase['microclassifieds_my_items'];
$mytitle = "Hello World";
$page_templater = vB_Template::create('microclassifieds_my_items');
$page_templater->register('mytitle', $mytitle);
}


and the template is:

<template name="microclassifieds_my_items" templatetype="template" date="1160112327" username="" version="4.0.0">
<![CDATA[
{vb:raw mytitle}
]]></template>


After all, what I'm getting is just a blank page :rolleyes:

Any help will be appreciated.

Thank you
C.T.

micheal332001
07-23-2011, 08:08 AM
you missed this part out

print_output($page_templater->render());

Christos Teriakis
07-23-2011, 09:07 AM
you missed this part out


print_output($page_templater->render());

hmmm... Thank you but this is semi-working. Shows the content but not adds the USERCP_SHELL.

C.T.

ForumsMods
07-23-2011, 09:17 AM
$navbar = render_navbar_template($navbits);
$templater = vB_Template::create('USERCP_SHELL');
$templater->register_page_templates();
$templater->register('cpnav', $cpnav);
$templater->register('HTML', $page_templater->render());
$templater->register('navbar', $navbar);
$templater->register('navclass', $navclass);
$templater->register('onload', $onload);
$templater->register('pagetitle', $pagetitle);
$templater->register('template_hook', $template_hook);
$templater->register('includecss', $includecss);
$templater->register('includeiecss', $includeiecss);
print_output($templater->render());

Christos Teriakis
07-23-2011, 02:44 PM
$navbar = render_navbar_template($navbits);
$templater = vB_Template::create('USERCP_SHELL');
$templater->register_page_templates();
$templater->register('cpnav', $cpnav);
$templater->register('HTML', $page_templater->render());
$templater->register('navbar', $navbar);
$templater->register('navclass', $navclass);
$templater->register('onload', $onload);
$templater->register('pagetitle', $pagetitle);
$templater->register('template_hook', $template_hook);
$templater->register('includecss', $includecss);
$templater->register('includeiecss', $includeiecss);
print_output($templater->render());


Thank you. It works and it builds the page. The problem is that it disappears any hook content from the left bar. eg doesn't shows inbox and my custom menu.

Any idea?