mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 18:48:51 +02:00
Added capability to store/load the DOM in one go !
SVN:trunk[1979]
This commit is contained in:
@@ -109,10 +109,10 @@ class ModelFactory
|
||||
protected $sRootDir;
|
||||
protected $oDOMDocument;
|
||||
protected $oRoot;
|
||||
protected $oModules;
|
||||
protected $oClasses;
|
||||
protected $oMenus;
|
||||
static protected $aLoadedClasses;
|
||||
static protected $aLoadedMenus;
|
||||
static protected $aWellKnownParents = array('DBObject', 'CMDBObject','cmdbAbstractObject');
|
||||
// static protected $aWellKnownMenus = array('DataAdministration', 'Catalogs', 'ConfigManagement', 'Contact', 'ConfigManagementCI', 'ConfigManagement:Shortcuts', 'ServiceManagement');
|
||||
static protected $aLoadedModules;
|
||||
@@ -125,6 +125,8 @@ class ModelFactory
|
||||
$this->oDOMDocument = new MFDocument();
|
||||
$this->oRoot = $this->oDOMDocument->CreateElement('itop_design');
|
||||
$this->oDOMDocument->AppendChild($this->oRoot);
|
||||
$this->oModules = $this->oDOMDocument->CreateElement('loaded_modules');
|
||||
$this->oRoot->AppendChild($this->oModules);
|
||||
$this->oClasses = $this->oDOMDocument->CreateElement('classes');
|
||||
$this->oRoot->AppendChild($this->oClasses);
|
||||
foreach (self::$aWellKnownParents as $sWellKnownParent)
|
||||
@@ -141,8 +143,6 @@ class ModelFactory
|
||||
$oElement = $this->oDOMDocument->CreateElement($sElementName);
|
||||
$this->oRoot->AppendChild($oElement);
|
||||
}
|
||||
self::$aLoadedClasses = array();
|
||||
self::$aLoadedMenus = array();
|
||||
self::$aLoadedModules = array();
|
||||
self::$aLoadErrors = array();
|
||||
|
||||
@@ -158,6 +158,26 @@ class ModelFactory
|
||||
$oNode->Dump();
|
||||
}
|
||||
|
||||
public function LoadFromFile($sCacheFile)
|
||||
{
|
||||
$this->oDOMDocument->load($sCacheFile);
|
||||
$this->oRoot = $this->oDOMDocument->firstChild;
|
||||
|
||||
$this->oModules = $this->oRoot->getElementsByTagName('loaded_modules')->item(0);
|
||||
self::$aLoadedModules = array();
|
||||
foreach($this->oModules->getElementsByTagName('module') as $oModuleNode)
|
||||
{
|
||||
$sId = $oModuleNode->getAttribute('id');
|
||||
$sRootDir = $oModuleNode->GetChildText('root_dir');
|
||||
$sLabel = $oModuleNode->GetChildText('label');
|
||||
self::$aLoadedModules[] = new MFModule($sId, $sRootDir, $sLabel);
|
||||
}
|
||||
}
|
||||
|
||||
public function SaveToFile($sCacheFile)
|
||||
{
|
||||
$this->oDOMDocument->save($sCacheFile);
|
||||
}
|
||||
/**
|
||||
* To progressively replace LoadModule
|
||||
* @param xxx xxx
|
||||
@@ -254,6 +274,14 @@ class ModelFactory
|
||||
$sModuleName = $oModule->GetName();
|
||||
$aClasses = array();
|
||||
self::$aLoadedModules[] = $oModule;
|
||||
|
||||
// For persistence in the cache
|
||||
$oModuleNode = $this->oDOMDocument->CreateElement('module');
|
||||
$oModuleNode->setAttribute('id', $oModule->GetId());
|
||||
$oModuleNode->AppendChild($this->oDOMDocument->CreateElement('root_dir', $oModule->GetRootDir()));
|
||||
$oModuleNode->AppendChild($this->oDOMDocument->CreateElement('label', $oModule->GetLabel()));
|
||||
$this->oModules->AppendChild($oModuleNode);
|
||||
|
||||
foreach($aDataModels as $sXmlFile)
|
||||
{
|
||||
$oDocument = new MFDocument();
|
||||
|
||||
Reference in New Issue
Block a user