. //
// //
// See ../LICENSE.TXT file for more information. //
// -------------------------------------------------------------------------- //
// LICENSING ADDENDUM: //
// Programs in the SPP (Special Programs) subfolder are coded extensions of //
// the open source software fx-project. These programs are offered for sale //
// by the manufacturer FeRox Management Consulting GmbH & Co. KG and require //
// a valid key for execution. It is forbidden to resell these programs //
// and/or keys or to pass them on free of charge or use them without the //
// express written permission of FeRox Management Consulting GmbH & Co. KG. //
////////////////////////////////////////////////////////////////////////////////
/**
* @file
* Main program to create the html startup layout from a template.
* The html javascript then calls via AJAX the main control program.
*
* @author FeRox Management Consulting GmbH & Co. KG, Adolf-Langer-Weg 11a, D-94036 Passau (Germany)
* @version 21.2
*/
$GLOBALS['__loaded_'.basename(__FILE__)]=true;
////////////////////////////////////////////////////////////////////////////////
// Special debug mode
////////////////////////////////////////////////////////////////////////////////
$GLOBALS['__debug']=array('__DBG'=>0);
// Debug this file? (Uncomment the next line)
//$GLOBALS['__debug'][__FILE__]=3;
// Display the debug selector (false or true)
$GLOBALS['__debug']['debug_selector']=true;
// Send these additional headers
$__headers=array(
'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', // current date, because it is created differently ever time dynamically
'Cache-Control: no-cache, must-revalidate', // HTTP/1.1
'Pragma: no-cache' // HTTP/1.0
);
// Search for and include "basics.inc" to set all definitions, variables and necessary dynamic paths
$__pnm='basics.inc';
if(!isset($GLOBALS['__loaded_'.$__pnm]))
{
$__prg=$__pnm;
$__pfc=0;
while(($__pfc < 10) && !file_exists($__prg))
{
$__pfc++;
$__prg='../'.$__prg;
}
if(file_exists($__prg))
{
require($__prg);
}
else
die('
fx-project - ERROR: Necessary file "'.$__pnm.'" not found!
');
}
// Load HTML template
$__htf='index_template.html';
$html=fxLoad($__htf);
if(!$html || !strlen($html))
die('fx-project - ERROR: Necessary HTML template "'.$__htf.'" not found!
');
ob_start();
// Get start texts in current language
$lang=fxGetLanguage(0, false);
$stla=fxGetLanguageTexts('start',true,false,$lang,false);
fxDebug($stla,'$stla: fxGetLanguageTexts(\'start\')',2);
// FXP javascript file (main javascript function collection)
$jscfxp=$GLOBALS['jscpath'].'fxp.js';
// EXT javascript file (extended javascript function collection)
$jscext='';
$jscextfile=$GLOBALS['jscpath'].'ext.js';
if(file_exists($jscextfile))
$jscext=' ';
// Replace certain placeholders in the HTML template
$_tra=array(
'TITLE' => 'fx-project '.$v_type.' V'.$v_fxp,
'FXPTYPE' => $v_type,
'FXPTCOL' => $v_tcol,
'VERSION' => $v_fxp,
'CHARSET' => FXP_CHARSET,
'DATE' => substr($GLOBALS['datetime'],0,4).'-'.substr($GLOBALS['datetime'],4,2).'-'.substr($GLOBALS['datetime'],6,2).'T00:00:00+00:00',
'LANGUAGE' => $lang,
'LANGUAGE2' => substr('0'.$lang,-2),
'CSS_DEFAULT' => $GLOBALS['cssfile'],
'FAVICON' => fxGetFavicon(),
'SEO_DESCRIPTION' => 'FeRox Management Consulting GmbH & Co. KG: Open Source Project Management Software fx-project V'.$v_fxp,
'SEO_URL' => $GLOBALS['__server_array']['urls'],
'SEO_IMAGE' => $GLOBALS['__server_array']['url'].'GFX/fxp_image.png',
'FXPLOGO' => fxGetLogo('big'),
'FXPLOGOBAR' => fxGetLogo('small'),
'SCDISPLAY' => ((isset($GLOBALS['spppath']) && strlen($GLOBALS['spppath']) && file_exists($GLOBALS['spppath'].'htm2png.exe'))?'block':'none'),
'LTS' => $GLOBALS['lts'],
'IDATA' => $GLOBALS['locseskey'].'|'.$GLOBALS['lts'].'|'.$lang.'|'.$GLOBALS['fxpglobals']['design'].'|'.$GLOBALS['fxpglobals']['zoom'],
'SESS_UPN' => ini_get('session.upload_progress.name'),
'JSC_PREFIX' => fxf_jsFunctionPrefix(),
'JSC_FXP' => $jscfxp.'?'.filemtime($jscfxp),
'JSC_EXT' => $jscext
);
// ...as well as all subpaths
$_tra['MAIN_PATH']=$GLOBALS['mainpath'];
if(fxIsArray($GLOBALS['_subpath_array']))
{
foreach($GLOBALS['_subpath_array'] as $spname => $sppath)
$_tra[$spname.'_PATH']=$sppath;
}
// ...as well as start texts in current language
if(fxIsArray($stla))
{
foreach($stla as $variable => $text)
{
$fc=substr($text,0,1);
if(($fc == '^') || ($fc == '~'))
$text=substr($text,1);
$_tra[$variable]=$text;
}
}
// ...as well as all javascript separators
foreach($GLOBALS['_divstr'] as $jdsc => $jdss)
$_tra['divstr_'.$jdsc]=$jdss;
// ...as well as the current filter status (0=off + 1=on)
$_tra['fltstat']=(int)$GLOBALS['fxpglobals']['setfilter'];
// ...as well as the debug selector?
if($GLOBALS['__debug']['debug_selector'])
{
$_tra['debugselector'] = '';
$_tra['debugselector'] .= '
';
$_tra['debugselector'] .= '
'.$GLOBALS['__debug']['__DBG'].'
';
$_tra['debugselector'] .= '
';
}
fxDebug($_tra,'$_tra',2);
foreach($_tra as $placeholder => $text)
$html=str_ireplace('', $text, $html);
// Work area output
$output=ob_get_contents();
ob_end_clean();
$html=str_ireplace('', $output, $html);
// Display adjusted HTML
echo($html);
?>