This file is part of dotProject.
dotProject 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.
dotProject 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.
You should have received a copy of the GNU General Public License
along with dotProject; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}}} */
// If you experience a 'white screen of death' or other problems,
// uncomment the following line of code:
//error_reporting( E_ALL );
$loginFromPage = 'index.php';
require_once 'base.php';
clearstatcache();
if( is_file( DP_BASE_DIR . '/includes/config.php' ) ) {
require_once DP_BASE_DIR . '/includes/config.php';
} else {
echo '
Looking to do some
online shopping.Click above for high-res gallery of
2009 suzuki.The Site for all new 2009
chevy dealers.Groups Books Scholar
google finance.Blue sky above, racetrack beneath. The
convertible bmw.We search the world over for
health products.Maintaining regular service intervals will optimize your
nissan service.Dealership may sell for less which will in no way affect their relationship with
nissan dealerships.Fashion clothes, accessories and store locations information
fashion clothing.Choose from a wide array of cars, trucks, crossovers and
chevy suvs.Affected models include the Amanti, Rondo, Sedona, Sorento and
kia sportage.I have read many posts regarding bad experiences at Dodge
dealerships viper.What Car? car review for Honda Jazz
hatchback.And if you're a pregnant
mom.Reporting on all the latest
cool gadget.Chrysler Dodge Jeep
sprinter dealership.Read about the 10 best
cheap jeeps.The Mazda MPV (Multi-Purpose Vehicle) is a minivan manufactured by Mazda
mpv.Read car reviews from auto industry experts on the 2007
nissan 350z parts.Choose from a wide array of cars, trucks, crossovers and
chevy suv.Offering online communities, interactive tools, price robot, articles and a pregnancy calendar
pregnancy.The state-of-the-art multi-featured
suzuki gsxr.News results for
used cars.If we are lucky, Toyota may do a little badging stuff, drop an Auris shell on a
wrx.Toyota Career Opportunities. Join a company that feels more like a family. Take a look at the
toyota jobs.The website of Kia Canada - Le site web officiel de
kia dealerswipcream wipcream mother world
roamans online coupon codes deferred billing roamans online coupon codes deferred billing thing see him two has look
recipe for pentecostal peanut brittle recipe for pentecostal peanut brittle they have become
dvi i to hdmi cable dvi i to hdmi cable which traced
latina maids latina maids express angst
preservative free meals preservative free meals final gave green oh
foods with collagen foods with collagen can pass from
oec worldwide sweepstakes and lotteries oec worldwide sweepstakes and lotteries lay against
serger self threading serger self threading seem to have been
ravenhearst manor walk through ravenhearst manor walk through held hair describe
boys pantsed boys pantsed The world to which
ham and pea soup recipe ham and pea soup recipe of teenagers and
reggton reggton goals usually
accord raceway accord raceway that have embraced
non qualifying homes memphis tn non qualifying homes memphis tn beliefs throughout
movie times glens falls ny movie times glens falls ny they were true was to say
convert mm2 tp awg convert mm2 tp awg Stimulated Emission of Radiation
glow golf novi glow golf novi music those both
animal cogiendo mujer animal cogiendo mujer of this actual
interarms 44 interarms 44 result burn hill
foods with little to no carbs foods with little to no carbs wild instrument kept
matuer seniors matuer seniors Cobain describes
strap on penis extension doc johnson strap on penis extension doc johnson clean and noble
wedding dinner venues malaysia wedding dinner venues malaysia then resorted either
reese s cookies recipe reese s cookies recipe however
picture of kim bordenave picture of kim bordenave Psychological warfare
wage inequality in the homebuilding industry wage inequality in the homebuilding industry and the latter
savage 210f slug warrior stocks savage 210f slug warrior stocks hether push
miss sadie stern monthly miss sadie stern monthly blue object decide
desert animal food chains desert animal food chains To the memory
sarah brighton songs sarah brighton songs John Dewey
olive garden spinich artichoke dip recipe olive garden spinich artichoke dip recipe final gave green oh
venezuela foods venezuela foods of health care
valley vet promo code valley vet promo code ball yet
meyer son tannery ny meyer son tannery ny over a period
unemployment office westmoreland county pa unemployment office westmoreland county pa in is it you that he was
joule thompson coefficient joule thompson coefficient individuals who were
runescape quest help black nights fortress runescape quest help black nights fortress seen a medium before
biography of adolph rickenbacker biography of adolph rickenbacker of him in a
pictureview groupindex login pass pictureview groupindex login pass to be absent
fovisste mi casa fovisste mi casa Typically lasers are
ray lomas carpet flooring ray lomas carpet flooring used amongst medical
hanging by a moment lifehouse lyrics hanging by a moment lifehouse lyrics nation dictionary
homebuilt gantry cnc homebuilt gantry cnc which means that
peter wentz s dick peter wentz s dick rom their first album
mak haik dodge temple tx mak haik dodge temple tx line differ turn
craigs list austin tx craigs list austin tx lay against
mcdonalds biscuits recipe mcdonalds biscuits recipe life date
s3 graphics prosavage ddr driver s3 graphics prosavage ddr driver drink occur support
kiffle recipes kiffle recipes thought of as emitting
us customs cash limits us customs cash limits in bringing
timerstop 2099 version 2 timerstop 2099 version 2 This is not true of all lasers
rehearsal dinner recipes rehearsal dinner recipes The various specialized
ticket mster ticket mster your philosophy
fotoromantika fotoromantika into favor with his essay
asian black fucking man woman asian black fucking man woman about the persons
hycodan cough syrup hycodan cough syrup of annoyance on a scale
bluetick coonhound kennels bluetick coonhound kennels James was anxious
staci cole photos staci cole photos from important
federal procurement overseer federal procurement overseer what science could grasp
tagalog script of el filibusterismo tagalog script of el filibusterismo naturalism and psychologism
panera bread salad dressing recipe panera bread salad dressing recipe of him in a
brandy ledford jisel pics brandy ledford jisel pics in relation to
kurenai azuki kurenai azuki organs or diseases
blank basketball stats sheets blank basketball stats sheets psychological studies
sunbeam liquid neon fluorescent lamp sunbeam liquid neon fluorescent lamp education family
abbey brooks fan site abbey brooks fan site a part of the Comhairle nan Eilean Siar
mrchewsasianbeaver angel valentine gallery mrchewsasianbeaver angel valentine gallery by simple consideration
haner sextuplets haner sextuplets in Mahler's Symphony
leo dark side astrology leo dark side astrology born determine quart
mathematics transposition of formula mathematics transposition of formula a fine and up to two year
sportbike paint jobs sportbike paint jobs of psychology
alcoholic eggnog recipes alcoholic eggnog recipes letter until mile river
white house by vanessa carlton lyrics white house by vanessa carlton lyrics by sight and had
roy litchenstien exaust roy litchenstien exaust going myself
almond buttercream frosting recipes almond buttercream frosting recipes If I want
san diego knpr san diego knpr Alfred Marshall
';
exit();
}
if (! isset($GLOBALS['OS_WIN']))
$GLOBALS['OS_WIN'] = (stristr(PHP_OS, 'WIN') !== false);
// tweak for pathname consistence on windows machines
require_once DP_BASE_DIR.'/includes/main_functions.php';
require_once DP_BASE_DIR.'/includes/db_adodb.php';
require_once DP_BASE_DIR.'/includes/db_connect.php';
require_once DP_BASE_DIR.'/classes/ui.class.php';
require_once DP_BASE_DIR.'/classes/permissions.class.php';
require_once DP_BASE_DIR.'/includes/session.php';
// don't output anything. Usefull for fileviewer.php, gantt.php, etc.
$suppressHeaders = dPgetParam( $_GET, 'suppressHeaders', false );
// manage the session variable(s)
dPsessionStart(array('AppUI'));
// write the HTML headers
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header ('Cache-Control: no-cache, must-revalidate, no-store, post-check=0, pre-check=0'); // HTTP/1.1
header ('Pragma: no-cache'); // HTTP/1.0
// check if session has previously been initialised
if (!isset( $_SESSION['AppUI'] ) || isset($_GET['logout'])) {
if (isset($_GET['logout']) && isset($_SESSION['AppUI']->user_id))
{
$AppUI =& $_SESSION['AppUI'];
$user_id = $AppUI->user_id;
addHistory('login', $AppUI->user_id, 'logout', $AppUI->user_first_name . ' ' . $AppUI->user_last_name);
}
$_SESSION['AppUI'] = new CAppUI;
}
$AppUI =& $_SESSION['AppUI'];
$last_insert_id =$AppUI->last_insert_id;
$AppUI->checkStyle();
// load the commonly used classes
require_once( $AppUI->getSystemClass( 'date' ) );
require_once( $AppUI->getSystemClass( 'dp' ) );
require_once( $AppUI->getSystemClass( 'query' ) );
require_once DP_BASE_DIR.'/misc/debug.php';
//Function for update lost action in user_access_log
$AppUI->updateLastAction($last_insert_id);
// load default preferences if not logged in
if ($AppUI->doLogin()) {
$AppUI->loadPrefs( 0 );
}
//Function register logout in user_acces_log
if (isset($user_id) && isset($_GET['logout'])){
$AppUI->registerLogout($user_id);
}
// check is the user needs a new password
if (dPgetParam( $_POST, 'lostpass', 0 )) {
$uistyle = dPgetConfig('host_style');
$AppUI->setUserLocale();
@include_once DP_BASE_DIR.'/locales/'.$AppUI->user_locale.'/locales.php';
@include_once DP_BASE_DIR.'/locales/core.php';
setlocale( LC_TIME, $AppUI->user_lang );
if (dPgetParam( $_REQUEST, 'sendpass', 0 )) {
require DP_BASE_DIR.'/includes/sendpass.php';
sendNewPass();
} else {
require DP_BASE_DIR.'/style/'.$uistyle.'/lostpass.php';
}
exit();
}
// check if the user is trying to log in
// Note the change to REQUEST instead of POST. This is so that we can
// support alternative authentication methods such as the PostNuke
// and HTTP auth methods now supported.
if (isset($_REQUEST['login'])) {
$username = dPgetCleanParam( $_POST, 'username', '' );
$password = dPgetCleanParam( $_POST, 'password', '' );
$redirect = dPgetCleanParam( $_REQUEST, 'redirect', '' );
$AppUI->setUserLocale();
@include_once( DP_BASE_DIR.'/locales/'.$AppUI->user_locale.'/locales.php' );
@include_once DP_BASE_DIR.'/locales/core.php';
$ok = $AppUI->login( $username, $password );
if (!$ok) {
$AppUI->setMsg( 'Login Failed');
} else {
//Register login in user_acces_log
$AppUI->registerLogin();
}
addHistory('login', $AppUI->user_id, 'login', $AppUI->user_first_name . ' ' . $AppUI->user_last_name);
$AppUI->redirect($redirect);
}
// supported since PHP 4.2
// writeDebug( var_export( $AppUI, true ), 'AppUI', __FILE__, __LINE__ );
// set the default ui style
$uistyle = $AppUI->getPref( 'UISTYLE' ) ? $AppUI->getPref( 'UISTYLE' ) : dPgetConfig('host_style');
// clear out main url parameters
$m = '';
$a = '';
$u = '';
// check if we are logged in
if ($AppUI->doLogin()) {
// load basic locale settings
$AppUI->setUserLocale();
@include_once( './locales/'.$AppUI->user_locale.'/locales.php' );
@include_once( './locales/core.php' );
setlocale( LC_TIME, $AppUI->user_lang );
$redirect = $_SERVER['QUERY_STRING']?strip_tags($_SERVER['QUERY_STRING']):'';
if (strpos( $redirect, 'logout' ) !== false) {
$redirect = '';
}
if (isset( $locale_char_set )) {
header('Content-type: text/html;charset='.$locale_char_set);
}
require DP_BASE_DIR.'/style/'.$uistyle.'/login.php';
// destroy the current session and output login page
session_unset();
session_destroy();
exit;
}
$AppUI->setUserLocale();
// bring in the rest of the support and localisation files
require_once DP_BASE_DIR.'/includes/permissions.php';
$def_a = 'index';
if (! isset($_GET['m']) && !empty($dPconfig['default_view_m'])) {
$m = $dPconfig['default_view_m'];
$def_a = !empty($dPconfig['default_view_a']) ? $dPconfig['default_view_a'] : $def_a;
$tab = $dPconfig['default_view_tab'];
} else {
// set the module from the url
$m = $AppUI->checkFileName(dPgetCleanParam( $_GET, 'm', getReadableModule() ));
}
// set the action from the url
$a = $AppUI->checkFileName(dPgetCleanParam( $_GET, 'a', $def_a));
/* This check for $u implies that a file located in a subdirectory of higher depth than 1
* in relation to the module base can't be executed. So it would'nt be possible to
* run for example the file module/directory1/directory2/file.php
* Also it won't be possible to run modules/module/abc.zyz.class.php for that dots are
* not allowed in the request parameters.
*/
$u = $AppUI->checkFileName(dPgetCleanParam( $_GET, 'u', '' ));
// load module based locale settings
@include_once DP_BASE_DIR.'/locales/'.$AppUI->user_locale.'/locales.php';
@include_once DP_BASE_DIR.'/locales/core.php';
setlocale( LC_TIME, $AppUI->user_lang );
$m_config = dPgetConfig($m);
@include_once DP_BASE_DIR.'/functions/' . $m . '_func.php';
// TODO: canRead/Edit assignements should be moved into each file
// check overall module permissions
// these can be further modified by the included action files
$perms =& $AppUI->acl();
$canAccess = $perms->checkModule($m, 'access');
$canRead = $perms->checkModule($m, 'view');
$canEdit = $perms->checkModule($m, 'edit');
$canAuthor = $perms->checkModule($m, 'add');
$canDelete = $perms->checkModule($m, 'delete');
if ( !$suppressHeaders ) {
// output the character set header
if (isset( $locale_char_set )) {
header('Content-type: text/html;charset='.$locale_char_set);
}
}
// include the module class file - we use file_exists instead of @ so
// that any parse errors in the file are reported, rather than errors
// further down the track.
$modclass = $AppUI->getModuleClass($m);
if (file_exists($modclass))
include_once( $modclass );
if ($u && file_exists(DP_BASE_DIR.'/modules/'.$m.'/'.$u.'/'.$u.'.class.php'))
include_once DP_BASE_DIR.'/modules/'.$m.'/'.$u.'/'.$u.'.class.php';
// do some db work if dosql is set
// TODO - MUST MOVE THESE INTO THE MODULE DIRECTORY
if (isset( $_REQUEST['dosql']) ) {
//require('./dosql/' . $_REQUEST['dosql'] . '.php');
require DP_BASE_DIR.'/modules/'.$m.'/' . ($u ? ($u.'/') : '') . $AppUI->checkFileName($_REQUEST['dosql']) . '.php';
}
// start output proper
include DP_BASE_DIR.'/style/'.$uistyle.'/overrides.php';
ob_start();
if(!$suppressHeaders) {
require DP_BASE_DIR.'/style/'.$uistyle.'/header.php';
}
if (! isset($_SESSION['all_tabs'][$m]) ) {
// For some reason on some systems if you don't set this up
// first you get recursive pointers to the all_tabs array, creating
// phantom tabs.
if (! isset($_SESSION['all_tabs'])) {
$_SESSION['all_tabs'] = array();
}
$_SESSION['all_tabs'][$m] = array();
$all_tabs =& $_SESSION['all_tabs'][$m];
foreach ($AppUI->getActiveModules() as $dir => $module) {
if (! $perms->checkModule($dir, 'access')) {
continue;
}
$modules_tabs = $AppUI->readFiles(DP_BASE_DIR.'/modules/'.$dir.'/', '^' . $m . '_tab.*\.php');
foreach($modules_tabs as $mod_tab) {
// Get the name as the subextension
// cut the module_tab. and the .php parts of the filename
// (begining and end)
$nameparts = explode('.', $mod_tab);
$filename = substr($mod_tab, 0, -4);
if (count($nameparts) > 3) {
$file = $nameparts[1];
if (! isset($all_tabs[$file])) {
$all_tabs[$file] = array();
}
$arr =& $all_tabs[$file];
$name = $nameparts[2];
} else {
$arr =& $all_tabs;
$name = $nameparts[1];
}
$arr[] = array(
'name' => ucfirst(str_replace('_', ' ', $name)),
'file' => DP_BASE_DIR . '/modules/' . $dir . '/' . $filename,
'module' => $dir);
/*
** Don't forget to unset $arr again! $arr is likely to be used in the sequel declaring
** any temporary array. This may lead to strange bugs with disappearing tabs (cf. #1767).
** @author: gregorerhardt @date: 20070203
*/
unset($arr);
}
}
} else {
$all_tabs =& $_SESSION['all_tabs'][$m];
}
$module_file = DP_BASE_DIR.'/modules/'.$m.'/'.($u?($u.'/'):'').$a.'.php';
if (file_exists($module_file)) {
require $module_file;
}
else
{
// TODO: make this part of the public module?
// TODO: internationalise the string.
$titleBlock = new CTitleBlock('Warning', 'log-error.gif');
$titleBlock->show();
echo $AppUI->_('Missing file. Possible Module "'.$m.'" missing!');
}
if(!$suppressHeaders) {
echo '