The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
How to create your own vBulletin-powered page! (uses vB templates)
Want to create your very own vBulletin powered page which includes the header, footer, and the user permissions system as well? Well now you can Want to know how it will look? Take a look at the attached screenshot below! Now includes the Who's Online modification! Also, instructions included on how to create your own pages that are integrated with current vBulletin files! I'm going to give you a generic page but you can easily modify the contents of the page by changing the template So here we go Instructions: 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:
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> Now check it out by going to test.php Who's Online Modification Now if you want to show who is browsing this new page of yours, just open up includes/functions_online.php and find: PHP Code:
PHP Code:
Then find: PHP Code:
PHP Code:
---------------------------------- Also if you want to create your own pages 'within' current vBulletin files, do the following: Open the file you want, and then right before the final ?> in the source code, add the following: PHP Code:
edit by Lynne: If running 3.8.4 or above, see this post to take care of the PHP 5.3.0-related problems - https://vborg.vbsupport.ru/showpost....postcount=1171 |
#1002
|
||||
|
||||
Reread the article. You make a page for your site that uses a template. That template is what is responsible for making the page look like the rest of your vbulletin site (it will have the header and navbar and footer).
|
#1003
|
||||
|
||||
Quote:
Quote:
never created a new template before... so it's just basically a code to communicate with the file? |
#1004
|
||||
|
||||
wow, thanks its work fine.
how to use bb codes ? like post in the forum ? |
#1005
|
|||
|
|||
Quote:
Any ideas on how to make this work while the forums are turned off? Thanks, James |
#1006
|
|||
|
|||
you added it at hook global_start
|
#1007
|
||||
|
||||
Hello,
Please you help? test.php PHP Code:
PHP Code:
No Listed Results: 1 Existing records: 85 Screen resultsWhy does not list? Attachment 95557 Thanks |
#1008
|
||||
|
||||
templates are case-sensitive. You need to call it either "TEST" or "test" in both $globaltemplates and the eval statement.
|
#1009
|
||||
|
||||
I do not understand,
Request, you show a quote? |
#1010
|
||||
|
||||
Code:
// pre-cache templates used by all actions $globaltemplates = array( 'TEST', ); ...... eval('print_output("' . fetch_template('test') . '");'); ?> |
#1011
|
||||
|
||||
Ok same fixed,
My problem, I can not list only the database data data is only one line
I want to list all of the data 1. line 2. line 3. line like |
#1012
|
|||
|
|||
instead of
PHP Code:
PHP Code:
|
#1013
|
||||
|
||||
<div align="left">Thank you very much
</div> |
#1014
|
|||
|
|||
Hi
I am newbie. Sorry if bother. I follow your instruction. I combine .php and htm code in one file at test.php in Template editor from my Style Manager > Edit Template . Do i make things correct? Please help me How do I call the page? |
#1015
|
|||
|
|||
No. I was trying to use it in the custom page itself.
Putting it in the global_start hook made it work for me. Thanks for your help ragtek. Now the only glitch (for me) is the fact that I would prefer not to show notices on my custom page. I'm guessing they are tied in with the navbar? Is there a way to disable showing notices here? Thanks, James |
#1016
|
|||
|
|||
Without realy looking and checking i make it with this little "dirty" plugin: add a plugin at global_setup_complete with
PHP Code:
|
#1018
|
|||
|
|||
with the exec_switch_bg function
|
#1019
|
||||
|
||||
Answer Is it for me?
If you are for me I am Novice, Request, Can you give sample code?
|
#1020
|
|||
|
|||
the best for you would be
1. create a template tel_bit and put this into: Code:
<tr class="$bgclass"><td>$tel_list_al[telefon_sah].....all your other stuff.. PHP Code:
|
#1021
|
||||
|
||||
Sorry, but I could not do
New template "tel_bit" PHP Code:
PHP Code:
PHP Code:
394 line -> eval('$satirlar .= "' . fetch_template('tel_bit') . '";'); Where am I wrong? |
#1022
|
|||
|
|||
post pls the complete php file
|
#1023
|
||||
|
||||
This coding beginner job)) Thank you |
#1024
|
||||
|
||||
Hello,
A request from you last This is very important for me I could not do Request, Can you add this in the xml file? Code install and unistall PHP Code:
NavBar and Quick Links automatically into the "Telefon Rehberi" link to be added (No translation phrase) (Note: Text color Red "Telefon Rehberi") URL: telefon_rehberi.php Thank you |
#1025
|
|||
|
|||
Works fine - thanks
Just one question though Currently all pages appear in the navbar as... SITE NAME --> Sub Page Is there anyway to have..... SITE NAME > Group --> Sub Page Thereby having parent pages, which then go to sub-pages? Allowing people to navigate up in the order of pages? I am also assuming there is noway to have the php pages above the level of the forums folder? (Unless there is a better solution out there for a larger number of pages for a site, based around VB?) Thanks. |
#1026
|
|||
|
|||
@ AdemGEN?
you should use the vb Databaseclass! https://vborg.vbsupport.ru/showthrea...ht=datamanager and del PHP Code:
@ Ian_W add $navbits[$parent] = 'group'; |
#1027
|
||||
|
||||
Quote:
Insert XML into the database structure may know? Quote:
I set this problem in your way, thank you.
|
#1028
|
||||
|
||||
What code do I add to the php file to get it to display Todays Events and Todays birthdays?
--------------- Added [DATE]1236061865[/DATE] at [TIME]1236061865[/TIME] --------------- How do I get my recently uploaded ALBUMS to show in the page I created? (just from my account... (ie user=29 for example) |
#1029
|
|||
|
|||
Quote:
i was never able to add this last part in my 3.8.1 vbulletin functions_online.php cause i could not find the above string. Can anyone help? Thanks |
#1030
|
|||
|
|||
You don't need to edit any file!
Pls read: https://vborg.vbsupport.ru/showthrea...ghlight=online |
#1031
|
||||
|
||||
Quote:
For XML Fo to add navbar link AND To enter the database table structure Link information? Thanks |
#1032
|
|||
|
|||
Are you too lazy to check the article section? Sorry, but the others and me are not registered here to search, copy and paste all the things your searching
If you want to modify your vB then invest some time and read the docs and article section, use the search function or invest some money and post your things here. |
#1033
|
||||
|
||||
I do not speak English
Topics can not find
Thank you anyway |
#1034
|
||||
|
||||
Ive read those links and still cant figure out how to display Todays Events and Todays birthdays...
anyone? |
#1035
|
||||
|
||||
Quote:
You'll need to find the code in the index.php page (if I recall, it's pretty well commented), including the templates, and add them to your page. |
#1036
|
||||
|
||||
Thanks Lynne!!! I'll try that out!!!
|
#1037
|
|||
|
|||
And don't fortget on the datastore
If you use the code from the indexpage you'll need the PHP Code:
|
#1038
|
||||
|
||||
damn, didnt work...
heres the php page Code:
<?php // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // #################### DEFINE IMPORTANT CONSTANTS ####################### define('NO_REGISTER_GLOBALS', 1); define('THIS_SCRIPT', 'clubslist'); // 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( 'navigation', ); // pre-cache templates used by specific actions $actiontemplates = array( ); $specialtemplates = array( 'birthdaycache', 'eventcache' ); // ######################### REQUIRE BACK-END ############################ require_once('./global.php'); // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### $navbits = array(); $navbits[$parent] = 'Club Listings'; $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('print_output("' . fetch_template('navigation') . '");'); // ### TODAY'S BIRTHDAYS ################################################# if ($vbulletin->options['showbirthdays']) { if (!is_array($vbulletin->birthdaycache) OR ($today != $vbulletin->birthdaycache['day1'] AND $today != $vbulletin->birthdaycache['day2']) OR !is_array($vbulletin->birthdaycache['users1']) ) { // Need to update! require_once(DIR . '/includes/functions_databuild.php'); $birthdaystore = build_birthdays(); DEVDEBUG('Updated Birthdays'); } else { $birthdaystore = $vbulletin->birthdaycache; } switch ($today) { case $birthdaystore['day1']: $birthdaysarray = $birthdaystore['users1']; break; case $birthdaystore['day2']: $birthdaysarray = $birthdaystore['users2']; break; default: $birthdaysarray = array(); } // memory saving unset($birthdaystore); $birthdaybits = array(); foreach ($birthdaysarray AS $birthday) { eval('$birthdaybits[] = "' . fetch_template('forumhome_birthdaybit') . '";'); } $birthdays = implode(', ', $birthdaybits); if ($stylevar['dirmark']) { $birthdays = str_replace('<!--rlm-->', $stylevar['dirmark'], $birthdays); } $show['birthdays'] = iif ($birthdays, true, false); } else { $show['birthdays'] = false; } // ### TODAY'S EVENTS ################################################# if ($vbulletin->options['showevents']) { require_once(DIR . '/includes/functions_calendar.php'); $future = gmdate('n-j-Y' , TIMENOW + 86400 + 86400 * $vbulletin->options ['showevents']); if (!is_array($vbulletin->eventcache) OR $future != $vbulletin->eventcache ['date']) { // Need to update! $eventstore = build_events(); DEVDEBUG('Updated Events'); } else { $eventstore = $vbulletin->eventcache; } unset($eventstore['date']); $events = array(); $eventcount = 0; $holiday_calendarid = 0; foreach ($eventstore AS $eventid => $eventinfo) { $offset = $eventinfo['dst'] ? $vbulletin->userinfo['timezoneoffset'] : $vbulletin->userinfo['tzoffset']; $eventstore["$eventid"]['dateline_from_user'] = $eventinfo ['dateline_from_user'] = $eventinfo['dateline_from'] + $offset * 3600; $eventstore["$eventid"]['dateline_to_user'] = $eventinfo ['dateline_to_user'] = $eventinfo['dateline_to'] + $offset * 3600; $gettime = TIMENOW - $vbulletin->options['hourdiff']; $iterations = 0; $todaydate = getdate($gettime); if (!$eventinfo['singleday'] AND !$eventinfo['recurring'] AND $eventinfo['dateline_from_user'] < gmmktime(0, 0, 0, $todaydate['mon'], $todaydate ['mday'], $todaydate['year'])) { $sub = -3; } else if ($eventinfo['holidayid']) { $sub = -2; } else if ($eventinfo['singleday']) { $sub = -1; } else { $sub = $eventinfo['dateline_from_user'] - (86400 * (intval ($eventinfo['dateline_from_user'] / 86400))); } if ($vbulletin->userinfo['calendarpermissions']["$eventinfo [calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewcalendar'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays'])) { if ($eventinfo['holidayid'] AND $vbulletin->options ['showholidays']) { if (!$holiday_calendarid) { $holiday_calendarid = -1; // stop this loop from running again in the future if (is_array($eventinfo ['holiday_calendarids'])) { foreach ($eventinfo ['holiday_calendarids'] AS $potential_holiday_calendarid) { if ($vbulletin->userinfo ['calendarpermissions']["$potential_holiday_calendarid"] & $vbulletin- >bf_ugp_calendarpermissions['canviewcalendar']) { $holiday_calendarid = $potential_holiday_calendarid; break; } } } } if ($holiday_calendarid < 0) { continue; } $eventstore["$eventid"]['calendarid'] = $holiday_calendarid; $eventinfo['calendarid'] = $holiday_calendarid; } if ($eventinfo['userid'] == $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin- >bf_ugp_calendarpermissions['canviewothersevent'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays'])) { if (!$eventinfo['recurring'] AND !$vbulletin- >options['showeventtype'] AND !$eventinfo['singleday'] AND cache_event_info ($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year'])) { $events["$eventid"][] = $gettime . "_$sub"; } else { while ($iterations < $vbulletin->options ['showevents']) { $addcache = false; $todaydate = getdate($gettime); if ($eventinfo['holidayid'] AND $eventinfo['recurring'] == 6) { if ($eventinfo['recuroption'] == "$todaydate[mon]|$todaydate[mday]") { $addcache = true; } } else if (cache_event_info($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year'])) { $addcache = true; } if ($addcache) { if (!$vbulletin->options ['showeventtype']) { $events["$eventid"][] = $gettime . "_$sub"; } else { $events["$gettime"][] = $eventid; } $eventcount++; } $iterations++; $gettime += 86400; } } } } } if (!empty($events)) { if ($vbulletin->options['showeventtype']) { ksort($events, SORT_NUMERIC); } else { function groupbyevent($a, $b) { if ($a[0] == $b[0]) { return 0; } else { $values1 = explode('_', $a[0]); $values2 = explode('_', $b[0]); if ($values1[0] != $values2[0]) { return ($values1[0] < $values2[0]) ? -1 : 1; } else { // Same day events. Check the event start time to order them properly (compare number of seconds from 00:00) return ($values1[1] < $values2[1]) ? -1 : 1; } } } uasort($events, 'groupbyevent'); // this crazy code is to remove $sub added above that ensures a event maintains its position after the sort // if associative values are the same foreach($events AS $eventid => $times) { foreach ($times AS $key => $time) { $events["$eventid"]["$key"] = intval($time); } } } $upcomingevents = ''; foreach($events AS $index => $value) { $pastevent = 0; $pastcount = 0; $comma = $eventdates = $daysevents = ''; if (!$vbulletin->options['showeventtype']) { // Group by Event // $index = $eventid $eventinfo = $eventstore["$index"]; if (empty($eventinfo['recurring']) AND empty ($eventinfo['singleday'])) { // ranged event -- show it from its real start and real end date (vbgmdate) $fromdate = vbdate($vbulletin->options ['dateformat'], $eventinfo['dateline_from_user'], false, true, false, true); $todate = vbdate($vbulletin->options ['dateformat'], $eventinfo['dateline_to_user'], false, true, false, true); if ($fromdate != $todate) { $eventdates = construct_phrase ($vbphrase['event_x_to_y'], $fromdate, $todate); } else { $eventdates = vbdate($vbulletin- >options['dateformat'], $eventinfo['dateline_from_user'], false, true, false, true); } $day = vbdate('Y-n-j', $eventinfo ['dateline_from_user'], false, false); } else { unset($day); foreach($value AS $key => $dateline) { if (($dateline - 86400) == $pastevent AND !$eventinfo['holidayid']) { $pastevent = $dateline; $pastcount++; continue; } else { if ($pastcount) { $eventdates = construct_phrase($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options ['dateformat'], $pastevent, false, true, false)); } $pastcount = 0; $pastevent = $dateline; } if (!$day) { $day = vbdate('Y-n-j', $dateline, false, false, false); } $eventdates .= $comma . vbdate ($vbulletin->options['dateformat'], $dateline, false, true, false); $comma = ', '; } if ($pastcount) { $eventdates = construct_phrase ($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], $pastevent, false, true, false)); } } if ($eventinfo['holidayid']) { $callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&day=$day&c=$eventinfo [calendarid]\">" . $vbphrase['holiday' . $eventinfo['holidayid'] . '_title'] . "</a>"; } else { $callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&day=$day&e=$eventinfo [eventid]&c=$eventinfo[calendarid]\">$eventinfo[title]</a>"; } } else { // Group by Date $eventdate = vbdate($vbulletin->options ['dateformat'], $index, false, true, false); $day = vbdate('Y-n-j', $index, false, false, false); foreach($value AS $key => $eventid) { $eventinfo = $eventstore["$eventid"]; if ($eventinfo['holidayid']) { $daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&day=$day&c=$eventinfo[calendarid]\">" . $vbphrase['holiday' . $eventinfo['holidayid'] . '_title'] . "</a>"; } else { $daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&day=$day&e=$eventinfo[eventid]&c=$eventinfo[calendarid] \">$eventinfo[title]</a>"; } $comma = ', '; } } ($hook = vBulletinHook::fetch_hook('forumhome_event')) ? eval($hook) : false; eval('$upcomingevents .= "' . fetch_template ('forumhome_event') . '";'); } // memory saving unset($events, $eventstore); } $show['upcomingevents'] = iif ($upcomingevents, true, false); $show['todaysevents'] = iif ($vbulletin->options['showevents'] == 1, true, false); } else { $show['upcomingevents'] = false; } $show['latestalbums'] = true; ?> 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 heres the template page 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> </table> <if condition="$show['birthdays']"> <!-- today's birthdays --> <tbody> <tr> <td class="thead" colspan="2"> <a style="float:$stylevar[right]" href="#top" onclick="return toggle_collapse('forumhome_birthdays')"><img id="collapseimg_forumhome_birthdays" src="$stylevar[imgdir_button]/collapse_thead$vbcollapse[collapseimg_forumhome_birthdays].gif" alt="" border="0" /></a> $vbphrase[todays_birthdays] </td> </tr> </tbody> <tbody id="collapseobj_forumhome_birthdays" style="$vbcollapse[collapseobj_forumhome_birthdays]"> <tr> <td class="alt2"><a href="calendar.php?$session[sessionurl]do=getday&day=$today&sb=1"><img src="$stylevar[imgdir_misc]/birthday.gif" alt="$vbphrase[view_birthdays]" border="0" /></a></td> <td class="alt1" width="100%"><div class="smallfont">$birthdays</div></td> </tr> </tbody> <!-- end today's birthdays --> </if> $template_hook[forumhome_wgo_pos4] <if condition="$show['upcomingevents']"> <tbody> <tr> <td class="thead" colspan="2"> <a style="float:$stylevar[right]" href="#top" onclick="return toggle_collapse('forumhome_events')"><img id="collapseimg_forumhome_events" src="$stylevar[imgdir_button]/collapse_thead$vbcollapse[collapseimg_forumhome_events].gif" alt="" border="0" /></a> <if condition="$show['todaysevents']">$vbphrase[todays_events]<else /><phrase 1="$vboptions[showevents]">$vbphrase[upcoming_events_for_the_next_x_days]</phrase></if> </td> </tr> </tbody> <tbody id="collapseobj_forumhome_events" style="$vbcollapse[collapseobj_forumhome_events]"> <tr> <td class="alt2"><a href="calendar.php$session[sessionurl_q]"><img src="$stylevar[imgdir_misc]/calendar.gif" alt="$vbphrase[calendar]" border="0" /></a></td> <td class="alt1" width="100%"><div class="smallfont">$upcomingevents</div></td> </tr> </tbody> </if> $footer </body> </html> |
#1039
|
||||
|
||||
Take a look at your code... like this line:
$birthdaystore = build_birthdays(); Search in your files for that function. It's in functions_databuild.php and that is probably called in one of the other files 'required' at the top. Try including them (under global.php) and see if that fixes it. And what is the name of your template and where is it called in your page? It must be evaled after all the code is done. And get rid of the extra stuff at the bottom of your php page. |
#1040
|
||||
|
||||
ok, added this under global in the php file
Code:
// ###################### Start getbirthdays ####################### function build_birthdays() { global $stylevar, $vbulletin; $storebirthdays = array(); $serveroffset = date('Z', TIMENOW) / 3600; $fromdatestamp = TIMENOW + (-11 - $serveroffset) * 3600; $fromdate = getdate($fromdatestamp); $storebirthdays['day1'] = date('Y-m-d', $fromdatestamp); $todatestamp = TIMENOW + (13 - $serveroffset) * 3600; $todate = getdate($todatestamp); $storebirthdays['day2'] = date('Y-m-d', $todatestamp); $todayneggmt = date('m-d', $fromdatestamp); $todayposgmt = date('m-d', $todatestamp); // Seems quicker to grab the ids rather than doing a JOIN $usergroupids = 0; foreach($vbulletin->usergroupcache AS $usergroupid => $usergroup) { if ($usergroup['genericoptions'] & $vbulletin->bf_ugp_genericoptions['showbirthday']) { $usergroupids .= ", $usergroupid"; } } // if admin wants to only show birthdays for users who have // been active within the last $vbulletin->options[birthdaysdatecut] days... if ($vbulletin->options['activememberdays'] > 0 AND ($vbulletin->options['activememberoptions'] & 1)) { $datecut = TIMENOW - (intval($vbulletin->options['activememberdays']) * 86400); $activitycut = "AND lastactivity >= $datecut"; } else { $activitycut = ''; } $bdays = $vbulletin->db->query_read_slave(" SELECT username, userid, birthday, showbirthday FROM " . TABLE_PREFIX . "user WHERE (birthday LIKE '$todayneggmt-%' OR birthday LIKE '$todayposgmt-%') AND usergroupid IN ($usergroupids) AND showbirthday IN (2, 3) $activitycut "); $year = date('Y'); $day1 = $day2 = array(); while ($birthday = $vbulletin->db->fetch_array($bdays)) { $username = $birthday['username']; $userid = $birthday['userid']; $day = explode('-', $birthday['birthday']); if ($year > $day[2] AND $day[2] != '0000' AND $birthday['showbirthday'] == 2) { $age = $year - $day[2]; } else { unset($age); } if ($todayneggmt == $day[0] . '-' . $day[1]) { $day1[] = array( 'userid' => $userid, 'username' => $username, 'age' => $age ); } else { $day2[] = array( 'userid' => $userid, 'username' => $username, 'age' => $age ); } } $storebirthdays['users1'] = $day1; $storebirthdays['users2'] = $day2; build_datastore('birthdaycache', serialize($storebirthdays), 1); return $storebirthdays; } and still nothing shows up... doh! |
#1041
|
||||
|
||||
Nothing will show up as long as you eval your template above all the code you are doing. Also, you need to see if there are any other functions you need - I was just giving one example that I found.
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|