"forward for not existing or empty header to setup"

This commit is contained in:
Ralf Becker 2009-04-28 16:06:18 +00:00
parent d268d6d816
commit 1c9c65278b

253
index.php
View File

@ -1,156 +1,157 @@
<?php <?php
/**************************************************************************\ /**************************************************************************\
* eGroupWare * * eGroupWare *
* http://www.egroupware.org * * http://www.egroupware.org *
* -------------------------------------------- * * -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it * * This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the * * under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your * * Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. * * option) any later version. *
\**************************************************************************/ \**************************************************************************/
/* $Id$ */ /* $Id$ */
if(!file_exists('header.inc.php')) // forward for not existing or empty header to setup
{ if(!file_exists('header.inc.php') || !filesize('header.inc.php'))
Header('Location: setup/index.php'); {
exit; Header('Location: setup/index.php');
} exit;
}
if(isset($_GET['hasupdates']) && $_GET['hasupdates'] == 'yes') if(isset($_GET['hasupdates']) && $_GET['hasupdates'] == 'yes')
{ {
$hasupdates = True; $hasupdates = True;
} }
/* /*
This is the menuaction driver for the multi-layered design This is the menuaction driver for the multi-layered design
*/ */
if(isset($_GET['menuaction']) && preg_match('/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+\.[A-Za-z0-9_]+$/',$_GET['menuaction'])) if(isset($_GET['menuaction']) && preg_match('/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+\.[A-Za-z0-9_]+$/',$_GET['menuaction']))
{
list($app,$class,$method) = explode('.',$_GET['menuaction']);
if(! $app || ! $class || ! $method)
{ {
list($app,$class,$method) = explode('.',$_GET['menuaction']);
if(! $app || ! $class || ! $method)
{
$invalid_data = True;
}
}
else
{
$app = 'home';
$invalid_data = True; $invalid_data = True;
} }
}
else
{
$app = 'home';
$invalid_data = True;
}
if($app == 'phpgwapi') if($app == 'phpgwapi')
{ {
$app = 'home'; $app = 'home';
$api_requested = True; $api_requested = True;
} }
$GLOBALS['egw_info'] = array( $GLOBALS['egw_info'] = array(
'flags' => array( 'flags' => array(
'noheader' => True, 'noheader' => True,
'nonavbar' => True, 'nonavbar' => True,
'currentapp' => $app 'currentapp' => $app
) )
); );
include('./header.inc.php'); include('./header.inc.php');
// Check if we are using windows or normal webpage // Check if we are using windows or normal webpage
$windowed = false; $windowed = false;
$tpl_info = EGW_SERVER_ROOT . '/phpgwapi/templates/' . basename($GLOBALS['egw_info']['user']['preferences']['common']['template_set']) . '/setup/setup.inc.php'; $tpl_info = EGW_SERVER_ROOT . '/phpgwapi/templates/' . basename($GLOBALS['egw_info']['user']['preferences']['common']['template_set']) . '/setup/setup.inc.php';
if(@file_exists($tpl_info)) if(@file_exists($tpl_info))
{ {
include_once($tpl_info); include_once($tpl_info);
// if(isset($template_info)) // if(isset($template_info))
// { // {
if($GLOBALS['egw_info']['template'][$GLOBALS['egw_info']['user']['preferences']['common']['template_set']]['windowed']) if($GLOBALS['egw_info']['template'][$GLOBALS['egw_info']['user']['preferences']['common']['template_set']]['windowed'])
{ {
$windowed = true; $windowed = true;
} }
// } // }
}
if($app == 'home' && !$api_requested && !$windowed)
{
if ($GLOBALS['egw_info']['server']['force_default_app'] && $GLOBALS['egw_info']['server']['force_default_app'] != 'user_choice')
{
$GLOBALS['egw_info']['user']['preferences']['common']['default_app'] = $GLOBALS['egw_info']['server']['force_default_app'];
} }
if($GLOBALS['egw_info']['user']['preferences']['common']['default_app'] && !$hasupdates)
if($app == 'home' && !$api_requested && !$windowed)
{ {
if ($GLOBALS['egw_info']['server']['force_default_app'] && $GLOBALS['egw_info']['server']['force_default_app'] != 'user_choice') $GLOBALS['egw']->redirect(egw_framework::index($GLOBALS['egw_info']['user']['preferences']['common']['default_app']));
{
$GLOBALS['egw_info']['user']['preferences']['common']['default_app'] = $GLOBALS['egw_info']['server']['force_default_app'];
}
if($GLOBALS['egw_info']['user']['preferences']['common']['default_app'] && !$hasupdates)
{
$GLOBALS['egw']->redirect(egw_framework::index($GLOBALS['egw_info']['user']['preferences']['common']['default_app']));
}
else
{
$GLOBALS['egw']->redirect_link('/home/index.php');
}
}
if($windowed && $_GET['cd'] == 'yes')
{
$GLOBALS['egw_info']['flags'] = array(
'noheader' => False,
'nonavbar' => False,
'currentapp' => 'eGroupWare'
);
$GLOBALS['egw']->common->egw_header();
$GLOBALS['egw']->common->egw_footer();
} }
else else
{ {
if($api_requested) $GLOBALS['egw']->redirect_link('/home/index.php');
{ }
$app = 'phpgwapi'; }
}
$obj = CreateObject($app.'.'.$class); if($windowed && $_GET['cd'] == 'yes')
if((is_array($obj->public_functions) && $obj->public_functions[$method]) && !$invalid_data) {
{ $GLOBALS['egw_info']['flags'] = array(
$obj->$method(); 'noheader' => False,
unset($app); 'nonavbar' => False,
unset($class); 'currentapp' => 'eGroupWare'
unset($method); );
unset($invalid_data); $GLOBALS['egw']->common->egw_header();
unset($api_requested); $GLOBALS['egw']->common->egw_footer();
}
else
{
if(!$app || !$class || !$method || $invalid_data)
{
if(@is_object($GLOBALS['egw']->log))
{
$GLOBALS['egw']->log->message(array(
'text' => 'W-BadmenuactionVariable, menuaction missing or corrupt: %1',
'p1' => $menuaction,
'line' => __LINE__,
'file' => __FILE__
));
}
}
if(!is_array($GLOBALS[$class]->public_functions) || !$GLOBALS[$class]->public_functions[$method] && $method) }
{ else
if(@is_object($GLOBALS['egw']->log)) {
{ if($api_requested)
$GLOBALS['egw']->log->message(array( {
'text' => 'W-BadmenuactionVariable, attempted to access private method: %1', $app = 'phpgwapi';
'p1' => $method, }
'line' => __LINE__,
'file' => __FILE__ $obj = CreateObject($app.'.'.$class);
)); if((is_array($obj->public_functions) && $obj->public_functions[$method]) && !$invalid_data)
} {
} $obj->$method();
unset($app);
unset($class);
unset($method);
unset($invalid_data);
unset($api_requested);
}
else
{
if(!$app || !$class || !$method || $invalid_data)
{
if(@is_object($GLOBALS['egw']->log)) if(@is_object($GLOBALS['egw']->log))
{ {
$GLOBALS['egw']->log->commit(); $GLOBALS['egw']->log->message(array(
'text' => 'W-BadmenuactionVariable, menuaction missing or corrupt: %1',
'p1' => $menuaction,
'line' => __LINE__,
'file' => __FILE__
));
} }
$GLOBALS['egw']->redirect_link('/home/index.php');
} }
if(!isset($GLOBALS['egw_info']['nofooter'])) if(!is_array($GLOBALS[$class]->public_functions) || !$GLOBALS[$class]->public_functions[$method] && $method)
{ {
$GLOBALS['egw']->common->egw_footer(); if(@is_object($GLOBALS['egw']->log))
{
$GLOBALS['egw']->log->message(array(
'text' => 'W-BadmenuactionVariable, attempted to access private method: %1',
'p1' => $method,
'line' => __LINE__,
'file' => __FILE__
));
}
} }
if(@is_object($GLOBALS['egw']->log))
{
$GLOBALS['egw']->log->commit();
}
$GLOBALS['egw']->redirect_link('/home/index.php');
} }
if(!isset($GLOBALS['egw_info']['nofooter']))
{
$GLOBALS['egw']->common->egw_footer();
}
}