vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   [HOW TO - vB4] Create your own vBulletin page (https://vborg.vbsupport.ru/showthread.php?t=325183)

JARNAR 06-01-2017 04:48 PM

[HOW TO - vB4] Create your own vBulletin page
 
Hello,

I created my presentation page, but it does not work!

Following this guide:

https://vborg.vbsupport.ru/showthread.php?t=228112

Can you help me and correct the mistake?

This is my .php file (presentazione.php):
__________________________________________________ ________

PHP Code:

<?php

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

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

define('THIS_SCRIPT''test');
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('{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>

<h2 class="blockhead">Title</h2>
<div class="blockbody">
<div class="blockrow">
Text
</div>
</div>

{vb:raw footer}
</body>
</html>'
,
);

// 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');

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

$navbits construct_navbits(array('' => 'IRONLIFTING ? il forum che tratta tutte le Disciplide di Allenamento coi Sovraccarichi'));
$navbar render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle 'My Page Title';

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

$templater vB_Template::create('{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>

<h2 class="blockhead">Title</h2>
<div class="blockbody">
<div class="blockrow">
Text
</div>
</div>

{vb:raw footer}
</body>
</html>'
);
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());

?>

__________________________________________________ ___________

Can you help my, please?

MarkFL 06-01-2017 05:07 PM

I've moved your thread from the modifications area (those are for publishing vBulletin products/styles). I've also enclosed your PHP code in the appropriate tags to make it easier to read. :)

The main issue I see is that you're trying to define the templates by using the code rather than giving the template names. You need to use the Style Manager to create the templates in the Master Style, and then use their names in your PHP script.

JARNAR 06-01-2017 05:33 PM

Quote:

Originally Posted by MarkFL (Post 2587174)
I've moved your thread from the modifications area (those are for publishing vBulletin products/styles). I've also enclosed your PHP code in the appropriate tags to make it easier to read. :)

The main issue I see is that you're trying to define the templates by using the code rather than giving the template names. You need to use the Style Manager to create the templates in the Master Style, and then use their names in your PHP script.


I don't know how do it. Can you correct it so that I understand, please? :)

MarkFL 06-01-2017 05:55 PM

This code here:

HTML 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 navbar}

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

<h2 class="blockhead">Title</h2>
<div class="blockbody">
<div class="blockrow">
Text
</div>
</div>

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

You need to create a template, with that code in it. Suppose you create this template and name it "mytesttemplate"...then your external script would look like:

PHP Code:

 <?php

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

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

define('THIS_SCRIPT''test');
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('mytesttemplate');

// 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');

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

$navbits construct_navbits(array('' => 'IRONLIFTING ? il forum che tratta tutte le Disciplide di Allenamento coi Sovraccarichi'));
$navbar render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle 'My Page Title';

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

$templater vB_Template::create('mytesttemplate');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());

?>

Does this make sense? Do you know how to create a new template in your master style?

RichieBoy67 06-01-2017 07:42 PM

Quote:

Originally Posted by JARNAR (Post 2587175)
I don't know how do it. Can you correct it so that I understand, please? :)

Go into the admincp under styles and under the main style click create template in the drop down menu.

Lynne 06-01-2017 11:41 PM

Quote:

Originally Posted by MarkFL (Post 2587177)

You need to create a template, with that code in it. Suppose you create this template and name it "mytesttemplate"...then your external script would look like:

Actually, you need to name the template whatever you have called it in this line of your php file:

PHP Code:

define('THIS_SCRIPT''test'); 

and again called in this line:
PHP Code:

$templater vB_Template::create('mytesttemplate'); 

According to the first line, you need to name the template "test". If you name it anything else, then it won't work. So, I think Mark corrected the template name on one line, but not the other. Both of those should be the same.

MarkFL 06-02-2017 12:09 AM

Quote:

Originally Posted by Lynne (Post 2587184)
Actually, you need to name the template whatever you have called it in this line of your php file:

PHP Code:

define('THIS_SCRIPT''test'); 

and again called in this line:
PHP Code:

$templater vB_Template::create('mytesttemplate'); 

According to the first line, you need to name the template "test". If you name it anything else, then it won't work. So, I think Mark corrected the template name on one line, but not the other. Both of those should be the same.

I have always used one name for the script, and then other names for the templates rendered by the script. As long as the templates are specified in the $globaltemplates array, then they can be rendered without issue, at least that's been my experience. :)

For example, here's a very simple script I coded a while back for someone:

PHP Code:

<?php

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

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

define('THIS_SCRIPT''inremembrance');
define('CSRF_PROTECTION'true);  

// ################### 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('markfl_inremembrance');

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

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

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

// ###### YOUR CUSTOM CODE GOES HERE #####

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

// ###### NOW THE TEMPLATES ARE BEING RENDERED ######

$templater vB_Template::create('markfl_inremembrance');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);

print_output($templater->render());

?>


Lynne 06-02-2017 08:55 PM

Quote:

Originally Posted by MarkFL (Post 2587185)
I have always used one name for the script, and then other names for the templates rendered by the script. As long as the templates are specified in the $globaltemplates array, then they can be rendered without issue, at least that's been my experience. :)

ACK!!! My bad. I'm not sure what I was thinking - it's been a while since I have written a custom page and, um, uh, just forget what I said!!

JARNAR 06-03-2017 04:42 AM

I managed to create the page, thank for your support!


All times are GMT. The time now is 09:12 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.01141 seconds
  • Memory Usage 1,809KB
  • 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
  • (1)bbcode_html_printable
  • (7)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)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