vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=187)
-   -   How to create your own vBulletin-powered page! (uses vB templates) (https://vborg.vbsupport.ru/showthread.php?t=62164)

dacho 06-29-2009 08:07 AM

Quote:

Originally Posted by Gary King (Post 482210)
Create a new file, whatever you want to call it (let's say test.php).
Open up test.php and add the following (replace TEST with whatever template you want to show):
PHP Code:

<?php
 
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
 
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // 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(
    
'TEST',
);
 
// pre-cache templates used by specific actions
$actiontemplates = array(
 
);
 
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
 
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
 
$navbits = array();
$navbits[$parent] = 'Test Page';
 
$navbits construct_navbits($navbits);
eval(
'$navbar = "' fetch_template('navbar') . '";');
eval(
'print_output("' fetch_template('TEST') . '");');
 
?>

Be sure to change 'TEST' to the actual template name, and change 'test' to the filename. Also, change 'Test Page' to whatever you want to show in the navbar, such as 'Viewing Member Profile' (just an example).

Now create the template, called TEST with the following content:
HTML Code:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header
 
$navbar
 
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
    <td class="tcat">Title</td>
</tr>
<tr>
    <td class="alt1">Text</td>
</tr>
</table>
 
$footer
</body>
</html>
 

All done :D
Now check it out by going to test.php ;)

I do that and i get blank page http://www.dacho.co.il/test.php

HMBeaty 06-29-2009 08:22 AM

You're doing SOMETHING wrong. Can you post the .php and template codes you're using?

Matrixthestar 06-30-2009 02:58 AM

hi all

I want to make the header and footer

but the content of the page
is from another site

can anyone explain this 2 me
easily
as I'm not professional @ all

nothing4me 06-30-2009 05:23 PM

Is this up to date with the latest VB? (3.8.3)
Or do I need to do some extra modifications? :)

--------------- Added [DATE]1246386340[/DATE] at [TIME]1246386340[/TIME] ---------------

In addition, would it be a good idea to put PHP logic into the VBulletin plugin system? Or should I just put them in this new php page?

zeroality 06-30-2009 11:08 PM

This worked great! Thank you.

nirvana43 07-04-2009 12:08 AM

1 Attachment(s)
Hello
I'm trying to design one custom page while keeping vbulletin header, navbar and footer on it.
I've referred to following topics :
https://vborg.vbsupport.ru/showthrea...ight=logicians
https://vborg.vbsupport.ru/showthread.php?t=217075
http://www.vbulletin.com/forum/showthread.php?t=197563

Here is the custom page i wanna have headers and footers on.
http://www.projectsplanet.org/forums/testverify.php
Enter code 1234test to test above page.

When i try to put my code as follows in custom template created in Vbulletin admin CP, i'm getting error :
Quote:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

[MY CODE GOES HERE]

$footer
</body>
</html>
When i try to save above template, i get following error :
Code:

The following error occurred when attempting to evaluate this template:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home2/******/public_html/forums/includes/adminfunctions_template.php(3729) : eval()'d code on line 16

I guess its because i'm also trying to write php code within template.
Please check attached php file testverify.php
Please tell me how do i put vbulletin header, navbar and footer there.

Following are the contents of attached testverify.php if you do not wish to download it :
Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Purchase AdiInviter</title>
</head>

<body>
<?php
$done=0;
$trid=$_POST['trans'];
if (!empty($_POST['step'])) $step=$_POST['step'];
else $step='inp';
                 
?>
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="70%" align="center">

<tr>
        <td class="tcat">Verify</td>
</tr>
<tr>
        <td class="panelsurround" align="center">
        <div class="panel">
                <div align="left">
                  <div style="margin: 10px">
          <?php
                  if ($step=="inp")
                        {                       
                        ?>
                    <form id="verify" name="verify" method="post" action="">
                      <label>
                      <div align="center">
                        <p><strong>Enter Paypal Transaction ID of VbInviter Payment :</strong>
                      <input type="text" name="trans" id="trans" />
                      </p>
                        <p>
                <input type="hidden" name="step" value="transid">
                          <input type="submit" name="step" id="step" value="verify" />
                          <br />
                      </p>
                      </div>
                      </label>
                </form>
              </div>

                </div>
        </div>
    <?php
        }
        else if ($step=="verify")
        {
//////////////////////////////////////////////////////////////////////////////////
$clients="1234test";
/////////////////////////////////////////////////////////////////////////////////
if ($trid==$clients)
{
$done=1;
}
else
{
$done=0;
}
          if ($done==1)
                {
    ?>
      <div align="center">
        <p><strong>
                    Successfully verified!
        </strong></p>
            <br />
            <span class="highlight style2">Package #1</span><br />
            Discount Price = <strong>45$ USD</strong><br />
            <a href="http://www.projectsplanet.org/purchase.php">Click here to check Package #1 features. </a><br />
            <----------Buy Link---------->
<br /><br />
            <span class="highlight style2">Package #2</span><br />
            Discount Price = <strong>80$ USD</strong><br />
            <a href="http://www.projectsplanet.org/purchase.php">Click here to check Package #2 features. </a><br />
          <----------Buy Link---------->
           
      </div>
                          </div>

                </div>
        </div>

                        <?php
            }
                        else if ($done==0)
                        {

            ?>
                            <div align="center">
                        <p><strong>
                    You have entered wrong transaction id.
            </strong><br /><br />
            <a href="verify.php">Click here to try again</a>.</p>
                            </div>
                          </div>

                </div>
        </div>

      <?php
          }
          }
          ?>
              </div>

                </div>
        </div>
                </td>
</tr>
</table>

</body>
</html>




Detailed instructions are much appreciated.
Regards

Lynne 07-04-2009 12:49 AM

You should follow Gary King's article that you linked to. In it, you'll see that you don't do your php page like you have written above at all. Your template will be fine as long as you don't put php in it. Start with the stuff in Gary's article and then add your custom code to it.

pspmodandcfw 07-04-2009 08:18 PM

Is there any way i can do PHP with this like

Quote:

Header & Navbar

PHP Code Here

Footer

amcd 07-05-2009 11:11 AM

Quote:

Originally Posted by pspmodandcfw (Post 1842854)
Is there any way i can do PHP with this like

no.

You are supposed to do this:

something.php
Code:

set some variables
require_once('global.php');

PHP code here

output(eval(fetch_template('something')));

and in the template:
Code:

header and navbar

output of the php code

footer

More or less, that is the general idea.

pspmodandcfw 07-06-2009 03:18 AM

Thank you my good Sir. Ill try that out

Edit - What do you mean output of PHP code, the HTML form?

amcd 07-06-2009 04:27 AM

Yes, if that is what you want to show. The html (design and fixed data) part of the form can be put directly into the template, and any dynamic data can be displayed through variables set in the php code.

The basic purpose of templating (whether vbulletin or otherwise) is to separate the front end design from the business logic. The template holds just enough code (actually html with conditionals, not programming code) to show whatever needs to be shown. The template is simply 'shown', and that is why you cannot have php code in there.

The vbulletin manual has a section on templates, and reading the default vb templates can be very instructive for newcomers.

--------------- Added [DATE]1246858288[/DATE] at [TIME]1246858288[/TIME] ---------------

This will work:

php:
Code:

$htmlform = "<form>........</form>"
template:
Code:

$header
$navbar
$htmlform
$footer

But that is not how it is intended to be. You are not supposed to write any HTML at all in the PHP. Otherwise the whole purpose of templating is defeated.

pspmodandcfw 07-07-2009 06:34 AM

Thanks AMCD i finally got it to work.

Davidx3 07-08-2009 02:31 PM

Sorry, but this makes no sence at all to me

anyone care to explain it in more detail for me?

Sorry Gary, i just dont find your instructions very clear at all :S

Lynne 07-08-2009 03:02 PM

Quote:

Originally Posted by Davidx3 (Post 1845129)
Sorry, but this makes no sence at all to me

anyone care to explain it in more detail for me?

Sorry Gary, i just dont find your instructions very clear at all :S

It is explained as well as it can be. The best thing to do is just copy exactly what he did and then analyze it yourself after you get it up and working. If you need further help, the best thing to do is to create your own thread in the main forums and post the exact php file you wrote and the exact template you wrote (both using the php/html tags).

ilrglen 07-12-2009 05:07 PM

Okay, I accidentally deleted my test file that I finally got working and really can't spend another week reading through all 76 pages of this topic, fun as that was the first time, to find the answer to this simple question. What do I change in this code to make this page viewable by nonmembers?

Quote:

<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'TEST'); // 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(
'TEST',
);

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

);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
if (!$vbulletin->userinfo['userid']) print_no_permission();

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

$navbits = array();
$navbits[$parent] = 'Test Page';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('TEST') . '");');

?>
If somebody could change the code for me in the above quoted code and highlight the change in a different color that would make my day. Thanks.

cellarius 07-12-2009 06:40 PM

Remove
Code:

if (!$vbulletin->userinfo['userid']) print_no_permission();
And please, next time when posting code, use the code tags. They are there for a reason ;)

ilrglen 07-13-2009 01:26 AM

Sorry, I couldn't figure out those tags. And thanks for the help. Much appreciated.

Quote:

Originally Posted by cellarius (Post 1847592)
Remove
Code:

if (!$vbulletin->userinfo['userid']) print_no_permission();
And please, next time when posting code, use the code tags. They are there for a reason ;)


HMBeaty 07-13-2009 01:31 AM

They're the same as the quote tags..... just php, code, and html

Kottonmouth801 07-19-2009 06:55 PM

Quote:

Originally Posted by Digital Jedi (Post 1827560)
Depends in if Ultimate Side Columns requires you to make any template edits.

Got ya.....

I have fixed issue...

It was a template issue.

Thanks 4 your time & help.

:D:D:D

sheep92032 07-21-2009 09:06 AM

is there any way to insert html into the template, something like this:

eval('$showhtml = "' .$showhtml . '";'); // with $showhtml containing html

I want to convert one of my scripts but if I can't do this it'll be a huge headache.

Lynne 07-21-2009 03:03 PM

Quote:

Originally Posted by sheep92032 (Post 1852749)
is there any way to insert html into the template, something like this:

eval('$showhtml = "' .$showhtml . '";'); // with $showhtml containing html

I want to convert one of my scripts but if I can't do this it'll be a huge headache.

Try it and see.

You should be able to do this (don't forget to escape any quotes):
PHP Code:

 eval('$showhtml = "<b>This is html</b>";'); 


sheep92032 07-21-2009 03:17 PM

It doesn't work, you just get some apache error. It doesn't like < or >.

Lynne 07-21-2009 03:46 PM

Quote:

Originally Posted by sheep92032 (Post 1852933)
It doesn't work, you just get some apache error. It doesn't like < or >.

Perhaps you need to post the exact code and also post the exact error. I use that sort of eval statement in my plugins and it works fine.

sheep92032 07-21-2009 04:44 PM

I tried to regenerate the problem but used your line and it seems to be working now. It was probably just a pebcak error.

Thanks

Edit: I just thought, does vbulletin cache the scripts?

amcd 07-21-2009 07:45 PM

Quote:

Originally Posted by sheep92032 (Post 1853007)
Edit: I just thought, does vbulletin cache the scripts?

No.

KevinGupta 07-23-2009 11:58 AM

useful...thanks!

drew82 07-24-2009 04:36 AM

Hi,
I need to create new template fro blogs.Under blog template i need create other blog extension templates.how to do create templates.

LieuR 07-30-2009 01:21 AM

Any idea why i get a blank page ?

Code:

<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'Default Style'); // 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(
    'Default Style',
);

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

);

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

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

$navbits = array();
$navbits[$parent] = 'Test Page';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('Default Style') . '");');

?>


HMBeaty 07-30-2009 02:09 AM

Did you create a template for your page? I'm guessing not from seeing Default Style. The style name doesn't go there. Thats where you put your name of the template you created. Re-read the instructions ;)

kama_tech 08-04-2009 05:01 PM

hello friends, I have a question, I am trying to create the next page. I have a page in vBulletin you can just put the forum that you specify.

example:

I have 10 forum

forum 1
forum 2
forum 3
forum 4
ect .....

I want to do is to page 1
show forum 1 and 3

on page 2 show forum 2 and 4

well with other forum pages can divide by page

I already have the example running on a test forum but can not find the code that I need to show the different forums.

Can someone give me a hand with this.

thanks

sdfaheem 08-05-2009 08:17 PM

I am getting this error when i create a new page, so i tried using the same php file and template info but still get an error:

Code:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/sdfaheem/public_html/desimeet.com/disclaimer.php on line 2

Parse error: syntax error, unexpected T_STRING in /home/sdfaheem/public_html/desimeet.com/disclaimer.php on line 2

Could you please help me with this?

Lynne 08-05-2009 10:09 PM

Make sure you are using a text editor made for coding, not something like Microsoft Word. It sounds like line breaks or extra text is getting added to your file.

Keesa 08-07-2009 05:47 AM

I just used this again and I just wish I could give it more stars because I LOVE THIS TUTORIAL.

:D


I don't find this code in functions_online any longer, is there a new fix for that?

Quote:

Now if you want to show who is browsing this new page of yours, just open up includes/functions_online.php and find:

Lynne 08-07-2009 02:38 PM

Quote:

Originally Posted by Schnee (Post 1862942)
I don't find this code in functions_online any longer, is there a new fix for that?

See step 3 here - Display Users Viewing non-vBulletin Pages in "Online Users" (If you have several locations, you can modify those to use a switch statement).

choccyclaire 08-13-2009 07:38 PM

Sorry if this has already been asked but what would I have to change in the php file in order to place the page in another directory?

Lynne 08-13-2009 08:38 PM

You need to add a line leading to the forum with the vbulletin files like this prior to requiring the global.php file:

PHP Code:

chdir('/home/site/forum'); 


choccyclaire 08-13-2009 08:46 PM

Many thanks for the quick response. :)

ilrglen 08-16-2009 04:28 PM

What can I add or remove from the following code to keep out Guests and members of Usergroups 1, 2, 3, & 4 who are not also part of Usergroups 5 or higher (if that makes a difference)?


Code:

<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', '9LA07081'); // 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(
    '9LA07081',
);

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

);

// ######################### REQUIRE BACK-END ############################

chdir('/var/www/html/Forums/');
require_once('./global.php');
if (!$vbulletin->userinfo['userid']) print_no_permission();

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

$navbits = array();
$navbits[$parent] = '9LA07081';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('9LA07081') . '");');

?>


Lynne 08-16-2009 04:34 PM

Quote:

Originally Posted by ilrglen (Post 1868618)
What can I add or remove from the following code to keep out Guests and members of Usergroups 1, 2, 3, & 4 who are not also part of Usergroups 5 or higher (if that makes a difference)?

Try changing this:
Code:

if (!$vbulletin->userinfo['userid']) print_no_permission();
To something more like this:
Code:

if (!$vbulletin->userinfo['userid'] OR !is_member_of($vbulletin->userinfo, 5, 6, 7)) print_no_permission();
That will give an error if the user is not logged in or if the member is not a member of usergroups 5,6, or 7.

ilrglen 08-16-2009 04:47 PM

Quote:

Originally Posted by Lynne (Post 1868623)
Try changing this:
Code:

if (!$vbulletin->userinfo['userid']) print_no_permission();
To something more like this:
Code:

if (!$vbulletin->userinfo['userid'] OR !is_member_of($bbuserinfo, 5, 6, 7)) print_no_permission();
That will give an error if the user is not logged in or if the member is not a member of usergroups 5,6, or 7.

Will this then send them to the 'no permission page' or another error page?


All times are GMT. The time now is 07:36 PM.

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

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02955 seconds
  • Memory Usage 1,896KB
  • 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
  • (15)bbcode_code_printable
  • (1)bbcode_html_printable
  • (3)bbcode_php_printable
  • (15)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete