vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=251)
-   -   How can I define a vb:raw? (https://vborg.vbsupport.ru/showthread.php?t=252562)

Duncan 10-25-2010 12:08 AM

How can I define a vb:raw?
 
Hello,

I have a custom page and it is currently using this "{vb:raw navbar}" to display the navbar. This is working properly. I have created a new navbar template called navbar2. When I use "{vb:raw navbar2}" it does not display. It has the same effect as if it were removed completely. How can I define/match navbar2 template with {vb:raw navbar2}.

midnz 10-25-2010 01:28 AM

Why don't you just force your custom page to use a new skin with a modified navbar?

Lynne 10-25-2010 03:22 AM

Variables need to be registered for use in templates. $navbar2 hasn't been registered, therefore there is no output. Cellarius wrote a really good article that you may be interested in - [vB4] Rendering templates and registering variables - a short guide

Duncan 10-25-2010 05:17 AM

Thank you for the replies. My custom file has this at the bottom:

$templater = vB_Template::create('ncsu');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('navbar2', $navbar2);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());

And it is still not recognizing {vb:raw navbar2}

Lynne 10-25-2010 02:48 PM

And where is navbar2 defined relative to that code? You really need to post all your code along with templates and hook names, etc in order for us to see what is wrong.

Duncan 10-26-2010 08:01 PM

Thank you so much for helping me out lynn. Here are all of the files im referring to:

navbar2 (template) in the Default Style

Code:

<div id="navbar" class="navbar">

        <ul id="navtabs" class="navtabs">
                {vb:raw template_hook.navtab_start}
                <vb:if condition="THIS_SCRIPT == 'home'">
                        <li class="selected"><a class="navtab" href="http://mydomain.com/">Home</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain.com">Home</a></li>
                </vb:if>
                {vb:raw template_hook.navtab_middle}

                <vb:if condition="THIS_SCRIPT == 'about'">
                        <li class="selected"><a class="navtab" href="http://mydomain/about/">About</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain.com/about/">About</a></li>
                </vb:if>

                <vb:if condition="THIS_SCRIPT == 'members'">
                        <li class="selected"><a class="navtab" href="http://mydomain.com/members/">Members</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain.com/members/">Members</a></li>
                </vb:if>

                <vb:if condition="THIS_SCRIPT == 'rules'">
                        <li class="selected"><a class="navtab" href="http://mydomain.com/rules/">Rules</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain/rules/">Rules</a></li>
                </vb:if>

                <vb:if condition="THIS_SCRIPT == 'privacy'">
                        <li class="selected"><a class="navtab" href="http://mydomain.com/privacy/">Privacy</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain.com/privacy/">Privacy</a></li>
                </vb:if>

                <vb:if condition="THIS_SCRIPT == 'contact'">
                        <li class="selected"><a class="navtab" href="http://mydomain.com/contact/">Contact</a</li>
                <vb:else />
                        <li><a class="navtab" href="http://mydomain.com/contact/">Contact</a></li>
                </vb:if>
                {vb:raw template_hook.navtab_end}
        </ul>


</div>
</div><!-- closing div for above_body -->

<div class="body_wrapper">
<div id="breadcrumb" class="breadcrumb">
        <ul class="floatcontainer">
                <li class="navbithome"><a href="http://mydomain.com/"><img src="{vb:stylevar imgdir_misc}/navbit-home.png" alt="{vb:rawphrase home}" /></a></li>

                {vb:raw navbits.breadcrumb}
                {vb:raw navbits.lastelement}
        </ul>
        <hr />
</div>

{vb:raw ad_location.ad_navbar_below}
{vb:raw ad_location.global_below_navbar}

<vb:if condition="$show['notices'] AND THIS_SCRIPT != 'register'">
        <form action="profile.php?do=dismissnotice" method="post" id="notices" class="notices">
                <input type="hidden" name="do" value="dismissnotice" />
                <input type="hidden" name="s" value="{vb:raw session.sessionurl}" />
                <input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" />
                <input type="hidden" id="dismiss_notice_hidden" name="dismiss_noticeid" value="" />
                <input type="hidden" name="url" value="{vb:raw return_link}" />
                <ol>
                        {vb:raw notices}
                </ol>
        </form>
</vb:if>

ncsu (template) in the Default Style

The {vb:raw navbar2} I want to display the navbar2 listed above

Code:

{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 navbar2}

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

ncsu.php file

Notice I tried to register the navbar2 style but ultimately failed.

Code:

<?php

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

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

define('THIS_SCRIPT', 'ncsu');
define('CSRF_PROTECTION', true); 
// change this depending on your filename

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

// get special data templates from the datastore
$specialtemplates = array();

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

// 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 ('/home/college/public_html');
require_once('./global.php');

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

$navbits = construct_navbits(array('' => 'NCSU'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'NCSU';

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

$templater = vB_Template::create('ncsu');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('navbar2', $navbar2);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());

?>


Lynne 10-27-2010 04:20 AM

But you never did anything to create navbar2. You never define it or anything. You need to write some code to spit it all out into a variable called $navbar2.

Duncan 10-27-2010 10:44 PM

Ahh okay, do I define it in the ncsu.php file? I looked and navbar has:

$navbar = render_navbar_template($navbits);

so, I tried using $navbar2 = render_navbar2_template; but it didn't work :/

Lynne 10-28-2010 01:29 AM

Did you try looking up that function? It's in the functions.php file. It renders the navbar template. If you want to render the template navbar2, you should probably copy that function, only call it something different, and render the navbar2 template.

Duncan 10-29-2010 01:07 AM

Thanks for the response Lynn. In the functions.php file all I can find is:

Code:

                $navbits = construct_navbits(array('' => $vbphrase['vbulletin_message']));
                $navbar = render_navbar_template($navbits);

and this

Code:

        $navbits = $navbar = '';
and this

Code:

function render_navbar_template($navbits)
Sorry for being such a hassle, just trying to figure it out. But all I want to do is make my navbar2 template display using navbar2 variable not insert navbits, etc. (or do i?)

Lynne 10-29-2010 02:21 AM

Yeah, the function is called render_navbar_template. You'll need that code. Put it into your file only rename it (render_navbar_template2 perhaps) and then change your other line:
PHP Code:

$navbar2 render_navbar_template2($navbits); 

Something like that.

Duncan 10-29-2010 07:55 AM

Eek. Still can't figure it out. Getting this error:

Parse error: syntax error, unexpected T_VARIABLE, expecting '( in "mywebsitestructure" on line 39. Here is the code:

Code:

<?php

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

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

define('THIS_SCRIPT', 'ncsu');
define('CSRF_PROTECTION', true); 
// change this depending on your filename

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

// get special data templates from the datastore
$specialtemplates = array();

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

// 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 ('/home/college/public_html');
require_once('./global.php');

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

$navbits = construct_navbits(array('' => 'NCSU'));
$navbar = render_navbar_template($navbits);

function render_navbar_template2
$navbar2 = render_navbar_template2($navbits); 


// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'NCSU';

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

$templater = vB_Template::create('ncsu');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('navbar2', $navbar2);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());

?>

I guess I just don't understand how it knows to render the navbar2 template??

Lynne 10-29-2010 01:57 PM

You didn't create a new function. You need to copy the *whole* function and then change the name of it.

Duncan 10-29-2010 09:24 PM

Lynn, thanks for your help. I got it working, miraculously!

Lynne 10-29-2010 10:37 PM

Glad you did. :)

kurv 11-04-2010 07:26 PM

Lynne,

Thanks for the help!

Okay so I created a new template navbar2, then I need to place the rendering code INTO that new template?

:/

Sorry, again, I am not a coder :(

Lynne 11-04-2010 09:35 PM

You put all your html into the new template. The rendering code is going to go into a plugin - most likely some global_* hook location (or into the page if it is a custom page).


All times are GMT. The time now is 05:15 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01114 seconds
  • Memory Usage 1,800KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (7)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (17)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete