/gulliver/bin/tasks/templates/sysGeneric.php.tpl
Smarty Template | 388 lines | 336 code | 52 blank | 0 comment | 62 complexity | cc8a636920692a8d076d7b127259c910 MD5 | raw file
Possible License(s): BSD-3-Clause, BSD-2-Clause, Apache-2.0, LGPL-2.1, GPL-3.0
- <?php
- /** autogenerated sysGeneric for project {projectName} */
- /*** enable display_error On to caught even fatal errors ***/
- ini_set('display_errors','On');
- ini_set('error_reporting', E_ALL );
- ini_set('memory_limit', '80M');
- $path = Array();
- $sf = $_SERVER['SCRIPT_FILENAME'];
- //sysGeneric, this file is used to redirect to workspace, the url should by encrypted or not
- //***************** In the PATH_SEP we know if the the path separator symbol will be '\\' or '/' **************************
- if ( PHP_OS == 'WINNT' && !strpos ( $_SERVER['DOCUMENT_ROOT'], '/' ) )
- define('PATH_SEP','\\');
- else
- define('PATH_SEP', '/');
- //***************** Defining the Home Directory *********************************
- $docuroot = explode ( PATH_SEP , $_SERVER['DOCUMENT_ROOT'] );
- // array_pop($docuroot);
- array_pop($docuroot);
- $pathhome = implode( PATH_SEP, $docuroot ) . PATH_SEP;
- //try to find automatically the trunk directory where are placed the RBAC and Gulliver directories
- //in a normal installation you don't need to change it.
- array_pop($docuroot);
- $pathTrunk = implode( PATH_SEP, $docuroot ) . PATH_SEP ;
- array_pop($docuroot);
- $pathOutTrunk = implode( PATH_SEP, $docuroot ) . PATH_SEP ;
- // to do: check previous algorith for Windows $pathTrunk = "c:/home/";
- define('PATH_HOME', $pathhome );
- define('PATH_TRUNK', $pathTrunk );
- define('PATH_OUTTRUNK', $pathOutTrunk );
- //***************** In this file we cant to get the PM paths , RBAC Paths and Gulliver Paths ******************************
- require_once ( $pathhome . PATH_SEP . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'paths.php' );
- //***************** In this file we cant to get the PM definitions ******************************
- require_once ( $pathhome . PATH_SEP . 'engine' . PATH_SEP . 'config' . PATH_SEP . 'defines.php' );
- //******************* Error handler and log error *******************
- //to do: make different environments. sys
- //G::setErrorHandler ( );
- //G::setFatalErrorHandler ( );
- /*** enable ERROR_SHOW_SOURCE_CODE to display the source code for any WARNING OR NOTICE ***/
- define ('ERROR_SHOW_SOURCE_CODE', true);
- /*** enable ERROR_LOG_NOTICE_ERROR to log Notices messages in default apache log ***/
- // define ( 'ERROR_LOG_NOTICE_ERROR', true );
- // ************* creat headPublisher singleton *****************
- G::LoadSystem('headPublisher');
- $oHeadPublisher =& headPublisher::getSingleton();
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/maborak.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/core/common.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/core/webResource.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'dveditor/core/dveditor.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'common/tree/tree.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'json/core/json.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'form/core/form.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'form/core/pagedTable.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'grid/core/grid.js' );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.panel.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.validator.js', true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.app.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.rpc.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.fx.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.drag.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.drop.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.dom.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.abbr.js' , true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'maborak/core/module.dashboard.js', true );
- $oHeadPublisher->addMaborakFile( PATH_GULLIVER_HOME . 'js' . PATH_SEP . 'widgets/jscalendar/calendar.js' );
- //************ defining Virtual URLs ****************/
- $virtualURITable = array();
- $virtualURITable['/plugin/(*)'] = 'plugin';
- $virtualURITable['/(sys*)/(*.js)'] = 'jsMethod';
- $virtualURITable['/js/(*)'] = PATH_GULLIVER_HOME . 'js/';
- $virtualURITable['/jscore/(*)'] = PATH_CORE . 'js/';
- //$virtualURITable['/fckeditor/(*)'] = PATH_THIRDPARTY . 'fckeditor/';
- $virtualURITable['/htmlarea/(*)'] = PATH_THIRDPARTY . 'htmlarea/';
- $virtualURITable['/sys[a-zA-Z][a-zA-Z0-9]{0,}()/'] = 'sysNamed';
- $virtualURITable['/(sys*)'] = FALSE;
- $virtualURITable['/errors/(*)'] = PATH_GULLIVER_HOME . 'methods/errors/';
- $virtualURITable['/controls/(*)'] = PATH_GULLIVER_HOME . 'methods/controls/';
- $virtualURITable['/html2ps_pdf/(*)'] = PATH_THIRDPARTY . 'html2ps_pdf/';
- $virtualURITable['/Krumo/(*)'] = PATH_THIRDPARTY . 'krumo/';
- $virtualURITable['/codepress/(*)'] = PATH_THIRDPARTY . 'codepress/';
- if(defined('PATH_C'))
- {
- $virtualURITable['/jsform/(*.js)'] = PATH_C . 'xmlform/';
- }
- /*To sysUnnamed*/
- $virtualURITable['/[a-zA-Z][a-zA-Z0-9]{0,}()'] = 'sysUnnamed';
- $virtualURITable['/(*)'] = PATH_HTML;
- //************** verify if we need to redirect or stream the file **************
- if ( G::virtualURI($_SERVER['REQUEST_URI'], $virtualURITable , $realPath )) {
- // review if the file requested belongs to public_html plugin
- if ( substr ( $realPath, 0,6) == 'plugin' ) {
- $paths = explode ( PATH_SEP, $realPath );
- $paths[0] = substr ( $paths[0],6);
- if ( count($paths) == 2 ) {
- $pathsQuery = explode('?', $paths[1]);
- $pluginFilename = PATH_PLUGINS . $paths[0] . PATH_SEP . 'public_html'. PATH_SEP . $pathsQuery[0];
- if ( file_exists ( $pluginFilename ) ) {
- G::streamFile ( $pluginFilename );
- }
- }
- die;
- }
- switch ( $realPath ) {
- case 'sysUnnamed' :
- require_once('sysUnnamed.php'); die;
- break;
- case 'sysNamed' :
- header('location : ' . $_SERVER['REQUEST_URI'] . 'en/classic/login/login' );
- die;
- break;
- case 'jsMethod' :
- G::parseURI ( getenv( "REQUEST_URI" ) );
- $filename = PATH_METHODS . SYS_COLLECTION . '/' . SYS_TARGET . '.js';
- G::streamFile ( $filename );
- die;
- break;
- default :
- $realPath = explode('?', $realPath);
- G::streamFile ( $realPath[0] );
- die;
- }
- }
- //************** verify if the URI is encrypted or not **************
- G::parseURI ( getenv( "REQUEST_URI" ) );
- define( 'SYS_URI' , '/sys' . SYS_TEMP . '/' . SYS_LANG . '/' . SYS_SKIN . '/' );
- require_once ( PATH_THIRDPARTY . 'krumo' . PATH_SEP . 'class.krumo.php' );
- //***************** Call Gulliver Classes **************************
- G::LoadThirdParty('pear/json','class.json');
- G::LoadThirdParty('smarty/libs','Smarty.class');
- G::LoadSystem('error');
- G::LoadSystem('dbconnection');
- G::LoadSystem('dbsession');
- G::LoadSystem('dbrecordset');
- G::LoadSystem('dbtable');
- G::LoadSystem('rbac' );
- G::LoadSystem('publisher');
- G::LoadSystem('templatePower');
- G::LoadSystem('headPublisher');
- G::LoadSystem('xmlDocument');
- G::LoadSystem('xmlform');
- G::LoadSystem('xmlformExtension');
- G::LoadSystem('form');
- G::LoadSystem('menu');
- G::LoadSystem("xmlMenu");
- G::LoadSystem('dvEditor');
- G::LoadSystem('table');
- G::LoadSystem('pagedTable');
- G::LoadSystem('tree');
- $oHeadPublisher =& headPublisher::getSingleton();
-
- //***************** database and workspace definition ************************
- //if SYS_TEMP exists, the URL has a workspace, now we need to verify if exists their db.php file
- if ( defined('SYS_TEMP') && SYS_TEMP != '')
- {
- //this is the default, the workspace db.php file is in /shared/{projectName}/sites/SYS_SYS
- if ( file_exists( PATH_DB . SYS_TEMP . '/db.php' ) ) {
- require_once( PATH_DB . SYS_TEMP . '/db.php' );
- define ( 'SYS_SYS' , SYS_TEMP );
- }
- else {
- $sysParts = explode('-',SYS_TEMP);
- //try to find the definition in the module-file
- if ( count($sysParts) == 3) {
- $fileName = 'dbmodule_'.$sysParts[1].'.php';
- $DB_INDEX = 0;
- $DB_MODULE = array();
- if ( !file_exists( PATH_DB . $fileName)) {
- header ("location: errors/error701.php");
- die;
- }
- require_once ( PATH_DB . $fileName );
- $moduleName = $DB_MODULE[$DB_INDEX]['name'];
- $modulePath = $DB_MODULE[$DB_INDEX]['path'];
- $moduleType = $DB_MODULE[$DB_INDEX]['type'];
- if ( !file_exists( $modulePath )) {
- header ("location: /errors/error704.php"); die;
- }
- if ( $moduleType == 'single-file' ) {
- $workspaceDB = $modulePath. 'db_'. $sysParts[2] . '.php';
- }
- else {
- $workspaceDB = $modulePath. $sysParts[2] . '/db.php';
- }
- if ( !file_exists( $workspaceDB )) {
- header ("location: /errors/error704.php"); die;
- }
- require_once( $workspaceDB ) ;
- define ( 'SYS_SYS', $sysParts[2]);
- }
- else {
- $aMessage['MESSAGE'] = G::LoadTranslation ('ID_NOT_WORKSPACE');
- $G_PUBLISH = new Publisher;
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
- G::RenderPage( 'publish' );
- die;
- }
- }
- }
- else { //when we are in global pages, outside any valid workspace
- if ((SYS_TARGET==='sysLoginVerify') || (SYS_TARGET==='sysLogin') || (SYS_TARGET==='newSite')) {
- $phpFile = G::ExpandPath('methods') . SYS_COLLECTION . "/" . SYS_TARGET.'.php';
- require_once($phpFile);
- die();
- }
- else {
- require_once( PATH_METHODS . "login/sysLogin.php" ) ;
- die();
- }
- }
- //***************** PM Paths DATA **************************
- define( 'PATH_DATA_SITE', PATH_DATA . 'sites/' . SYS_SYS . '/');
- define( 'PATH_DOCUMENT', PATH_DATA_SITE . 'files/' );
- define( 'PATH_DYNAFORM', PATH_DATA_SITE . 'xmlForms/' );
- define( 'PATH_IMAGES_ENVIRONMENT_FILES', PATH_DATA_SITE.'usersFiles'.PATH_SEP);
- define( 'PATH_IMAGES_ENVIRONMENT_USERS', PATH_DATA_SITE.'usersPhotographies'.PATH_SEP);
- //***************** Plugins **************************
- G::LoadClass('plugin');
- // //here we are loading all plugins registered
- // //the singleton has a list of enabled plugins
- // $sSerializedFile = PATH_DATA_SITE . 'plugin.singleton';
- // $oPluginRegistry =& PMPluginRegistry::getSingleton();
- // if ( file_exists ($sSerializedFile) )
- // $oPluginRegistry->unSerializeInstance( file_get_contents ( $sSerializedFile ) );
- //
- // $oPluginRegistry->setupPlugins(); //get and setup enabled plugins
- //***************** create $G_ENVIRONMENTS dependent of SYS_SYS **************************
- define ( 'G_ENVIRONMENT', G_DEV_ENV );
- $G_ENVIRONMENTS = array (
- G_PRO_ENV => array (
- 'dbfile' => PATH_DB . 'production' . PATH_SEP . 'db.php' ,
- 'cache' => 1,
- 'debug' => 0,
- ) ,
- G_DEV_ENV => array (
- 'dbfile' => PATH_DB . SYS_SYS . PATH_SEP . 'db.php',
- 'datasource' => 'workflow',
- 'cache' => 0,
- 'debug' => 0,
- ) ,
- G_TEST_ENV => array (
- 'dbfile' => PATH_DB . 'test' . PATH_SEP . 'db.php' ,
- 'cache' => 0,
- 'debug' => 0,
- )
- );
- // setup propel definitions and logging
- //try {
- require_once ( "propel/Propel.php" );
- require_once ( "creole/Creole.php" );
- if ( $G_ENVIRONMENTS[ G_ENVIRONMENT ]['debug'] ) {
- require_once ( "Log.php" );
- // register debug connection decorator driver
- Creole::registerDriver('*', 'creole.contrib.DebugConnection');
- // itialize Propel with converted config file
- Propel::init( PATH_CORE . "config/databases.php" );
- //log file for workflow database
- $logFile = PATH_DATA . 'log' . PATH_SEP . 'workflow.log';
- $logger = Log::singleton('file', $logFile, 'wf ' . SYS_SYS, null, PEAR_LOG_INFO);
- Propel::setLogger($logger);
- $con = Propel::getConnection('workflow');
- if ($con instanceof DebugConnection) $con->setLogger($logger);
- //log file for rbac database
- $logFile = PATH_DATA . 'log' . PATH_SEP . 'rbac.log';
- $logger = Log::singleton('file', $logFile, 'rbac ' . SYS_SYS, null, PEAR_LOG_INFO);
- Propel::setLogger($logger);
- $con = Propel::getConnection('rbac');
- if ($con instanceof DebugConnection) $con->setLogger($logger);
- }
- else
- Propel::init( PATH_CORE . "config/databases.php" );
- Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection');
- //***************** Session Initializations **************************/
- ini_alter( 'session.auto_start', '1' );
- ini_alter( 'register_globals', 'Off' );
- session_start();
- ob_start();
- //********* Log Page Handler *************
- // logPage ( $URL , SYS_CURRENT_PARMS);
- //*********jump to php file in methods directory *************
- // if ( $oPluginRegistry->isRegisteredFolder( SYS_COLLECTION ) )
- // $phpFile = PATH_PLUGINS . SYS_COLLECTION . PATH_SEP . SYS_TARGET.'.php';
- // else
- $phpFile = G::ExpandPath('methods') . SYS_COLLECTION . PATH_SEP . SYS_TARGET.'.php';
- //the index.php file, this new feature will allow automatically redirects to valid php file inside the methods directory
- if ( SYS_TARGET == '' ) {
- $phpFile = str_replace ( '.php', 'index.php', $phpFile );
- $phpFile = include ( $phpFile );
- }
- if ( substr(SYS_COLLECTION , 0,8) === 'gulliver' ) {
- $phpFile = PATH_GULLIVER_HOME . 'methods/' . substr( SYS_COLLECTION , 8) . SYS_TARGET.'.php';
- }
- else {
- if ( ! file_exists( $phpFile ) ) {
- $_SESSION['phpFileNotFound'] = $phpFile;
- header ("location: /errors/error404.php");
- die;
- }
- }
- // ***************** enable rbac **************************
- $RBAC =& RBAC::getSingleton();
- $RBAC->sSystem = '{rbacProjectName}';
- // ***************** Headers **************************
- if ( ! defined('EXECUTE_BY_CRON') ) {
- header("Expires: Tue, 19 Jan 1999 04:30:00 GMT");
- header("Last-Modified: Tue, 19 Jan 1999 04:30:00 GMT");
- header('Cache-Control: no-cache, must-revalidate, post-check=0,pre-check=0 ');
- header('P3P: CP="CAO PSA OUR"');
- if(isset( $_SESSION['USER_LOGGED'] )) {
- $RBAC->initRBAC();
- $RBAC->loadUserRolePermission( $RBAC->sSystem, $_SESSION['USER_LOGGED'] );
- }
- else {
- //This sentence is used when you lost the Session
- if ( SYS_TARGET != 'authentication' and SYS_TARGET != 'login'
- and SYS_TARGET != 'dbInfo' and SYS_TARGET != 'sysLoginVerify'
- and SYS_TARGET != 'updateTranslation' and SYS_COLLECTION != 'services' ){
- header ("location: ".SYS_URI."login/login.php");
- die();
- }
- }
- require_once( $phpFile );
- if ( defined('SKIP_HEADERS') ) {
- header("Expires: " . gmdate("D, d M Y H:i:s", mktime( 0,0,0,date('m'),date('d'),date('Y') + 1) ) . " GMT");
- header('Cache-Control: public');
- header('Pragma: ');
- }
- ob_end_flush();
- }
- /*
- }
- catch ( Exception $e ) {
- $aMessage['MESSAGE'] = $e->getMessage();
- $G_PUBLISH = new Publisher;
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
- G::RenderPage( 'publish' );
- die;
- }
- */