コード例 #1
0
ファイル: Ampoliros.php プロジェクト: alexpagnoni/ampoliros
 public function startSite($siteId, $userId = '')
 {
     $result = false;
     $this->setMode(Ampoliros::MODE_SITE);
     global $env;
     if (isset($GLOBALS['gEnv']['runtime']['site']['init']) and $GLOBALS['gEnv']['runtime']['site']['init'] == true) {
         return;
     }
     // Site id
     //
     $GLOBALS['gEnv']['site']['id'] = $siteId;
     $env['currentsite'] =& $GLOBALS['gEnv']['site']['id'];
     $env['currentsiteid'] =& $env['currentsite'];
     // Site data
     //
     $sitesquery = $GLOBALS['gEnv']['root']['db']->Execute('SELECT * FROM sites WHERE siteid=' . $GLOBALS['gEnv']['root']['db']->Format_Text($siteId));
     if ($sitesquery->NumRows()) {
         $GLOBALS['gEnv']['site']['data'] = $sitesquery->Fields();
         $env['sitedata'] =& $GLOBALS['gEnv']['site']['data'];
         $sitesquery->Free();
         // Check if site is active
         //
         if ($this->getInterface() != Ampoliros::INTERFACE_WEB and $GLOBALS['gEnv']['site']['data']['siteactive'] == $GLOBALS['gEnv']['root']['db']->fmtfalse) {
             $this->abort('Site disabled');
         }
         // Site log
         //
         define('SITE_LOG', SITESTUFF_PATH . $GLOBALS['gEnv']['site']['data']['siteid'] . '/log/site.log');
         $GLOBALS['gEnv']['site']['log'] = SITE_LOG;
         // Current site serial number
         //
         $GLOBALS['gEnv']['site']['serial'] = $GLOBALS['gEnv']['site']['data']['id'];
         $env['currentsiteserial'] = $GLOBALS['gEnv']['site']['serial'];
         // Site database
         //
         $dbargs['dbtype'] = $GLOBALS['gEnv']['site']['data']['sitedbtype'];
         $dbargs['dbname'] = $GLOBALS['gEnv']['site']['data']['sitedbname'];
         $dbargs['dbhost'] = $GLOBALS['gEnv']['site']['data']['sitedbhost'];
         $dbargs['dbport'] = $GLOBALS['gEnv']['site']['data']['sitedbport'];
         $dbargs['dbuser'] = $GLOBALS['gEnv']['site']['data']['sitedbuser'];
         $dbargs['dbpass'] = $GLOBALS['gEnv']['site']['data']['sitedbpassword'];
         $dbargs['dblog'] = $GLOBALS['gEnv']['site']['data']['sitedblog'];
         $GLOBALS['gEnv']['site']['dblog'] =& $GLOBALS['gEnv']['site']['data']['sitedblog'];
         $db_fact = new DBLayerFactory();
         $GLOBALS['gEnv']['site']['db'] = $db_fact->NewDBLayer($dbargs);
         $env['db'] = $GLOBALS['gEnv']['site']['db'];
         if (!$GLOBALS['gEnv']['site']['db']->Connect($dbargs)) {
             if (!defined('MISC_LIBRARY')) {
                 include LIBRARY_PATH . 'misc.library';
             }
             $adloc = new Locale('amp_misc_auth', $GLOBALS['gEnv']['root']['locale']['language']);
             AmpDie($adloc->GetStr('nodb'));
         }
         // Hui theme
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val ' . 'FROM sitesettings ' . 'WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text('sitetheme'));
         $GLOBALS['gEnv']['site']['theme'] = $tmpquery->Fields('val');
         // Site cgi
         //
         if (strlen($GLOBALS['gEnv']['site']['data']['siteurl'])) {
             $tmp = parse_url($GLOBALS['gEnv']['site']['data']['siteurl']);
             $GLOBALS['gEnv']['site']['cgi'] = $tmp['scheme'] . '://' . $tmp['host'] . CGI_URL;
         } else {
             $GLOBALS['gEnv']['site']['cgi'] = CGI_URL;
         }
         $env['sitecgi'] =& $GLOBALS['gEnv']['site']['cgi'];
         unset($tmp);
         // Site country
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val ' . 'FROM sitesettings ' . 'WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text('sitecountry'));
         $GLOBALS['gEnv']['site']['locale']['country'] = strlen($tmpquery->Fields('val')) ? $tmpquery->Fields('val') : AMP_COUNTRY;
         $env['sitecountry'] = $GLOBALS['gEnv']['site']['locale']['country'];
         // Site language
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val ' . 'FROM sitesettings ' . 'WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text('sitelanguage'));
         $GLOBALS['gEnv']['site']['locale']['language'] = strlen($tmpquery->Fields('val')) ? $tmpquery->Fields('val') : AMP_LANG;
         $env['sitelanguage'] = $GLOBALS['gEnv']['site']['locale']['language'];
         // User
         //
         if (!strlen($userId)) {
             $userId = $siteId;
         }
         // User id
         //
         $GLOBALS['gEnv']['user']['id'] = $userId;
         $env['currentuser'] =& $GLOBALS['gEnv']['user']['id'];
         // Hui theme
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val ' . 'FROM sitesettings ' . 'WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text($GLOBALS['gEnv']['user']['id'] . '-theme'));
         $GLOBALS['gEnv']['user']['theme'] = $tmpquery->Fields('val');
         if (!strlen($GLOBALS['gEnv']['user']['theme'])) {
             if (!strlen($GLOBALS['gEnv']['site']['theme'])) {
                 import('com.solarix.ampoliros.module.ModuleConfig');
                 $mod_cfg = new ModuleConfig($GLOBALS['gEnv']['root']['db'], 'ampoliros');
                 if (strlen($mod_cfg->GetKey('hui-root-theme'))) {
                     $GLOBALS['gEnv']['site']['theme'] = $mod_cfg->GetKey('hui-root-theme');
                     if (!strlen($GLOBALS['gEnv']['site']['theme'])) {
                         $GLOBALS['gEnv']['site']['theme'] = $GLOBALS['gEnv']['hui']['theme']['default'];
                     }
                 } else {
                     $GLOBALS['gEnv']['site']['theme'] = $GLOBALS['gEnv']['hui']['theme']['default'];
                 }
                 unset($mod_cfg);
             }
             $GLOBALS['gEnv']['user']['theme'] = $GLOBALS['gEnv']['site']['theme'];
         }
         $GLOBALS['gEnv']['hui']['theme']['name'] = $GLOBALS['gEnv']['user']['theme'];
         // User country
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val FROM sitesettings WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text($GLOBALS['gEnv']['user']['id'] . '-country'));
         $GLOBALS['gEnv']['user']['locale']['country'] = $env[$GLOBALS['gEnv']['user']['id'] . '-country'] = strlen($tmpquery->Fields('val')) ? $tmpquery->Fields('val') : $GLOBALS['gEnv']['site']['locale']['country'];
         $env['currentuser-country'] = $GLOBALS['gEnv']['user']['locale']['country'];
         // User language
         //
         $tmpquery = $GLOBALS['gEnv']['site']['db']->Execute('SELECT val FROM sitesettings WHERE keyname=' . $GLOBALS['gEnv']['site']['db']->Format_Text($GLOBALS['gEnv']['user']['id'] . '-language'));
         $GLOBALS['gEnv']['user']['locale']['language'] = $env[$GLOBALS['gEnv']['user']['id'] . '-language'] = strlen($tmpquery->Fields('val')) ? $tmpquery->Fields('val') : $GLOBALS['gEnv']['site']['locale']['language'];
         $env['currentuser-language'] = $GLOBALS['gEnv']['user']['locale']['language'];
         $env['sitelocale'] = $GLOBALS['gEnv']['user']['locale']['language'];
         // Old one
         $tmpquery = $GLOBALS['gEnv']['root']['db']->Execute('SELECT id,fname,lname,email,groupid FROM users WHERE username='******'gEnv']['root']['db']->Format_Text($GLOBALS['gEnv']['user']['id']));
         // User datas
         //
         $GLOBALS['gEnv']['user']['group'] = $tmpquery->Fields('groupid');
         $GLOBALS['gEnv']['user']['serial'] = $tmpquery->Fields('id');
         $GLOBALS['gEnv']['user']['data']['lname'] = $tmpquery->Fields('lname');
         $GLOBALS['gEnv']['user']['data']['fname'] = $tmpquery->Fields('fname');
         $GLOBALS['gEnv']['user']['data']['email'] = $tmpquery->Fields('email');
         $env['currentusercname'] = $tmpquery->Fields('fname') . ' ' . $tmpquery->Fields('lname');
         $env['currentgroupserial'] = $GLOBALS['gEnv']['user']['group'];
         $env['currentuserserial'] = $GLOBALS['gEnv']['user']['serial'];
         $tmpquery->Free();
         $result = true;
     }
     $GLOBALS['gEnv']['runtime']['site']['init'] = true;
     return $result;
 }
コード例 #2
0
 public function update($updatemode, $params, $siteprescript = '', $sitepostscript = '')
 {
     $result = FALSE;
     if ($this->site) {
         $sitesquery = $this->ampdb->Execute('SELECT * FROM sites');
         $modquery = $this->ampdb->Execute('SELECT id FROM modules WHERE modid=' . $this->ampdb->Format_Text($this->modname));
         $modid = $modquery->Fields('id');
     }
     switch ($updatemode) {
         case Module::UPDATE_MODE_ADD:
             if ($this->DoInstallAction($params)) {
                 $result = TRUE;
                 if ($this->site) {
                     if ($sitesquery->NumRows() > 0) {
                         while (!$sitesquery->eof) {
                             $sitedata = $sitesquery->Fields();
                             $actquery = $this->ampdb->Execute('SELECT * FROM activemodules WHERE siteid=' . (int) $sitedata['id'] . ' AND moduleid=' . (int) $modid);
                             if ($actquery->NumRows()) {
                                 $args['dbtype'] = $sitedata['sitedbtype'];
                                 $args['dbname'] = $sitedata['sitedbname'];
                                 $args['dbhost'] = $sitedata['sitedbhost'];
                                 $args['dbport'] = $sitedata['sitedbport'];
                                 $args['dbuser'] = $sitedata['sitedbuser'];
                                 $args['dbpass'] = $sitedata['sitedbpassword'];
                                 $args['dblog'] = $sitedata['sitedblog'];
                                 import('com.solarix.ampoliros.db.DBLayerFactory');
                                 $db_fact = new DBLayerFactory();
                                 $this->sitedb = $db_fact->NewDBLayer($args);
                                 $this->sitedb->Connect($args);
                                 if (!$this->Enable($sitesquery->Fields('id'), $params)) {
                                     $result = FALSE;
                                 }
                             }
                             $actquery->Free();
                             $sitesquery->MoveNext();
                         }
                     }
                 }
             }
             break;
         case Module::UPDATE_MODE_REMOVE:
             if ($this->DoUninstallAction($params)) {
                 $result = TRUE;
                 if ($this->site) {
                     if ($sitesquery->NumRows() > 0) {
                         while (!$sitesquery->eof) {
                             $sitedata = $sitesquery->Fields();
                             $actquery = $this->ampdb->Execute('SELECT * FROM activemodules WHERE siteid=' . (int) $sitedata['id'] . ' AND moduleid=' . (int) $modid);
                             if ($actquery->NumRows()) {
                                 $args['dbtype'] = $sitedata['sitedbtype'];
                                 $args['dbname'] = $sitedata['sitedbname'];
                                 $args['dbhost'] = $sitedata['sitedbhost'];
                                 $args['dbport'] = $sitedata['sitedbport'];
                                 $args['dbuser'] = $sitedata['sitedbuser'];
                                 $args['dbpass'] = $sitedata['sitedbpassword'];
                                 $args['dblog'] = $sitedata['sitedblog'];
                                 import('com.solarix.ampoliros.db.DBLayerFactory');
                                 $db_fact = new DBLayerFactory();
                                 $this->sitedb = $db_fact->NewDBLayer($args);
                                 $this->sitedb->Connect($args);
                                 if (!$this->Disable($sitesquery->Fields('id'), $params)) {
                                     $result = FALSE;
                                 }
                             }
                             $actquery->Free();
                             $sitesquery->MoveNext();
                         }
                     }
                 }
             }
             break;
         case Module::UPDATE_MODE_CHANGE:
             if ($this->DoUpdateAction($params)) {
                 $result = TRUE;
                 if ($this->site) {
                     if ($sitesquery->NumRows() > 0) {
                         while (!$sitesquery->eof) {
                             $sitedata = $sitesquery->Fields();
                             $actquery = $this->ampdb->Execute('SELECT * FROM activemodules WHERE siteid=' . (int) $sitedata['id'] . ' AND moduleid=' . (int) $modid);
                             if ($actquery->NumRows()) {
                                 $args['dbtype'] = $sitedata['sitedbtype'];
                                 $args['dbname'] = $sitedata['sitedbname'];
                                 $args['dbhost'] = $sitedata['sitedbhost'];
                                 $args['dbport'] = $sitedata['sitedbport'];
                                 $args['dbuser'] = $sitedata['sitedbuser'];
                                 $args['dbpass'] = $sitedata['sitedbpassword'];
                                 $args['dblog'] = $sitedata['sitedblog'];
                                 import('com.solarix.ampoliros.db.DBLayerFactory');
                                 $db_fact = new DBLayerFactory();
                                 $this->sitedb = $db_fact->NewDBLayer($args);
                                 $this->sitedb->Connect($args);
                                 if (strlen($siteprescript) and file_exists($siteprescript)) {
                                     include $siteprescript;
                                 }
                                 if (!$this->DoUpdateSiteAction($sitesquery->Fields('id'), $params)) {
                                     $result = FALSE;
                                 }
                                 if (strlen($sitepostscript) and file_exists($sitepostscript)) {
                                     include $sitepostscript;
                                 }
                             }
                             $actquery->Free();
                             $sitesquery->MoveNext();
                         }
                     }
                 }
             }
             break;
         default:
             import('com.solarix.ampoliros.io.log.Logger');
             $log = new Logger(AMP_LOG);
             $log->LogEvent('ampoliros.modules_library.moduleelement_class.update', 'Invalid update mode', LOGGER_ERROR);
             break;
     }
     if ($this->site) {
         $sitesquery->Free();
         $modquery->Free();
     }
     return $result;
 }
コード例 #3
0
ファイル: main.php プロジェクト: alexpagnoni/ampoliros
 if (!file_exists(TMP_PATH . '.languageset')) {
     @touch(TMP_PATH . '.settinglanguage', time());
     // !!! $page->add( new HTMLScript( 'JavaScript1.2', 'parent.frames.sum.location.reload()', '' ) );
     $pass_data = $pass_disp->GetEventData();
     $country = $pass_data['country'];
     if (!strlen($country)) {
         $country = AMP_COUNTRY;
     }
     $args['dbname'] = AMP_DBNAME;
     $args['dbhost'] = AMP_DBHOST;
     $args['dbport'] = AMP_DBPORT;
     $args['dbuser'] = AMP_DBUSER;
     $args['dbpass'] = AMP_DBPASS;
     $args['dbtype'] = AMP_DBTYPE;
     $args['dblog'] = AMP_DBLOG;
     $layer = new DBLayerFactory();
     $tmpdb = $layer->NewDBLayer($args);
     if ($tmpdb->Connect($args)) {
         $loc_country = new LocaleCountry($country);
         $country_language = $loc_country->Language();
         $language_locale = new Locale('amp_misc_locale', AMP_LANG);
         $selected_language = $pass_disp->GetEventData();
         $selected_language = $selected_language['language'];
         $hui_vgroup = new HuiVertGroup('vgroup');
         $language_query =& $tmpdb->Execute('SELECT * ' . 'FROM languages');
         while (!$language_query->eof) {
             $languages[$language_query->Fields('langshort')] = $language_locale->GetStr($language_query->Fields('langname'));
             $language_query->MoveNext();
         }
         $hui_locale_grid = new HuiGrid('localegrid');
         $hui_locale_grid->AddChild(new HuiLabel('languagelabel', array('label' => $amp_locale->GetStr('language_label'))), 0, 0);
コード例 #4
0
ファイル: Module.php プロジェクト: alexpagnoni/ampoliros
 function Disable($siteid)
 {
     $result = FALSE;
     import('com.solarix.ampoliros.util.Hook');
     $hook = new Hook($this->ampdb, 'ampoliros', 'module.disable');
     if ($hook->CallHooks('calltime', $this, array('siteserial' => $siteid, 'modserial' => $this->serial)) == HOOK_RESULT_OK) {
         if ($this->serial) {
             // Checks if the module exists in modules table
             //
             $modquery =& $this->ampdb->Execute('SELECT * FROM modules WHERE id=' . (int) $this->serial);
             if ($modquery->NumRows() == 1) {
                 $moddata = $modquery->Fields();
                 if ($moddata['onlyextension'] != $this->ampdb->fmttrue) {
                     // Checks if the structure file still exists
                     //
                     if (file_exists(MODULE_PATH . $moddata['modid'] . '/' . Module::STRUCTURE_FILE)) {
                         $this->modname = $moddata['modid'];
                         $sitequery = $this->ampdb->Execute('SELECT * FROM sites WHERE id=' . $this->ampdb->Format_Text((int) $siteid));
                         $sitedata = $sitequery->Fields();
                         $args['dbtype'] = $sitedata['sitedbtype'];
                         $args['dbname'] = $sitedata['sitedbname'];
                         $args['dbhost'] = $sitedata['sitedbhost'];
                         $args['dbport'] = $sitedata['sitedbport'];
                         $args['dbuser'] = $sitedata['sitedbuser'];
                         $args['dbpass'] = $sitedata['sitedbpassword'];
                         $args['dblog'] = $sitedata['sitedblog'];
                         import('com.solarix.ampoliros.db.DBLayerFactory');
                         $db_fact = new DBLayerFactory();
                         $this->sitedb = $db_fact->NewDBLayer($args);
                         $this->sitedb->Connect($args);
                         // Dependencies check
                         //
                         $this->unmetdeps = array();
                         $this->unmetsuggs = array();
                         $moddeps = new ModuleDep($this->ampdb);
                         $pendingdeps = $moddeps->CheckSiteDependingModules($this->modname, $sitedata['siteid'], FALSE);
                         $modenabled = $moddeps->IsEnabled($this->modname, $sitedata['siteid']);
                         // If dependencies are ok, go on
                         //
                         if ($pendingdeps == FALSE and $modenabled == TRUE) {
                             $result = $this->HandleStructure(MODULE_PATH . $moddata['modid'] . '/' . Module::STRUCTURE_FILE, Module::INSTALL_MODE_DISABLE, MODULE_PATH . $moddata['modid'] . '/', $siteid);
                             $modquery = $this->ampdb->Execute('SELECT id FROM modules WHERE modid=' . $this->ampdb->Format_Text($this->modname));
                             $this->ampdb->Execute('DELETE FROM activemodules WHERE moduleid=' . (int) $this->serial . ' AND siteid=' . $this->ampdb->Format_Text($siteid));
                             $this->ampdb->Execute('DELETE FROM disabledsubmodules WHERE moduleid=' . (int) $this->serial . ' AND siteid=' . (int) $siteid);
                             if ($GLOBALS['gEnv']['core']['config']->Value('ALERT_ON_MODULE_SITE_OPERATION') == '1') {
                                 Carthag::import('com.solarix.ampoliros.security.SecurityLayer');
                                 $amp_security = new SecurityLayer();
                                 $amp_security->SendAlert('Module ' . $moddata['modid'] . ' has been disabled from site ' . $sitedata['siteid']);
                                 unset($amp_security);
                             }
                             if ($hook->CallHooks('moduledisabled', $this, array('siteserial' => $siteid, 'modserial' => $this->serial)) != HOOK_RESULT_OK) {
                                 $result = false;
                             }
                         } else {
                             if ($modenabled == FALSE) {
                             } else {
                                 $this->unmetdeps = $pendingdeps;
                             }
                         }
                         //if ( $result == TRUE ) $this->mLog->LogEvent( 'Ampoliros', 'Uninstalled module '.$this->modname, LOGGER_NOTICE );
                         $sitequery->Free();
                     } else {
                         import('com.solarix.ampoliros.io.log.Logger');
                         $log = new Logger(AMP_LOG);
                         $log->LogEvent('ampoliros.modules_library.modules_class.disable', 'Structure file ' . MODULE_PATH . $moddata['modid'] . '/' . Module::STRUCTURE_FILE . ' for module ' . $moddata['modid'] . ' was not found', LOGGER_ERROR);
                     }
                 } else {
                     import('com.solarix.ampoliros.io.log.Logger');
                     $log = new Logger(AMP_LOG);
                     $log->LogEvent('ampoliros.modules_library.modules_class.disable', 'Tried to disable module ' . $moddata['modid'] . ', but it is an extension only module', LOGGER_ERROR);
                 }
             } else {
                 import('com.solarix.ampoliros.io.log.Logger');
                 $log = new Logger(AMP_LOG);
                 $log->LogEvent('ampoliros.modules_library.modules_class.disable', 'A module with serial ' . $this->serial . ' was not found in modules table', LOGGER_ERROR);
             }
             $modquery->Free();
         } else {
             import('com.solarix.ampoliros.io.log.Logger');
             $log = new Logger(AMP_LOG);
             $log->LogEvent('ampoliros.modules_library.modules_class.disable', 'Empty module serial', LOGGER_ERROR);
         }
     }
     return $result;
 }
コード例 #5
0
ファイル: Site.php プロジェクト: alexpagnoni/ampoliros
 public function create($sitedata, $createDb = true)
 {
     $result = false;
     $hook = new Hook($this->ampdb, 'ampoliros', 'site.create');
     if ($hook->CallHooks('calltime', $this, array('sitedata' => $sitedata)) == HOOK_RESULT_OK) {
         $goon = true;
         if ($GLOBALS['gEnv']['core']['edition'] == AMP_EDITION_ENTERPRISE) {
             $check_query =& $GLOBALS['gEnv']['root']['db']->Execute('SELECT count(*) AS sites ' . 'FROM sites');
             if ($check_query->Fields('sites') > 0) {
                 $goon = false;
             }
         }
         if ($goon) {
             // Default settings and settings tuning
             //
             $nextseq = $this->ampdb->NextSeqValue('sites_id_seq');
             $sitedata['siteid'] = $this->defopt(strtolower(str_replace(' ', '', trim($sitedata['siteid']))), $nextseq);
             //$sitedata['sitemd5id']            = md5( $sitedata['siteid'] );
             $sitedata['sitemd5id'] = md5(microtime());
             $sitedata['sitepath'] = $this->defopt(trim($sitedata['sitepath']), SITES_TREE . $sitedata['siteid']);
             $sitedata['sitename'] = $this->defopt(trim($sitedata['sitename']), $sitedata['siteid'] . ' site');
             $sitedata['sitepassword'] = $this->defopt(trim($sitedata['sitepassword']), $sitedata['siteid']);
             $sitedata['sitedbname'] = $this->defopt(strtolower(str_replace(' ', '', trim($sitedata['sitedbname']))), 'amp' . $sitedata['siteid'] . 'site');
             $sitedata['sitedbhost'] = $this->defopt(trim($sitedata['sitedbhost']), AMP_DBHOST);
             $sitedata['sitedbport'] = $this->defopt(trim($sitedata['sitedbport']), AMP_DBPORT);
             $sitedata['sitedbuser'] = $this->defopt(str_replace(' ', '', trim($sitedata['sitedbuser'])), AMP_DBUSER);
             $sitedata['sitedbpassword'] = $this->defopt(trim($sitedata['sitedbpassword']), AMP_DBPASS);
             $sitedata['sitedblog'] = $this->defopt(trim($sitedata['sitedblog']), SITESTUFF_PATH . $sitedata['siteid'] . '/log/db.log');
             $sitedata['sitedbtype'] = $this->defopt(trim($sitedata['sitedbtype']), AMP_DBTYPE);
             $sitedata['sitecreationdate'] = isset($sitedata['sitecreationdate']) ? trim($sitedata['sitecreationdate']) : time();
             $sitedata['siteexpirydate'] = isset($sitedata['siteexpirytime']) ? trim($sitedata['siteexpirydate']) : time();
             $sitedata['siteactive'] = isset($sitedata['siteactive']) ? $sitedata['siteactive'] : $this->ampdb->fmttrue;
             $sitedata['maxusers'] = isset($sitedata['maxusers']) ? $sitedata['maxusers'] : '0';
             if (!isset($sitedata['sitenotes'])) {
                 $sitedata['sitenotes'] = '';
             }
             $args['dbtype'] = strlen($sitedata['sitedbtype']) ? $sitedata['sitedbtype'] : AMP_DBTYPE;
             $args['dbname'] = $sitedata['sitedbname'];
             $args['dbhost'] = $sitedata['sitedbhost'];
             $args['dbport'] = $sitedata['sitedbport'];
             $args['dbuser'] = $sitedata['sitedbuser'];
             $args['dbpass'] = $sitedata['sitedbpassword'];
             $args['dblog'] = $sitedata['sitedblog'];
             if ($this->ampdb->Execute('INSERT INTO sites VALUES ( ' . $nextseq . ',' . $this->ampdb->Format_Text($sitedata['siteid']) . ',' . $this->ampdb->Format_Text($sitedata['sitemd5id']) . ',' . $this->ampdb->Format_Text($sitedata['sitepath']) . ',' . $this->ampdb->Format_Text($sitedata['sitename']) . ',' . $this->ampdb->Format_Text(md5($sitedata['sitepassword'])) . ',' . $this->ampdb->Format_Text($sitedata['siteurl']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbname']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbhost']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbport']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbuser']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbpassword']) . ',' . $this->ampdb->Format_Text($sitedata['sitedblog']) . ',' . $this->ampdb->Format_Text($sitedata['sitedbtype']) . ',' . $this->ampdb->Format_Date($sitedata['sitecreationdate']) . ',' . $this->ampdb->Format_Date($sitedata['siteexpirydate']) . ',' . $this->ampdb->Format_Text($sitedata['siteactive']) . ',' . $this->ampdb->Format_Text($sitedata['sitenotes']) . ',' . $sitedata['maxusers'] . ')')) {
                 $this->siteid = $sitedata['siteid'];
                 $this->siteserial = $nextseq;
                 $this->sitelog = new Logger(SITESTUFF_PATH . $sitedata['siteid'] . '/log/site.log');
                 // Directory tree creation
                 $this->makedir($sitedata['sitepath']);
                 $this->makedir($sitedata['sitepath'] . '/media');
                 $this->makedir(SITESTUFF_PATH . $sitedata['siteid']);
                 $this->makedir(SITESTUFF_PATH . $sitedata['siteid'] . '/log');
                 $this->makedir(SITESTUFF_PATH . $sitedata['siteid'] . '/templates');
                 $this->makedir(SITESTUFF_PATH . $sitedata['siteid'] . '/etc');
                 // Site database population
                 //if ( strcmp( $sitedata['sitedbhost'], AMP_DBHOST ) == 0 )
                 //{
                 // Site database host is the same of the mall one
                 // Database creation
                 $args['name'] = $sitedata['sitedbname'];
                 //$this->ampdb->createdb( $args );
                 import('com.solarix.ampoliros.db.DBLayerFactory');
                 $db_fact = new DBLayerFactory();
                 $tmpdb = $db_fact->NewDBLayer($args);
                 if ($createDb) {
                     if ($tmpdb->Connect($args)) {
                         $tmpdb->DropDB($args);
                         $tmpdb->Close();
                     }
                 }
                 if (!$createDb or $created = $tmpdb->CreateDB($args)) {
                     if (isset($created) and $created == true) {
                         $this->sitelog->LogEvent($sitedata['siteid'], 'Database ' . $args['dbname'] . ' created', LOGGER_NOTICE);
                     }
                     if ($tmpdb->Connect($args)) {
                         $this->sitedb =& $tmpdb;
                         //$xmldb = new XmlDb( $tmpdb, DBLAYER_PARSER_SQL_CREATE );
                         $tmpquery = $this->ampdb->Execute('SELECT id ' . 'FROM modules ' . 'WHERE modid=' . $this->ampdb->Format_Text('ampoliros'));
                         if ($this->EnableModule($tmpquery->Fields('id'))) {
                             //$tmpsets = new SiteSettings( $tmpdb );
                             //$tmpsets->EditKey( 'sitelocale', AMP_LANG );
                             $tmpuser = new User($this->ampdb, $nextseq);
                             $tmpuser->CreateAdminUser($sitedata['siteid'], $sitedata['sitepassword']);
                             import('com.solarix.ampoliros.io.log.Logger');
                             $log = new Logger(AMP_LOG);
                             $log->LogEvent($sitedata['siteid'], 'Created new site ' . $sitedata['siteid'], LOGGER_NOTICE);
                             $this->sitelog->LogEvent($sitedata['siteid'], 'Created site ' . $sitedata['siteid'], LOGGER_NOTICE);
                             if ($hook->CallHooks('sitecreated', $this, array('sitedata' => $sitedata)) != HOOK_RESULT_ABORT) {
                                 $result = true;
                             }
                             global $gEnv;
                             if ($gEnv['core']['config']->Value('ALERT_ON_SITE_OPERATION') == '1') {
                                 Carthag::import('com.solarix.ampoliros.security.SecurityLayer');
                                 $amp_security = new SecurityLayer();
                                 $amp_security->SendAlert('A site has been created with id ' . $sitedata['siteid']);
                                 unset($amp_security);
                             }
                         } else {
                             import('com.solarix.ampoliros.io.log.Logger');
                             $log = new Logger(AMP_LOG);
                             $log->LogEvent('ampoliros.sites_library.site_class.create', 'Unable to enable Ampoliros to the site', LOGGER_ERROR);
                         }
                     } else {
                         import('com.solarix.ampoliros.io.log.Logger');
                         $log = new Logger(AMP_LOG);
                         $log->LogEvent('ampoliros.sites_library.site_class.create', 'Unable to connect to site database', LOGGER_ERROR);
                     }
                 } else {
                     import('com.solarix.ampoliros.io.log.Logger');
                     $log = new Logger(AMP_LOG);
                     $log->LogEvent('ampoliros.sites_library.site_class.create', 'Unable to create site database', LOGGER_ERROR);
                 }
             } else {
                 import('com.solarix.ampoliros.io.log.Logger');
                 $log = new Logger(AMP_LOG);
                 $log->LogEvent('ampoliros.sites_library.site_class.create', 'Unable to insert site row in sites table', LOGGER_ERROR);
             }
         } else {
             import('com.solarix.ampoliros.io.log.Logger');
             $log = new Logger(AMP_LOG);
             $log->LogEvent('ampoliros.sites_library.site_class.create', 'Tried to create another site in Enterprise edition', LOGGER_WARNING);
         }
     }
     return $result;
 }