فهرست منبع

Regresssion of iTop 2.3.0 beta: properly load the metamodel from the environment.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4287 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 9 سال پیش
والد
کامیت
eebeeeb210
3فایلهای تغییر یافته به همراه15 افزوده شده و 13 حذف شده
  1. 3 5
      application/startup.inc.php
  2. 11 7
      core/metamodel.class.php
  3. 1 1
      setup/runtimeenv.class.inc.php

+ 3 - 5
application/startup.inc.php

@@ -1,5 +1,5 @@
 <?php
-// Copyright (C) 2010-2012 Combodo SARL
+// Copyright (C) 2010-2016 Combodo SARL
 //
 //   This file is part of iTop.
 //
@@ -20,7 +20,7 @@
 /**
  * File to include to initialize the datamodel in memory
  *
- * @copyright   Copyright (C) 2010-2012 Combodo SARL
+ * @copyright   Copyright (C) 2010-2016 Combodo SARL
  * @license     http://opensource.org/licenses/AGPL-3.0
  */
 
@@ -46,6 +46,4 @@ else
 	$_SESSION['itop_env'] = ITOP_DEFAULT_ENV;
 }
 $sConfigFile = APPCONF.$sEnv.'/'.ITOP_CONFIG_FILE;
-MetaModel::Startup($sConfigFile);
-
-?>
+MetaModel::Startup($sConfigFile, false /* $bModelOnly */, true /* $bAllowCache */, false /* $bTraceSourceFiles */, $sEnv);

+ 11 - 7
core/metamodel.class.php

@@ -108,6 +108,7 @@ abstract class MetaModel
 
 	private static $m_bTraceSourceFiles = false;
 	private static $m_aClassToFile = array();
+	protected static $m_sEnvironment = 'production';
 
 	public static function GetClassFiles()
 	{
@@ -305,7 +306,7 @@ abstract class MetaModel
 				return self::GetClassIcon($sParentClass, $bImgTag, $sMoreStyles);
 			}
 		}
-		$sIcon = str_replace('/modules/', '/env-'.utils::GetCurrentEnvironment().'/', $sIcon); // Support of pre-2.0 modules
+		$sIcon = str_replace('/modules/', '/env-'.self::$m_sEnvironment.'/', $sIcon); // Support of pre-2.0 modules
 		if ($bImgTag && ($sIcon != ''))
 		{
 			$sIcon = "<img src=\"$sIcon\" style=\"vertical-align:middle;$sMoreStyles\"/>";
@@ -3484,9 +3485,10 @@ abstract class MetaModel
 		$aAlterTableItems = array(); // array of <table> => <alter specification>
 		
 		foreach (self::GetClasses() as $sClass)
-		{
+		{	
 			if (!self::HasTable($sClass)) continue;
 
+
 			// Check that the table exists
 			//
 			$sTable = self::DBGetTable($sClass);
@@ -4125,11 +4127,13 @@ abstract class MetaModel
 		}
 	}
 
-	public static function Startup($config, $bModelOnly = false, $bAllowCache = true, $bTraceSourceFiles = false)
+	public static function Startup($config, $bModelOnly = false, $bAllowCache = true, $bTraceSourceFiles = false, $sEnvironment = 'production')
 	{
+		self::$m_sEnvironment = $sEnvironment;
+		
 		if (!defined('MODULESROOT'))
 		{
-			define('MODULESROOT', APPROOT.'env-'.utils::GetCurrentEnvironment().'/');
+			define('MODULESROOT', APPROOT.'env-'.self::$m_sEnvironment.'/');
 	
 			self::$m_bTraceSourceFiles = $bTraceSourceFiles;
 	
@@ -4226,7 +4230,7 @@ abstract class MetaModel
 		{
 			Dict::EnableCache($sAppIdentity);
 		}
-		require_once(APPROOT.'env-'.utils::GetCurrentEnvironment().'/dictionaries/languages.php');
+		require_once(APPROOT.'env-'.self::$m_sEnvironment.'/dictionaries/languages.php');
 		
 		// Set the default language...
 		Dict::SetDefaultLanguage(self::$m_oConfig->GetDefaultLanguage());
@@ -4236,7 +4240,7 @@ abstract class MetaModel
 		require_once(APPROOT.'/application/cmdbabstract.class.inc.php');
 
 		require_once(APPROOT.'core/autoload.php');
-		require_once(APPROOT.'env-'.utils::GetCurrentEnvironment().'/autoload.php');
+		require_once(APPROOT.'env-'.self::$m_sEnvironment.'/autoload.php');
 
 		foreach (self::$m_oConfig->GetAddons() as $sModule => $sToInclude)
 		{
@@ -4359,7 +4363,7 @@ abstract class MetaModel
 
 	public static function GetEnvironmentId()
 	{
-		return md5(APPROOT).'-'.utils::GetCurrentEnvironment();
+		return md5(APPROOT).'-'.self::$m_sEnvironment;
 	}
 
 	protected static $m_aExtensionClasses = array();

+ 1 - 1
setup/runtimeenv.class.inc.php

@@ -103,7 +103,7 @@ class RunTimeEnvironment
 			MetaModel::ResetCache(md5(APPROOT).'-'.$this->sTargetEnv);
 		}
 	
-		MetaModel::Startup($oConfig, $bModelOnly, $bUseCache);
+		MetaModel::Startup($oConfig, $bModelOnly, $bUseCache, false /* $bTraceSourceFiles */, $this->sTargetEnv);
 	}
 	
 	/**