PDA

View Full Version : Including a webpage into another PHP file - NEED HELP!


davis31b
12-11-2011, 10:40 PM
I have tried every possible combination of trying to get this done and have got close, but it still isn't working correctly.

What I want to do is include my auction site, which can be viewed here: http://www.generalaviationonline.com/auction/ into a separate PHP file that I have created that was integrated into the navbar mod & used the How to create your own VB page (https://vborg.vbsupport.ru/showthread.php?t=228112) article.

So my file, which is auction.php contains the following code:


<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'auction_plug');
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('auction',
);

// 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('' => 'Auction'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'General Aviation Auction';

$content = file_get_contents('http://www.generalaviationonline.com/auction/');
echo $content;

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('navbar_auction');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());
?>


While this is the closest code (which is highlighted in red) that I have been able to use to somewhat do what I want, when it outputs the auction site, it doesn't load it in between: vb:raw navbar & vb:raw footer, instead it displays it at the very top of the page (see attachment photo) and it doesn't even load all the images.

Any ideas what I need to do? I would even pay someone to help me fix it. Thanks!

Lynne
12-11-2011, 10:51 PM
Two things, why not just put the code into the page instead of this line:
$content = file_get_contents('http://www.generalaviationonline.com/auction/'); And secondly, you cannot use echo when spitting out something to a template. You need to assign the output to a variable and then spit out the variable in the template.

$templater = vB_Template::create('navbar_auction');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
$templater->register('content', $content );
print_output($templater->render());

davis31b
12-11-2011, 11:40 PM
I didn't think about placing the code directly in the php file. Where do you feel is a good place for the code? Where I had the echo command?

And the second part is over my skill level. Thanks for the quick input.

Here is the code from my index file for the auction site, I know that I will need to add "auction/" in front of most of the directories so that it will be able to find it, but I will probably need a little help combining both php files, if someone could help me, I would be indebted to you! :)


<?
session_start();

define ('IN_SITE', 1);
define ('INDEX_PAGE', 1); ## for integration

if (!file_exists('includes/config.php')) echo "<script>document.location.href='install/install.php'</script>";

include_once ('includes/global.php');

include_once ('includes/functions_login.php');
include_once ('includes/functions_item.php');

if (stristr($_GET['option'], 'logout'))
{
logout();
}

include_once ('global_header.php');

if (isset($_GET['change_language']))
{
$all_languages = list_languages('site');

if (in_array($_GET['change_language'], $all_languages))
{
$session->set('site_lang', $_GET['change_language']);
}

$refresh_link = 'index.php';

$template_output .= '<br><p class="contentfont" align="center">' . MSG_SITE_LANG_CHANGED . '<br><br>
Please click <a href="' . process_link('index') . '">' . MSG_HERE . '</a> ' . MSG_PAGE_DOESNT_REFRESH . '</p>';
$template_output .= '<script>window.setTimeout(\'changeurl();\',300); function changeurl(){window.location=\'' . $refresh_link . '\'}</script>';
}
else if (isset($_GET['change_skin']))
{
$all_skins = list_skins('site');

if (in_array($_GET['default_theme'], $all_skins))
{
$session->set('site_theme', $_GET['default_theme']);
}

$refresh_link = 'index.php';

$template_output .= '<br><p class="contentfont" align="center">' . MSG_SITE_SKIN_CHANGED . '<br><br>
Please click <a href="' . process_link('index') . '">' . MSG_HERE . '</a> ' . MSG_PAGE_DOESNT_REFRESH . '</p>';
$template_output .= '<script>window.setTimeout(\'changeurl();\',300); function changeurl(){window.location=\'' . $refresh_link . '\'}</script>';
}
else
{
include_once ('global_mainpage.php');
}

include_once ('global_footer.php');

echo $template_output;

?>

Lynne
12-12-2011, 04:33 AM
I basically wrote the second part of the code for you. Cellarius wrote a really good article that you may be interested in - [vB4] Rendering templates and registering variables - a short guide (https://vborg.vbsupport.ru/showthread.php?t=228078) That will help you understand that part of the code.

I would still not do it your way. I'd just include the code in the php file instead of in an outsite file, but that is up to you.

davis31b
12-13-2011, 07:20 AM
Two things, why not just put the code into the page instead of this line:
$content = file_get_contents('http://www.generalaviationonline.com/auction/');

Okay, I tried this.. not working, I just want to pay someone!

Lynne
12-13-2011, 04:48 PM
You are welcome to post in the Requests For Paid Services (https://vborg.vbsupport.ru/forumdisplay.php?f=30) if that is what you want.

davis31b
12-15-2011, 07:30 AM
I have posted this in the PAID services area and am looking for a design similar to this screenshot I edited:

http://img210.imageshack.us/img210/2849/examplet.jpg