2000-09-06 23:54:20 +02:00
|
|
|
<?php
|
2001-07-09 19:33:19 +02:00
|
|
|
/**************************************************************************\
|
2005-07-08 07:00:14 +02:00
|
|
|
* eGroupWare *
|
|
|
|
* http://www.egroupware.org *
|
2001-07-09 19:33:19 +02:00
|
|
|
* -------------------------------------------- *
|
|
|
|
* 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 *
|
|
|
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
|
|
|
* option) any later version. *
|
|
|
|
\**************************************************************************/
|
2003-08-28 16:16:30 +02:00
|
|
|
|
2001-07-09 19:33:19 +02:00
|
|
|
/* $Id$ */
|
|
|
|
|
2003-11-14 03:37:20 +01:00
|
|
|
if(!file_exists('header.inc.php'))
|
2003-05-18 17:18:02 +02:00
|
|
|
{
|
|
|
|
Header('Location: setup/index.php');
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
2004-03-14 09:22:29 +01:00
|
|
|
$GLOBALS['sessionid'] = isset($_GET['sessionid']) ? $_GET['sessionid'] : @$_COOKIE['sessionid'];
|
2003-11-14 03:37:20 +01:00
|
|
|
if(!$GLOBALS['sessionid'])
|
2001-07-11 07:12:27 +02:00
|
|
|
{
|
2004-04-14 13:52:16 +02:00
|
|
|
Header('Location: login.php'.
|
2004-04-19 08:24:53 +02:00
|
|
|
(isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']) ?
|
|
|
|
'?phpgw_forward='.urlencode('/index.php?'.$_SERVER['QUERY_STRING']):''));
|
2001-07-11 07:12:27 +02:00
|
|
|
exit;
|
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
|
|
|
|
if(isset($_GET['hasupdates']) && $_GET['hasupdates'] == 'yes')
|
|
|
|
{
|
2005-06-15 13:16:27 +02:00
|
|
|
$hasupdates = True;
|
|
|
|
}
|
2001-07-11 07:12:27 +02:00
|
|
|
|
2001-07-09 19:33:19 +02:00
|
|
|
/*
|
2003-11-14 03:37:20 +01:00
|
|
|
This is the menuaction driver for the multi-layered design
|
2001-07-09 19:33:19 +02:00
|
|
|
*/
|
2006-10-03 17:18:03 +02:00
|
|
|
if(isset($_GET['menuaction']) && preg_match('/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+\.[A-Za-z0-9_]+$/',$_GET['menuaction']))
|
2001-04-08 08:54:42 +02:00
|
|
|
{
|
2006-10-03 17:18:03 +02:00
|
|
|
list($app,$class,$method) = explode('.',$_GET['menuaction']);
|
2003-11-14 03:37:20 +01:00
|
|
|
if(! $app || ! $class || ! $method)
|
2001-07-09 19:33:19 +02:00
|
|
|
{
|
|
|
|
$invalid_data = True;
|
|
|
|
}
|
2001-04-08 08:54:42 +02:00
|
|
|
}
|
2001-07-09 19:33:19 +02:00
|
|
|
else
|
2001-04-08 08:54:42 +02:00
|
|
|
{
|
2001-07-09 19:33:19 +02:00
|
|
|
$app = 'home';
|
|
|
|
$invalid_data = True;
|
2001-04-08 08:54:42 +02:00
|
|
|
}
|
2000-08-18 05:24:22 +02:00
|
|
|
|
2003-11-14 03:37:20 +01:00
|
|
|
if($app == 'phpgwapi')
|
2001-11-01 05:09:13 +01:00
|
|
|
{
|
|
|
|
$app = 'home';
|
|
|
|
$api_requested = True;
|
|
|
|
}
|
|
|
|
|
2006-10-03 17:18:03 +02:00
|
|
|
$GLOBALS['egw_info'] = array(
|
|
|
|
'flags' => array(
|
|
|
|
'noheader' => True,
|
|
|
|
'nonavbar' => True,
|
|
|
|
'enable_network_class' => True,
|
|
|
|
'enable_contacts_class' => True,
|
|
|
|
'enable_nextmatchs_class' => True,
|
|
|
|
'currentapp' => $app
|
|
|
|
)
|
2001-04-08 08:54:42 +02:00
|
|
|
);
|
2001-07-09 19:33:19 +02:00
|
|
|
include('./header.inc.php');
|
2005-07-08 07:00:14 +02:00
|
|
|
|
2005-06-29 23:05:30 +02:00
|
|
|
// Check if we are using windows or normal webpage
|
2005-06-15 13:16:27 +02:00
|
|
|
$windowed = false;
|
2006-10-03 17:18:03 +02:00
|
|
|
$tpl_info = EGW_SERVER_ROOT . '/phpgwapi/templates/' . basename($GLOBALS['egw_info']['user']['preferences']['common']['template_set']) . '/setup/setup.inc.php';
|
2005-07-08 07:00:14 +02:00
|
|
|
|
2005-06-29 23:05:30 +02:00
|
|
|
if(@file_exists($tpl_info))
|
2001-04-08 08:54:42 +02:00
|
|
|
{
|
2005-06-29 23:05:30 +02:00
|
|
|
include_once($tpl_info);
|
2005-07-08 07:00:14 +02:00
|
|
|
// if(isset($template_info))
|
2005-06-29 23:05:30 +02:00
|
|
|
// {
|
2005-07-08 07:00:14 +02:00
|
|
|
if($GLOBALS['egw_info']['template'][$GLOBALS['egw_info']['user']['preferences']['common']['template_set']]['windowed'])
|
2005-06-29 23:05:30 +02:00
|
|
|
{
|
|
|
|
$windowed = true;
|
2005-07-08 07:00:14 +02:00
|
|
|
}
|
2005-06-29 23:05:30 +02:00
|
|
|
// }
|
2001-04-08 08:54:42 +02:00
|
|
|
}
|
2005-06-29 23:05:30 +02:00
|
|
|
|
2005-06-15 13:16:27 +02:00
|
|
|
if($app == 'home' && !$api_requested && !$windowed)
|
2001-11-01 05:09:13 +01:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
if ($GLOBALS['egw_info']['server']['force_default_app'] && $GLOBALS['egw_info']['server']['force_default_app'] != 'user_choice')
|
2005-06-15 13:16:27 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
$GLOBALS['egw_info']['user']['preferences']['common']['default_app'] = $GLOBALS['egw_info']['server']['force_default_app'];
|
2005-06-15 13:16:27 +02:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
if($GLOBALS['egw_info']['user']['preferences']['common']['default_app'] && !$hasupdates)
|
|
|
|
{
|
|
|
|
$GLOBALS['egw']->redirect_link('/'.$GLOBALS['egw_info']['user']['preferences']['common']['default_app'].'/index.php');
|
2005-06-15 13:16:27 +02:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
else
|
|
|
|
{
|
|
|
|
$GLOBALS['egw']->redirect_link('/home/index.php');
|
2005-06-15 13:16:27 +02:00
|
|
|
}
|
2001-11-01 05:09:13 +01:00
|
|
|
}
|
|
|
|
|
2005-07-08 07:00:14 +02:00
|
|
|
if($windowed && $_GET['cd'] == 'yes')
|
2001-07-04 05:00:05 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
$GLOBALS['egw_info']['flags'] = array(
|
2005-06-15 13:16:27 +02:00
|
|
|
'noheader' => False,
|
|
|
|
'nonavbar' => False,
|
|
|
|
'enable_network_class' => True,
|
|
|
|
'enable_contacts_class' => True,
|
|
|
|
'enable_nextmatchs_class' => True,
|
|
|
|
'currentapp' => 'eGroupWare'
|
|
|
|
);
|
2005-10-07 09:58:19 +02:00
|
|
|
$GLOBALS['egw']->common->egw_header();
|
|
|
|
$GLOBALS['egw']->common->egw_footer();
|
2005-06-15 13:16:27 +02:00
|
|
|
|
2001-07-04 05:00:05 +02:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
else
|
|
|
|
{
|
2005-06-15 13:16:27 +02:00
|
|
|
if($api_requested)
|
2001-11-01 05:16:35 +01:00
|
|
|
{
|
2005-06-15 13:16:27 +02:00
|
|
|
$app = 'phpgwapi';
|
2001-11-01 05:16:35 +01:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
|
2005-11-19 18:23:56 +01:00
|
|
|
$GLOBALS[$class] = CreateObject($app.'.'.$class); // dont use =& with $GLOBALS, it does NOT behave as expected
|
2006-10-03 17:18:03 +02:00
|
|
|
if((is_array($GLOBALS[$class]->public_functions) && $GLOBALS[$class]->public_functions[$method]) && !$invalid_data)
|
2001-08-05 12:13:54 +02:00
|
|
|
{
|
2005-06-15 13:16:27 +02:00
|
|
|
execmethod($_GET['menuaction']);
|
|
|
|
unset($app);
|
|
|
|
unset($class);
|
|
|
|
unset($method);
|
|
|
|
unset($invalid_data);
|
|
|
|
unset($api_requested);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2006-10-03 17:18:03 +02:00
|
|
|
if(!$app || !$class || !$method || $invalid_data)
|
2005-06-15 13:16:27 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
if(@is_object($GLOBALS['egw']->log))
|
2005-06-15 13:16:27 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
$GLOBALS['egw']->log->message(array(
|
2005-06-15 13:16:27 +02:00
|
|
|
'text' => 'W-BadmenuactionVariable, menuaction missing or corrupt: %1',
|
|
|
|
'p1' => $menuaction,
|
|
|
|
'line' => __LINE__,
|
|
|
|
'file' => __FILE__
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
|
2006-10-03 17:18:03 +02:00
|
|
|
if(!is_array($GLOBALS[$class]->public_functions) || !$GLOBALS[$class]->public_functions[$method] && $method)
|
2005-06-15 13:16:27 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
if(@is_object($GLOBALS['egw']->log))
|
2005-06-15 13:16:27 +02:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
$GLOBALS['egw']->log->message(array(
|
2005-06-15 13:16:27 +02:00
|
|
|
'text' => 'W-BadmenuactionVariable, attempted to access private method: %1',
|
|
|
|
'p1' => $method,
|
|
|
|
'line' => __LINE__,
|
|
|
|
'file' => __FILE__
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
if(@is_object($GLOBALS['egw']->log))
|
2003-11-14 03:37:20 +01:00
|
|
|
{
|
2005-07-08 07:00:14 +02:00
|
|
|
$GLOBALS['egw']->log->commit();
|
2003-11-14 03:37:20 +01:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
|
|
|
|
$GLOBALS['egw']->redirect_link('/home/index.php');
|
2003-11-14 03:37:20 +01:00
|
|
|
}
|
2005-07-08 07:00:14 +02:00
|
|
|
|
|
|
|
if(!isset($GLOBALS['egw_info']['nofooter']))
|
2003-11-14 03:37:20 +01:00
|
|
|
{
|
2005-10-07 09:58:19 +02:00
|
|
|
$GLOBALS['egw']->common->egw_footer();
|
2001-08-05 12:13:54 +02:00
|
|
|
}
|
2003-08-28 16:16:30 +02:00
|
|
|
}
|
2001-09-02 09:27:17 +02:00
|
|
|
?>
|