<?php
// File: $Id: index.php,v 1.45 2006/01/17 19:41:14 hammerhead Exp $
// ----------------------------------------------------------------------
// PostNuke Content Management System
// Copyright (C) 2001 by the PostNuke Development Team.
// http://www.postnuke.com/
// ----------------------------------------------------------------------
// Based on:
// PHP-NUKE Web Portal System - http://phpnuke.org/
// Thatware - http://thatware.org/
// ----------------------------------------------------------------------
// LICENSE
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License (GPL)
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// To read the license please visit http://www.gnu.org/copyleft/gpl.html
// ----------------------------------------------------------------------
// Original Author of this file: Francisco Burzi
// Purpose of this file: Directs to the start page as defined in config.php
// ----------------------------------------------------------------------
// include base api
include 'includes/pnAPI.php';
// start PN
pnInit();
// Get variables
// Note the op parameter is re-added here for gallery embedding
// this should be removed once gallery has been updated for better
// detection of postnuke - assuming this parameter exists is
// far from the best solution - markwest
$func,
$name,
$file,
$type,
$op) = pnVarCleanFromInput('module',
'func',
'name',
'file',
'type',
'op');
// check requested module and set to start module if not present
$module = pnConfigGetVar('startpage');
$type = pnConfigGetVar('starttype');
$func = pnConfigGetVar('startfunc');
$funcargs =
explode(',', pnConfigGetVar
('startargs'));
foreach ($funcargs as $funcarg) {
$arguments[$argument[0]] = $argument[1];
}
}
$module = $name;
}
// get module information
$modinfo = pnModGetInfo(pnModGetIDFromName($module));
if ($type<>'init' && !pnModAvailable($modinfo['name'])) {
header('HTTP/1.0 404 Not Found');
include ('header.php');
echo 'Module <strong>' . pnVarPrepForDisplay
($module) .
'</strong> not available';
include ('footer.php');
}
if ($modinfo['type'] == 2 || $modinfo['type'] == 3)
{
// New-new style of loading modules
$type = 'user';
}
$func = 'main';
}
if (!
isset($arguments)) { }
// temporary additional security check.....
if ($type == 'admin' && $func == 'updateconfig' && !pnSecAuthAction(0, "$modinfo[name]::", '::', ACCESS_ADMIN)) {
header('HTTP/1.0 403 Access Denied');
include ('header.php');
include ('footer.php');
}
// we need to force the mod load if we want to call a modules interactive init
// function because the modules is not active right now
$force_modload = ($type=='init') ? true : false;
if (pnModLoad($modinfo['name'], $type, $force_modload)) {
// Run the function
$return = pnModFunc($modinfo['name'], $type, $func, $arguments);
} else {
$return = false;
}
// Sort out return of function. Can be
// true - finished
// false - display error msg
// text - return information
if ($return !== true) {
include_once('header.php');
if ($return === false) {
// Failed to load the module
header('HTTP/1.0 404 Not Found');
echo 'Failed to load module <strong>' . pnVarPrepForDisplay
($module) .
'</strong> (at function: "<strong>'. pnVarPrepForDisplay
($func).
'</strong>")';
// Text
$pnRender =& new pnRender($modinfo['name']);
$pnRender->assign($return);
if (isset($return['template'])) { echo $pnRender->
fetch($return['template']);
} else {
echo $pnRender->
fetch("{$modname}_{$type}_{$func}.htm");
}
} else {
echo 'Function <em>' . pnVarPrepForDisplay
($func) .
'</em> in module <em>' . pnVarPrepForDisplay
($module) .
'</em> returned.';
}
include_once('footer.php');
}
} else {
// Old-old style of loading modules
$file = 'index';
}
define('LOADED_AS_MODULE',
'1');
if (file_exists('modules/' . pnVarPrepForOS
($modinfo['directory']) .
'/' . pnVarPrepForOS
($file) .
'.php')) { include 'modules/' . pnVarPrepForOS($modinfo['directory']) . '/' . pnVarPrepForOS($file) . '.php';
} else {
// Failed to load the module
header('HTTP/1.0 404 Not Found');
include ('header.php');
echo 'Failed to load module <strong>' . pnVarPrepForDisplay
($modinfo['name']) .
'</strong>';
include ('footer.php');
}
}
?>