vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   sub pages from custom portal. (https://vborg.vbsupport.ru/showthread.php?t=158555)

MjrGaelic 09-23-2007 05:47 PM

sub pages from custom portal.
 
I have tried posting this question in the appropriate channels without the response so I'm hoping you coders can help.

This should be theoretically simple however I digress I'm not a coder and I can't resolve even a simple concept.

The task is to load sub_pages from smedd's portal and I want to do so without having to create additional php pages for each page I want to have. so, basically index.php?page=mypagename.

I'm ok with creating a page.php so that I can call out like page.php?do=mypagename etc.

I've gone through the API tutorial and while it partially works it uses the forum template not the index.php format.

Here is the code for my index.php
Code:

<?php
/*======================================================================*\
|| #################################################################### ||
|| # SmEdD's Portal                                                                                                          # ||
|| # ---------------------------------------------------------------- # ||
|| # Copyright ?2006 Stephen "SmEdD" Medd                                                          # ||
|| # http://www.smedd.com | stevemedd@gmail.com                                          # ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'index');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array(
        'newscache'
);

// pre-cache templates used by all actions
$globaltemplates = array(
        'smedd_index',
        'smedd_newsbits',
        'smedd_header',
        'smedd_footer'
);

$actiontemplates = array();

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

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

// ######################### PROCESS NEWS ############################
if (!empty($vbulletin->newscache))
{
        foreach ($vbulletin->newscache AS $news)
        {
                $vbcollapse['collapseobj_newsid'] =& $vbcollapse["collapseobj_newsbit_$news[threadid]"];
                $vbcollapse['collapseimg_newsid'] =& $vbcollapse["collapseimg_newsbit_$news[threadid]"];

                $show['reply-s'] = true;
                if ($news['replycount'] == 1)
                {
                        $show['reply-s'] = false;
                }

                $news['time'] = vbdate($vbulletin->options['timeformat'], $news['dateline']);
                $news['date'] = vbdate($vbulletin->options['dateformat'], $news['dateline'], 1);
                eval('$newsbits .= "' . fetch_template('smedd_newsbits') . '";');
        }

        // memory saving
        unset($newscache, $news);
}

// #################### EVAL GLOBAL TEMPLATES #######################
// Clear the header and footer variables so we can set them again without problems!
unset($header, $footer);

$vbphrase['powered_by_vbulletin'] = "Home page powered by SmEdD's Portal, Copyright &copy;2006, Stephen Medd.<br />\n" . $vbphrase['powered_by_vbulletin'];

// Output all the templates
eval('$header = "' . fetch_template('smedd_header') . '";');
eval('$footer = "' . fetch_template('smedd_footer') . '";');
if ($shownewpm)
{
        eval('$footer .= "' . fetch_template('pm_popup_script') . '";');
}

eval('print_output("' . fetch_template('smedd_index') . '");');
?>

I've tried adding:
Code:

if ($_REQUEST['do'] == 'ventrilo')
{
    eval('print_output("' . fetch_template('page_ventrilo') . '");');
}

but nothing happens (ventrilo is the example, and the templates name is page_ventrilo)

If possible what I would like to have is a piece of code in the page that would call out custom templates.. I know vbadvanced does this seamlessly but I don't want to run vbadvanced, just syndicate news and add my own content.

Can anyone offer a suggestion or 2 to point me in the right direction?

If you need, the context of the project is here so you can see what I'm working towards.

Kind regards,

Ryan

Paul M 09-23-2007 09:54 PM

You don't say where you added that code - but remember that you can only call print_output once() - once you call that, the page is output and execution ends.

MjrGaelic 09-25-2007 12:42 AM

Thanks for responding Paul,

I placed the last bit of code at the end of the page before the final ?> as instructed in the tutorial I read.

How do I set the print_out to be dynamic so that I can generate URL's like page.php?do=mypage where mypage is a template.

Dismounted 09-25-2007 05:22 AM

PHP Code:

<?php
/*======================================================================*\
|| #################################################################### ||
|| # SmEdD's Portal                                                      # ||
|| # ---------------------------------------------------------------- # ||
|| # Copyright ?2006 Stephen "SmEdD" Medd                              # ||
|| # http://www.smedd.com | stevemedd@gmail.com                       # ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT''index');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array(
    
'newscache'
);

// pre-cache templates used by all actions
$globaltemplates = array(
    
'smedd_index',
    
'smedd_newsbits',
    
'smedd_header',
    
'smedd_footer'
);

$actiontemplates = array();

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

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

// ######################### PROCESS NEWS ############################
if (!empty($vbulletin->newscache))
{
    foreach (
$vbulletin->newscache AS $news)
    {
        
$vbcollapse['collapseobj_newsid'] =& $vbcollapse["collapseobj_newsbit_$news[threadid]"];
        
$vbcollapse['collapseimg_newsid'] =& $vbcollapse["collapseimg_newsbit_$news[threadid]"];

        
$show['reply-s'] = true;
        if (
$news['replycount'] == 1)
        {
            
$show['reply-s'] = false;
        }

        
$news['time'] = vbdate($vbulletin->options['timeformat'], $news['dateline']);
        
$news['date'] = vbdate($vbulletin->options['dateformat'], $news['dateline'], 1);
        eval(
'$newsbits .= "' fetch_template('smedd_newsbits') . '";');
    }

    
// memory saving
    
unset($newscache$news);
}

// #################### EVAL GLOBAL TEMPLATES #######################
// Clear the header and footer variables so we can set them again without problems!
unset($header$footer);

$vbphrase['powered_by_vbulletin'] = "Home page powered by SmEdD's Portal, Copyright &copy;2006, Stephen Medd.<br />\n" $vbphrase['powered_by_vbulletin'];

// Output all the templates
eval('$header = "' fetch_template('smedd_header') . '";');
eval(
'$footer = "' fetch_template('smedd_footer') . '";');
if (
$shownewpm)
{
    eval(
'$footer .= "' fetch_template('pm_popup_script') . '";');
}

if (
$_REQUEST['do'] == 'ventrilo')
{
    eval(
'print_output("' fetch_template('page_ventrilo') . '");');
}
else
{
    eval(
'print_output("' fetch_template('smedd_index') . '");');
}
?>


MjrGaelic 09-25-2007 05:16 PM

Thank you dismounted, I'll try that this evenin when I get home. As I plan to add many pages to the site am I correct that I will be adding code for each page like:

Code:

if ($_REQUEST['do'] == 'ventrilo')
{
    eval('print_output("' . fetch_template('page_ventrilo') . '");');
}
else
{
if ($_REQUEST['do'] == 'page1')
{
    eval('print_output("' . fetch_template('page_page1') . '");');
}
else
{
if ($_REQUEST['do'] == 'page2')
{
    eval('print_output("' . fetch_template('page_page2') . '");');
}
else
{

and so on?

Dismounted 09-26-2007 06:45 AM

PHP Code:

if ($_REQUEST['do'] == 'ventrilo')
{
    eval(
'print_output("' fetch_template('page_ventrilo') . '");');
}
else if (
$_REQUEST['do'] == 'page1')
{
    eval(
'print_output("' fetch_template('page_page1') . '");');
}
else if (
$_REQUEST['do'] == 'page2')
{
    eval(
'print_output("' fetch_template('page_page2') . '");');
}
else
{
    eval(
'print_output("' fetch_template('smedd_index') . '");');



Opserty 09-26-2007 04:37 PM

Use switch as opposed to multiple elseif's I'm pretty sure they work as expected in vB.

http://php.net/switch

MjrGaelic 09-26-2007 11:36 PM

Thank you Dismounted. For clenliness sake I've actually created a page.php and call the evals from there..

Opserty, what advantage is switch over what has been presented. I looked it over and it looked like I'd need a good sit down and a coffee to apply it.

Dismounted 09-27-2007 05:04 AM

Converted to switches :).
PHP Code:

switch ($_REQUEST['do'])
{
    case 
'ventrilo':
        eval(
'print_output("' fetch_template('page_ventrilo') . '");');
        break;
    case 
'page1':
        eval(
'print_output("' fetch_template('page_page1') . '");');
        break;
    case 
'page2':
        eval(
'print_output("' fetch_template('page_page2') . '");');
        break;
    default:
        eval(
'print_output("' fetch_template('smedd_index') . '");');
        break;




All times are GMT. The time now is 03:36 AM.

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.01091 seconds
  • Memory Usage 1,807KB
  • 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
  • (3)bbcode_code_printable
  • (3)bbcode_php_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