The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Wondering about the stability of vb4
Been seeing some behavior that is beginning to scare me. Successfully added numerous custom pages via Lynn's instructions. 1 creat template 2. create php file. 3 Point php file at template. 4 Create plugin with included reference. 5 Add include reference to body of template file (and sometimes a second plugin for the head).
Everything was going great until my 5th or 6th new page when I started seeing behavior that made no sense. I followed the same exact procedures as I had for the previous pages yet the new page would either not come up at all or it would be missing the plugin content. I ended up recreating the plugins, the php file and the template file numerous times with different names then for no apparent reason it started working again. Then tonight I experienced it again. I needed to add a custom page for my terms of use page. This time when I created the custom page whenever I pointed the plugin to the template file it would kill my forums and CMS. Finally after 8 or 9 tries with different file names it worked using the same file names and included numbers as I started with. As I am about to go live next week this behavior is making me very nervous. Has anybody else experienced this behavior? |
#2
|
||||
|
||||
I have plenty of "custom pages" with no problems whatsoever. Can you post a sample of one page to make sure? When this happens again, disable the plugins globally (you dont need them to render the custom pages), does it still work?
|
#3
|
|||
|
|||
Quote:
I first saw this behavior 3 weeks ago. I had added like 8 or 9 custom pages with now issues at all. Then when I needed add my 10th page it wouldn't work. I was ready to pull my hair out as when creating new custom pages I just use the previous files (plugin code, php file, template file and the php files that are called by the plugins) as templates and just give them new names and rename where appropriate in files, increment the phpincluded number, etc. I created the new page and the thing either would not come up at all or it would be missing the plugin generated content. After renaming and recreating all the files (template, plugins, php file etc) it suddenly worked. What freaked me it is that it made no sense why it worked as I had created the files exactly as before. It was like for two hours 2 + 2 no longer equaled 4. At the time I managed to convince myself that I must have been doing something goofy. After that everything was stable. Then tonight it happened again. But this time the page would come up missing the content and it killed my cms and forum pages. This really freaked me out. For a period of time just creating and activating the plugin would kill my CMS and formum. Then after that I could creat and activate the plugin but the minute I specifed the new template file name it would kill the CMS and forum. Same drill as last time recreated all files, new names etc. After an hour it worked with the same combination of file names that I started with. Needless to say I am not feeling super confident. I was wondering if some background maintenance task was causing this issue. Any feedback would be appreciated. See below for examples of Template, plugin code, and php template: Template file----------------------------------------------------------------------------------------------- {vb:stylevar htmldoctype} <html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html"> <head> <script type="text/javascript" src="lookup.js"></script> <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title> {vb:raw headinclude} {vb:raw headinclude_bottom} </head> <body> {vb:raw header} {vb:raw navbar} {vb:raw $includedphp31} {vb:raw footer} </body> </html> Plugin code------------------------------------------------------------------------------------------ ob_start(); include('termsbody.php'); $includedphp31 = ob_get_contents(); ob_end_clean(); vB_Template:reRegister('terms',array('includedph p31' => $includedphp31)); set for global start and execution order of 5, 6 or 7 PHP template--------------------------------------------------------------------------------------------------------- <?php // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // #################### DEFINE IMPORTANT CONSTANTS ####################### define('THIS_SCRIPT', 'home'); 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('terms', ); // 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('' => 'Terms')); $navbar = render_navbar_template($navbits); // ###### YOUR CUSTOM CODE GOES HERE ##### $pagetitle = 'Terms and Conditions'; // ###### NOW YOUR TEMPLATE IS BEING RENDERED ###### $templater = vB_Template::create('terms'); $templater->register_page_templates(); $templater->register('navbar', $navbar); $templater->register('pagetitle', $pagetitle); print_output($templater->render()); ?> Php file---------------------------------------------------------------------------------- standard code. Sometimes PHP and HTML or other times just HTML. Is there a limit to the number of plugins\custom pages? |
#4
|
||||
|
||||
Read this (your plugin code isnt necessary at all I believe):
https://vborg.vbsupport.ru/showthread.php?t=228112 |
#5
|
|||
|
|||
Yes this is the article I followed the create the new page. Of course that just generates an empty page with the header and footer. I followed some other instructions here If forget where on how to get your PHP content into the page. In order to do that I had to create the plugin that references the php code that feeds it into the template file. As you can't just enter PHP code directly into the template file.
Is there a better way to feed in PHP code into a custom page? I was browsing the forums just now when I came upon the post below dated 2-10-2010: Marco van Herwaarden Marco van Herwaarden is offline vBulletin.org Coordinator Join Date: Jul 2004 Posts: 25,556 Design: Blue Lagoon,Fixed You can not usxe PHP in a template. You will need to use a plugin, assign the output of the PHP to a variable and use that in your template. __________________ Marco van Herwaarden vBulletin.org Coordinator http://www.vbulletin.com/docs/html/t..._externalfiles I think I'm doing this correctly..... |
#6
|
||||
|
||||
Ah I see. This should help alot:
https://vborg.vbsupport.ru/showthread.php?t=228078 If you dont understand, feel free to ask and I'll gladly help |
#7
|
|||
|
|||
Quote:
I read this thread a month ago when I was first trying to figure out how to get all my php code into my custom pages. It didn't make much sense back then. It makes a little more sense now. I was planning on going live with my site next week. I assume the Plugin method I chose is ok for now. I would like to understand the method in that thread though and if it makes sense I will redo my custom pages later when I have a more firm understanding of how to implement what the thread describes "Now, with the result of the rendering we can do several things: . Output template directly - custom pages So I'm trying to understand the post in that thread. So I have lots of pages of php + html. Its basically a complete php app. So with the plugin method I am assigning a variable to an entire page of php\html content and then placing that variable in the VB template (the one found via edit > templates). In the article I am I doing something similar right? IE assigning a variable to a page of php\html? I'm reading the passage below and trying to figure out exactly how my custom code gets assigned to a variable. The code in each of my php pages is unique. PHP Code: $templater = vB_Template::create('mytemplate'); $templater->register_page_templates(); $templater->register('my_var', $my_var); $templater->register('my_array', $my_array); print_output($templater->render()); This immediatly outputs the template. Use this if you have created your own page, for example. Note the second line, which is special for this type of use: I'm a bit of a beginner when it comes to PHP coding. " /* Some Code, setting variables, (multidimensional) array */ $my_var = "abc";" so they are defining the value of $my_var as "abc" ok so how to I set a variable to my php code. Would it be $my_var = "mycustomphp.php" ?? So using my 2 template examples above (what goes where using this method to output the contents of termsbody.php?? |
#8
|
||||
|
||||
I'm only an amateur as well :P
It depends on how you want to output it. Generally, I put the HTML within the templates but using it in PHP is fine as well. You just bind your entire php+html output into 1 variable, lets say $output. This does not mean $output = mycustomphp.php; btw. Then put this at the end of your php code: PHP Code:
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"> {vb:raw output} </div> </div> {vb:raw footer} </body> </html> |
#9
|
|||
|
|||
Quote:
You just bind your entire php+html output into 1 variable, lets say $output. Dragonblade, please excuse my ignorance but how to I bind my php and html code into a variable? With the plugin method I specified the php page where all my code resides. How do I do it here? Where do I put my php/html code? |
#10
|
||||
|
||||
Just to make sure, do you echo your html+PHP since you are using the include function before?
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|