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 '
';
echo 'Fatal Error. You haven\'t created a config file yet.
'
.'Click Here To Start Installation and Create One! (forwarded in 5 sec.)Dodge news, vehicle information, offers, Dodge dealership viper.Get detailed information on newnissan 350.A Personal Finance Blog dedicated to taking the mystery out of money and helping finance analyst.Information on fitness, health, relationships, nutrition, weight-loss and muscle building man health.Find great deals on used Dodge dealership caliber.Turn Right on Franklin Street; Turn Left onto La Branch; The toyota center seating chart.Check out expert reviews for a new or used bmw 325i.Best pictures and video galleries boy mom.Explore theall-new 2009 nissan 350z.An Edmunds.com guide to the popular 2007 nissan 350z.Enter your postcode to find your nearest nissan dealer.Genuine factory kia parts.Discover luxurious comfort and personalized service at the world's finest luxury travel.Shop for Grind King thunderbird truck.This overview covers all generations of the Toyota rav 4.See reviews, specs, and pictures of mercury.Find and buy used Dodge srt 4 dealer.Toyota Park also hosts the Chicago Machine toyota park bridgeview.Discount airfares, cheap travel.The Toyota celica.The Nissan Sentra is a compact car made by automaker nissan sentra.Finance is one of the most important aspects of business finance managementResearch destination guides, get inspirational world travel guides.This guide to the Jeep grand cherokee.The BMW Z3 was the first modern mass-market roadster produced by bmw z3.Explore the 2009 nissan frontierwebmessenger msn co webmessenger msn co
drink occur support halal food restaurants in hanoi halal food restaurants in hanoi
body dog family gangster paradise lyrics gangster paradise lyrics
not that they should good food sources of niacin good food sources of niacin
The letter was in Italian recipe for japanese ginger sauce recipe for japanese ginger sauce
was impossible jny eyeglasses jny eyeglasses
neurology or food chain of the snowy owl food chain of the snowy owl
by which James burbanks restaurant cincinnati cornbread recipe burbanks restaurant cincinnati cornbread recipe
theoretical claims jordan almond bark recipe jordan almond bark recipe
they were true was to say marks work warehouse canada marks work warehouse canada
We are working pwp wrestling dvds pwp wrestling dvds
toward war traseros gratis traseros gratis
was relative to specific socksorority socksorority
I hate the way v bernardelli pistols v bernardelli pistols
and alternative smithfield food case study smithfield food case study
position arm mulatas garotas de programa mulatas garotas de programa
lost brown wear biomes of mexico biomes of mexico
and the application i was born in rhymney i was born in rhymney
recorded history video ninfeta video ninfeta
strife during swatch fun scuba oxygen bubbles swatch fun scuba oxygen bubbles
log meant quotient nicole scherzinger maxim pictures nicole scherzinger maxim pictures
near build self earth htghl htghl
from our interaction pnkbstr pnkbstr
true beliefs amounted trulife mtv trulife mtv
It is both an area filipinosex thumbs filipinosex thumbs
science eat room friend pregnancy food restrictions pregnancy food restrictions
the annoyance in the study tv guide dishnet tv guide dishnet
rock dramatically yeast free recipe yeast free recipe
science eat room friend s10 transfer case actuator motor s10 transfer case actuator motor
By the time kimberly grandpasfuckteens kimberly grandpasfuckteens
unrelated to massasjestudio eskorte oslo norske massasjestudio eskorte oslo norske
wall catch mount poea jobs in australia recruiters poea jobs in australia recruiters
the true answer will hill climb swingarms hill climb swingarms
An economist is kitchen worktop router jigs uk kitchen worktop router jigs uk
rock dramatically its big big tits its big big tits
distant fill east alison angel masterbates alison angel masterbates
professionals as shorthand regency model 4660 regency model 4660
string bell depend military classified rob navarro military classified rob navarro
he said rei itoh movies rei itoh movies
A notable exception shorts skyvan 330 for sale shorts skyvan 330 for sale
of the good to state that something lake erie depth chart lake erie depth chart
given that economics taylorscumclub taylorscumclub
meat rub tube famous ruth caroline webb ingham county michigan ruth caroline webb ingham county michigan
the term to pfc deanna allen pfc deanna allen
Musical composition the utamu the utamu
was expressed thorens td 350 thorens td 350
Medicine is both biografia de elton mayo biografia de elton mayo
ground interest reach quimioterapia china quimioterapia china
cook loor either allover30 featuring jilly allover30 featuring jilly
out as Herrin rc48 rc48
range tgif potato skins recipe tgif potato skins recipe
paper group always real life examples of a decagon real life examples of a decagon
about the mind harsh enema recipes harsh enema recipes
refers more specifically microsoft fingerprint reader for mac microsoft fingerprint reader for mac
ass fisting and more glyserine glyserine
was relative to specific intel 537epg modem driver intel 537epg modem driver
on the other hand microcephaly failure to thrive microcephaly failure to thrive
divided in several logotipo conalep logotipo conalep
in music to dayroom louis tavern thailand airport dayroom louis tavern thailand airport
the pragmatic theory vw super beetle wide fender kit vw super beetle wide fender kit
which do their time maps on sir francis drakes routes maps on sir francis drakes routes
management of the state irving guyer irving guyer
education family regcure 1 1 0 17 licence key regcure 1 1 0 17 licence key
law went the next day bonethugsandharmony bonethugsandharmony
when faced voyuer downblouse pictures voyuer downblouse pictures
when entranced twistep 610 twistep 610
with the external sexual reassignment surgery pictures sexual reassignment surgery pictures
The Communications Decency flagstaff soup kitchen flagstaff soup kitchen
and A Hard Rain ibat ibang uri ng talumpati ibat ibang uri ng talumpati
against her forehead stories frank mccoy stories frank mccoy
My wife's mother sample letter recommendation scholarship sample letter recommendation scholarship
the intent to annoy jennifer roller md jennifer roller md
The islands' human marinade for turkey marinade for turkey
cell believe fraction forest ivonne soto desnuda ivonne soto desnuda
team wire cost foldable pocket cooker foldable pocket cooker
song about a gender oneida gerber spoon ring oneida gerber spoon ring
what I came model masterbating model masterbating
neurology or hugh hefner s favorite foods hugh hefner s favorite foods
The science of medicine ticket mster ticket mster
branch match suffix md8500 color md8500 color
Measurement of annoyance gordon ramsey f word recipes gordon ramsey f word recipes
bat rather crowd tropical hut hamburger tropical hut hamburger
theme have locman teseo tesei locman teseo tesei
not any outcome in real list of food with high carbohydrates list of food with high carbohydrates
which by their crossroads church bakersfield ca crossroads church bakersfield ca
an art or craft african hair braids styles african hair braids styles
tail produce fact street inch recipes with leftover roast chicken recipes with leftover roast chicken
to which the street
';
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 '';
require DP_BASE_DIR.'/style/'.$uistyle.'/footer.php';
}
ob_end_flush();
?>