PDA

View Full Version : usercp data on a custom page?


khininger
07-06-2015, 03:12 PM
hi :)

i created a custom template like this (https://vborg.vbsupport.ru/showthread.php?t=229194), and im trying to put subscribed forums on it. once thats done i'd want to create such templates to display other usercp data as well.

i found the subscribed forums piece in usercp template:

<vb:if condition="$show['forums']">
<!-- ############## SUBSCRIBED FORUMS ############## -->
<div class="block" id="new_subscribed_forums">
<h2 class="blockhead">{vb:rawphrase subscribed_forums}</h2>
<ol class="blockbody settings_form_border" id="forumlist">
{vb:raw forumbits}
</ol>
</div>
<!-- ############## END SUBSCRIBED FORUMS ############## -->
</vb:if>


am putting it in my custom template, it shows a page with header/footer but no content. if i remove the first/last line - the page shows blockhead (without h2 text on it) and nothing further.

i assume i need to find that show forums conditional and adjust it, but i don't know how to do it. :confused:

any input very genuinely appreciated :)

kh99
07-06-2015, 04:13 PM
You need to set $forumbits and register it to your template. You can see what's done for the usercp by looking at usercp.php, specifically the part that starts with the comment "start subscribed forums".

khininger
07-06-2015, 06:18 PM
thank you very much!
trying to figure it out :)

khininger
07-19-2015, 03:31 AM
thank you very much for your help, i created the custom page this way (https://vborg.vbsupport.ru/showthread.php?t=228112) instead, all works wonderfully except for one silly thing:

the subscribed forums block is missing some css: no spacing, no padding, no borders between rows, and theres a link saying "Unsubscribe from this forum" instead of the unsubscribe image that shows on forumhome. forum icons, background, and font family/size/color are fine.

im so close yet not quite there - very much hope for your kindness in spotting the piece im missing :o

this is my template, custom_subscribed_forums:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
<head>
<title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
{vb:raw headinclude}
{vb:raw headinclude_bottom}
</head>
<body>

{vb:raw header}

{vb:raw navbar}

<div id="pagetitle">
<h1>{vb:raw pagetitle}</h1>
</div>



<vb:if condition="$show['forums']">
<!-- ############## SUBSCRIBED FORUMS ############## -->
<div class="block" id="new_subscribed_forums">
<h2 class="blockhead">{vb:rawphrase subscribed_forums}</h2>
<ol class="blockbody settings_form_border" id="forumlist">
{vb:raw forumbits}
</ol>
</div>
<!-- ############## END SUBSCRIBED FORUMS ############## -->
</vb:if>


{vb:raw footer}
</body>
</html>

this is my page, custom-subscribed-forums.php:
<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'custom-subscribed-forums');
define('CSRF_PROTECTION', true);
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array('user', 'infractionlevel');

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

// pre-cache templates used by all actions
$globaltemplates = array('custom_subscribed_forums', 'forumhome_subforums',
'forumhome_forumbit_level1_post',
'forumhome_forumbit_level1_nopost',
'forumhome_forumbit_level2_post',
'forumhome_forumbit_level2_nopost',
'forumhome_lastpostby',
);

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

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir ('/path/to/your/forums');
require_once('./global.php');
require_once(DIR . '/includes/functions_forumlist.php');
require_once(DIR . '/includes/functions_user.php');

// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################

if (!$vbulletin->userinfo['userid'] OR !($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview']))
{
print_no_permission();
}

$navbits = construct_navbits(array('' => 'My Subscribed Forums'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'My Subscribed Forums';

// ############################### start subscribed forums ###############################

// get only subscribed forums
cache_ordered_forums(1, 0, $vbulletin->userinfo['userid']);
$show['forums'] = false;
foreach ($vbulletin->forumcache AS $forumid => $forum)
{
if ($forum['subscribeforumid'] != '')
{
$show['forums'] = true;
}
}
if ($show['forums'])
{
if ($vbulletin->options['showmoderatorcolumn'])
{
cache_moderators();
}
else
{
cache_moderators($vbulletin->userinfo['userid']);
}
fetch_last_post_array();

$show['collapsable_forums'] = true;
$forumbits = construct_forum_bit(-1, 0, 1);

if ($forumshown == 1)
{
$show['forums'] = true;
}
else
{
$show['forums'] = false;
}
}


// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('custom_subscribed_forums');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
$templater->register('forumbits', $forumbits);
$templater->register('forumjump', $forumjump);
print_output($templater->render());

?>

khininger
07-21-2015, 06:18 PM
found it, here:

<vb:if condition="$vboptions['storecssasfile']">
{vb:cssfile forumhome-rollup.css}
<vb:else />
{vb:cssfile forumbits.css,forumhome.css,options.css}
</vb:if>
<!--[if lt IE 8]>{vb:cssfile forumbits-ie.css,options-ie.css}<![endif]-->
<vb:if condition="$show['sidebar']">
{vb:cssfile sidebar.css,widgets.css,tagcloud.css}
<!--[if lt IE 8]>{vb:cssfile sidebar-ie.css}</vb:if><![endif]-->