Compiler: added brand management

SVN:trunk[2838]
This commit is contained in:
Romain Quetiez
2013-08-29 08:35:44 +00:00
parent 564ba105eb
commit 607236a7cb
6 changed files with 93 additions and 13 deletions

View File

@@ -316,7 +316,13 @@ EOF;
{
$this->CompileDictionary($oDictionaryNode, $sTempTargetDir, $sFinalTargetDir);
}
} // Compile()
// Compile the branding
//
$oBrandingNode = $this->oFactory->GetNodes('branding')->item(0);
$this->CompileBranding($oBrandingNode, $sTempTargetDir, $sFinalTargetDir);
} // DoCompile()
/**
* Helper to form a valid ZList from the array built by GetNodeAsArrayOfItems()
@@ -1537,6 +1543,48 @@ EOF;
}
}
}
protected function CompileLogo($oBrandingNode, $sTempTargetDir, $sFinalTargetDir, $sNodeName, $sTargetFile)
{
if (($sIcon = $oBrandingNode->GetChildText($sNodeName)) && (strlen($sIcon) > 0))
{
if (substr($sIcon, 0, 8) == 'branding')
{
$sSourceFile = $sTempTargetDir.'/'.$sIcon;
}
else
{
$sSourceFile = APPROOT.$sIcon;
}
$sTargetFile = $sTempTargetDir.'/branding/'.$sTargetFile.'.png';
if (!file_exists($sSourceFile))
{
throw new Exception("Branding $sNodeName: could not find the file $sIcon ($sSourceFile)");
}
// Note: rename makes sense only when the file given as a file ref, otherwise it may be an item of the application (thus it must be kept there)
copy($sSourceFile, $sTargetFile);
}
}
protected function CompileBranding($oBrandingNode, $sTempTargetDir, $sFinalTargetDir)
{
if ($oBrandingNode)
{
// Transform file refs into files in the images folder
SetupUtils::builddir($sTempTargetDir.'/branding');
$this->CompileFiles($oBrandingNode, $sTempTargetDir.'/branding', $sFinalTargetDir.'/branding', 'branding');
$this->CompileLogo($oBrandingNode, $sTempTargetDir, $sFinalTargetDir, 'main_logo', 'main-logo');
$this->CompileLogo($oBrandingNode, $sTempTargetDir, $sFinalTargetDir, 'login_logo', 'login-logo');
$this->CompileLogo($oBrandingNode, $sTempTargetDir, $sFinalTargetDir, 'portal_logo', 'portal-logo');
// Cleanup the images directory (made by CompileFiles)
SetupUtils::rrmdir($sTempTargetDir.'/branding/images');
}
}
}
?>