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)

Digital Jedi 11-25-2008 02:46 AM

I don't recognize the structure of your conditional myself. But if it is a valid conditional, then you have Usergroup 2 as one of the authorized viewers at the start of your conditional, right after Usergroup 1.

Personally, I would go with the standard vBulletin conditionals. To hide information from a specific usergroup, you would use:

Code:

<if condition="is_member_of($bbuserinfo, X, Y, Z)">
Where X, Y and Z are your Usergroup IDs.

Now, I'm not sure why you have a nested conditional in there, because I imagine Usergroup 2 is the only group restricted from viewing the chatbox. All you'd need to do is put the NOT AUTHORIZED message after the <else /> tag.


Code:

<if condition="is_member_of($bbuserinfo, X, Y, Z)">
 
CHAT CODE HERE
 
<else />
 
YOU ARE NOT AUTHORIZED MESSAGE HERE
 
</if>


veenuisthebest 12-09-2008 10:24 AM

Quote:

Originally Posted by Chunky Monkey (Post 1655438)
Another question I have, though, is how to pass a meta description tag that is dynamically generated via the php script? Right now it appears to be using the forum's default meta description tag.

Thanks!

I would like to second this question.

How to give an own meta description/keywords for the custom page instead of the default vb's meta info.

thanks

amcd 12-09-2008 11:31 AM

just before you call the main template towards the end of the script, put your metainfo in $vboptions[keywords]

veenuisthebest 12-09-2008 01:47 PM

Quote:

Originally Posted by amcd (Post 1681571)
just before you call the main template towards the end of the script, put your metainfo in $vboptions[keywords]

Can you please give an example of how to do it.

thanks

amcd 12-09-2008 02:12 PM

Quote:

Originally Posted by veenuisthebest (Post 1681653)
Can you please give an example of how to do it.

thanks

no. i have not done it.

freni32 12-11-2008 02:57 PM

Ok I have read through all 60 pages of this article :( and still can't get it.

When I try and access the url all I get is a blank page :(

For the time being, I created a template in my "styles & templates"
and made the name of the new template: TEST

The style of my template I use is called "CarTemplate" not the "Default Style"


If you open up my TEST template in the admin panel here is the code there:

$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>




Now if you go to my url where I have the file installed on the server at:

RadarDetectorLaser.com/forum/test.php

Here is the 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(
'CarTemplate',
);

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

);

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


I HAVE MY CUSTOM CODING RIGHT HERE!!!



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

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

?>

Lynne 12-11-2008 03:22 PM

Since your code says "fetch_template('CarTemplate')", then you need to have your template named "CarTemplate". The page doesn't care what the name of your style is, it only cares about the name of the template.

Also, please use the html/php/code formatting buttons when posting code.

freni32 12-11-2008 05:41 PM

Ok I fixed the code & changed all the "CarTemplate" back to "TEST"

script is still not working.... any other suggestions?

Lynne 12-11-2008 06:02 PM

You probably have an error in your php code then. You'll have to look in your error_logs and see if there is something in there. If not, or you don't have error_logs, you'll have to debug it manually.

Digital Jedi 12-11-2008 10:17 PM

What style are you using when you go to look at the page? If you've created a template in a particular style, it will only show up when viewing the page in that style. If your currently browsing the forums using another style then you'll get a blank page.

veenuisthebest 12-12-2008 01:26 AM

Can anyone please tell me how to give our own meta description/keywords for the custom page instead of the default vb's meta info.

Can this be done from the page itself without using plugins.

Thanks

Lynne 12-12-2008 02:15 AM

Quote:

Originally Posted by veenuisthebest (Post 1683503)
Can anyone please tell me how to give our own meta description/keywords for the custom page instead of the default vb's meta info.

Can this be done from the page itself without using plugins.

Thanks

You can write whatever you want in the meta tags.

veenuisthebest 12-12-2008 04:36 AM

Quote:

Originally Posted by Lynne (Post 1683518)
You can write whatever you want in the meta tags.

But how?

headinclude template is included in the page that already has the default METAINFO. How do I overwrite it ?

Thanks

Simon Lloyd 12-12-2008 07:14 AM

Quote:

Originally Posted by veenuisthebest (Post 1683615)
But how?

headinclude template is included in the page that already has the default METAINFO. How do I overwrite it ?

Thanks

Simply copy your meta tags from the in between <head></head> from the forumhome template (as your own meta tags should be there) and paste in between the <head> tags in the new page!

freni32 12-12-2008 12:46 PM

Quote:

Originally Posted by Digital Jedi (Post 1683450)
What style are you using when you go to look at the page? If you've created a template in a particular style, it will only show up when viewing the page in that style. If your currently browsing the forums using another style then you'll get a blank page.

Under Style & Templates I have the "default style" and under that style I have a template called "CarTemplate" my forum uses the "CarTemplate" style....

Digital Jedi 12-12-2008 01:23 PM

Quote:

Originally Posted by freni32 (Post 1683799)
Under Style & Templates I have the "default style" and under that style I have a template called "CarTemplate" my forum uses the "CarTemplate" style....

And when you go to look at that page, what style are you personally using as you view it?

freni32 12-12-2008 01:32 PM

Quote:

Originally Posted by Digital Jedi (Post 1683812)
And when you go to look at that page, what style are you personally using as you view it?

I am using vbadvanced dynamics, I have it set by default to override everyone to use that template "CarTemplate" so I know it isn't using the old default style....

veenuisthebest 12-12-2008 02:05 PM

Quote:

Originally Posted by Simon Lloyd (Post 1683690)
Simply copy your meta tags from the in between <head></head> from the forumhome template (as your own meta tags should be there) and paste in between the <head> tags in the new page!

I think I didn't get you or you didn't get me :D

FORUMHOME template DOES NOT HAVE keywords/description meta tags. Just the headinclude template has that info.

See the problem is that when we create a custom page, we include $headinclude in OUR NEW template (that is associated with the new page).

Now this makes the same old metainfo for the new page. If however, I try to add my own meta tags to the template, they are added twice (because of the headinclude template).

How do I overwrite those default meta tags with mine??

Thanks

Lynne 12-12-2008 02:21 PM

Quote:

Originally Posted by veenuisthebest (Post 1683834)
How do I overwrite those default meta tags with mine??

Thanks

The easiest way is to just put a condition in the headinclude template based on THIS_SCRIPT.

veenuisthebest 12-12-2008 03:45 PM

Quote:

Originally Posted by Lynne (Post 1683850)
The easiest way is to just put a condition in the headinclude template based on THIS_SCRIPT.

ya lynne, i understand that would be the easiest way. But editing headinclude template just for that small metainfo thing doesn't look good.

Isn't their a way to do it ONLY through the PHP file? or maybe using a plugin BUT without running an additional query.

Thanks

Lynne 12-12-2008 03:48 PM

Quote:

Originally Posted by veenuisthebest (Post 1683926)
ya lynne, i understand that would be the easiest way. But editing headinclude template just for that small metainfo thing doesn't look good.

Isn't their a way to do it ONLY through the PHP file? or maybe using a plugin BUT without running an additional query.

Thanks

I suppose you could create a plugin that runs only if THIS_SCRIPT is your page and if so it does a find/replace of the meta tags in the template. I have no idea if it would work. I'd edit the template though since I hate when people do template edits through plugins.

freni32 12-12-2008 07:30 PM

Still can't get this to work with vbadvanced dynamics, anyone out there have this and had any luck with it? still seeing a blank page.

Digital Jedi 12-13-2008 02:39 AM

Quote:

Originally Posted by freni32 (Post 1683815)
I am using vbadvanced dynamics, I have it set by default to override everyone to use that template "CarTemplate" so I know it isn't using the old default style....

Well, I've never used Dynamics, but if the style override works the same way as the CMPS, there's a chance the custom page wouldn't load in the override style. I would make sure, at least to rule it out. Click on the link in the Style Manger called CarTemplate, this will open the forum up in your CarTemplate style, then navigate to your testing page. See, in vBadvanced CMPS at least, the style override only works on the forum and CMPS pages. If I've attempted to view a different style at any time previously, the override doesn't actually change my settings back, it just overrides them, until I view a page that isn't affected by the modification.

veenuisthebest 12-14-2008 09:08 AM

Quote:

Originally Posted by Lynne (Post 1683928)
I suppose you could create a plugin that runs only if THIS_SCRIPT is your page and if so it does a find/replace of the meta tags in the template. I have no idea if it would work. I'd edit the template though since I hate when people do template edits through plugins.

Yes, it does work using THIS_SCRIPT and replace metainfo through a plugin at global hook. But even I hate doing template edits via plugins.

Finally, a simple thing took care of what i wanted to do. Wonder how i did not thought of that at once. What I did, I just removed $headinclude variable from my custom template AND instead put all the code of headinclude directly into it in replacement of $headinclude. (as it means exactly the same), this allowed me to easily give my own dynamic meta info replacing the old (without template edits, plugins or queries or anything) Works perfect :)

Thanks

TimberFloorAu 12-15-2008 09:45 PM

Lynne I love all of your stuff, but even though I am proficient at coding, I am at a loss as to actually follow this tutorial.

I wish to display on the actual custom page, currently active users.

My page is: a homegrown creation, called vbquote

template named vbquote, php file is vbquote.php

code for this is:

Code:

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'vbquote');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// pre-cache templates used by all actions
$globaltemplates = array('vbquote');

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

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

$navbits = array();
$navbits[$parent] = 'vB Quotations';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('vbquote') . '");');
?>

Could you please tell me what to do where, PLEASEY WEASY :)

Lynne 12-15-2008 09:50 PM

You want to show Currently Active Users on there? First, make sure that works as is - like add the code you want to add since I see none there yet (very important!). Then follow the instructions in this article - Adding Currently Active Users to your own vB page

TimberFloorAu 12-16-2008 07:46 AM

Quote:

Originally Posted by Lynne (Post 1686182)
You want to show Currently Active Users on there? First, make sure that works as is - like add the code you want to add since I see none there yet (very important!). Then follow the instructions in this article - Adding Currently Active Users to your own vB page


Tried to follow that, but not sure where to add it on our "custom".php page.

Do we just whack it anywhere ?

Lynne 12-16-2008 02:31 PM

Quote:

Originally Posted by TimberFloorAu (Post 1686453)
Tried to follow that, but not sure where to add it on our "custom".php page.

Do we just whack it anywhere ?

It says "Paste these lines into the main part of your page." That means right after where it says "START MAIN SCRIPT" But, as I said, make sure your page is working *without* that code first of it's harder to debug.

Digital Jedi 12-17-2008 12:12 AM

Timber, did you get a working PHP page before you tried to add the What's Going On Box? What the URL to the test page your working on?

veenuisthebest 12-18-2008 04:10 PM

Quote:

Originally Posted by veenuisthebest (Post 1685080)
Yes, it does work using THIS_SCRIPT and replace metainfo through a plugin at global hook. But even I hate doing template edits via plugins.

Finally, a simple thing took care of what i wanted to do. Wonder how i did not thought of that at once. What I did, I just removed $headinclude variable from my custom template AND instead put all the code of headinclude directly into it in replacement of $headinclude. (as it means exactly the same), this allowed me to easily give my own dynamic meta info replacing the old (without template edits, plugins or queries or anything) Works perfect :)

Thanks

Though this has solved my problem completely BUT I am still not satisfied with it as there may be a lot of edits to headinclude. uff

any more ideas please.

thanks

amcd 12-19-2008 05:44 AM

<a href="https://vborg.vbsupport.ru/showpost.php?p=1681571&postcount=884" target="_blank">https://vborg.vbsupport.ru/showp...&postcount=884</a>

You don't listen to advice. You want to be spoon fed.

veenuisthebest 12-19-2008 07:04 AM

Quote:

Originally Posted by amcd (Post 1688525)
https://vborg.vbsupport.ru/showpost....&postcount=884

You don't listen to advice. You want to be spoon fed.

then who is asking you to bother lol

Can't you see $headinclude already consists $vboptions[keywords], [description]. Do you want me to give metainfo twice?

This cannot be achieved without a plugin where the meta variables needs to be replaced. Working on it.

amcd 12-19-2008 10:47 AM

Quote:

Originally Posted by veenuisthebest (Post 1688543)
then who is asking you to bother lol

Can't you see $headinclude already consists $vboptions[keywords], [description]. Do you want me to give metainfo twice?

This cannot be achieved without a plugin where the meta variables needs to be replaced. Working on it.

I am inclined to reply in a nasty tone but I will restrain myself. I won't 'bother'.

Digital Jedi 12-19-2008 05:01 PM

Quote:

Originally Posted by amcd (Post 1688667)
I am inclined to reply in a nasty tone but I will restrain myself. I won't 'bother'.

Too late.

Quote:

Originally Posted by amcd (Post 1688525)
https://vborg.vbsupport.ru/showpost....&postcount=884

You don't listen to advice. You want to be spoon fed.


edesi 12-21-2008 06:05 PM

Hello
I am trying to show another php file which generates a directory listing for some mp3 files along with the forum header and footer..
How can I show that php file's generated output in the template area?
I know i can use an iframe code in the template file but I am trying to avoid that. Is there any other way for me to accomplish this?

music.php
Code:


<?php

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

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

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

);

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

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

$navbits = array();
$navbits[$parent] = 'Music Downloads';

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


?>

where can i put the other script's code? It's a pretty big script (135KB) named Andromeda.. maybe some of you know about it.

Chunky Monkey 12-22-2008 02:58 PM

Can somebody please explain how I can make the custom page show up in Currently Active Users? I read in this thread that you have to use plugins or hooks to accomplish this feat but I have no idea how I would go about it. Can anyone tell me specifically what code to add and where so that when you look on Current Active Users page you will see <custom page name> as the location users viewing the custom page are looking at?

Thank you!

Lynne 12-22-2008 03:26 PM

Quote:

Originally Posted by Chunky Monkey (Post 1691137)
Can somebody please explain how I can make the custom page show up in Currently Active Users? I read in this thread that you have to use plugins or hooks to accomplish this feat but I have no idea how I would go about it. Can anyone tell me specifically what code to add and where so that when you look on Current Active Users page you will see <custom page name> as the location users viewing the custom page are looking at?

Thank you!

This question has been covered in other articles and also out in the General vBulletin Discussions forum several times. I'll post the code here, if you need further help, you should post out there.

hook online_location_process:
Code:

PHP Code:

switch ($filename)
{
    case 
'mypage.php':
        
$userinfo['activity'] = 'mypage';
        break;
// add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all.



hook online_location_unknown
Code:

PHP Code:

switch ($userinfo['activity'])
{
    case 
'mypage':
        
$userinfo['where'] = '<a href="mypage.php?'.$vbulletin->session->vars[sessionurl].'">My Page</a>';
        
$userinfo['action'] = "Viewing My Page";
        
$handled true;
        break;
// add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all.



Chunky Monkey 12-22-2008 03:41 PM

Thank you but can you please tell me where to put that code?

Lynne 12-22-2008 05:31 PM

I did. Reread my post - I have the hook locations specified.

Chunky Monkey 12-22-2008 05:48 PM

I see. I didn't realize I had to go to Manage Plugins and create a new plugin. I've followed your instructions but the location is reading Unknown common/lists.css. Any idea as to why that might be happening?


All times are GMT. The time now is 05:09 AM.

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.04758 seconds
  • Memory Usage 1,874KB
  • 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
  • (4)bbcode_code_printable
  • (2)bbcode_php_printable
  • (23)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)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