SCMS-Kit-Desktop

<html>
<head>
<title>SCMS-Kit-Desktop < scms-kit < selfcms.de </title>
<meta name="generator" content="SCMS-Kit" />
<meta name="author" content="Gustav Wall, www.selfcms.de" />
<meta name="description" content="SCMS-Kit - Content Management System im Eigenbau für Profis und Quereinsteiger">
<meta name="Copyright" content="Gustav Wall">
<meta name="keywords" content="Content Management System, CMS, CMS im Eigenbau, CMS in Eigenbau, selfcms, XML, XML-Parser, XSL, XSLT-Prozessor" />
<style type="text/css">
<!-- iframe.cDir {position: absolute; top: 22; left: 0; width:361; height:100;}
div.cDivDir {position: absolute; top: 70; left: 15; width:361;}
div.divWithFiles {position: absolute; top: 20; left: 0; width:361; }
input.cButton {position: absolute; top: 5; left:265; font-size:0.2em; }
button.cButton {font-size:0.2em; }
-->
</style>
</head>


<script type="text/javascript">
// XML - XSL -Teil
var ScmsProjectPropertiesTemplate = "ScmsProjectProperties.xml"
var DocumentObjectXML = new ActiveXObject("Microsoft.xmldom");
var xml_file_var_js = new ActiveXObject("Microsoft.xmldom");
var style_file_var_js = new ActiveXObject("Microsoft.xmldom");
var PathXMLorXSLDirPrm, PathDir, ProjectName_js, targetFilesExtension, InputFilesExtension, PathXMLFile, PathXSLFile;

// Listing 4: Die Prozedur erzeugt ein XML-Dokument.
// http://www.vba-magazin.de/0301/xmlue_listing04.htm

function ScmsProjectLoad(PathScmsProject)
{ // Load for XML-, XSL- and targetFormatFilesDirectory on the scms-Desktop
if (PathScmsProject == "")
{ alert('Bitte legen Sie den Pfad im Feld Scms-kit Projekt fest.');
}
else DocumentObjectXML.load (PathScmsProject);

var PathProperties;
PathProperties = DocumentObjectXML.documentElement.childNodes;
ProjectName_js = PathProperties.item(0).text;
document.ControlCenterForm.ProjectName.value = ProjectName_js;
PathDir = PathProperties.item(1).text;
document.InputFormXML.InputFieldXML.value = PathDir;
ChangeSrc(PathDir,'FrameWithXMLFiles');
PathDir = PathProperties.item(2).text;
document.InputFormXSL.InputFieldXSL.value = PathDir;
ChangeSrc(PathDir,'FrameWithXSLFiles');
PathDir = PathProperties.item(3).text;
document.InputFormTargetFormat.InputFieldTargetFormat.value = PathDir;
ChangeSrc(PathDir,'FrameWithTargetFormatFiles');
targetFilesExtension = PathProperties.item(4).text;
document.InputFormTargetFormat.targetFilesExtensionField.value = targetFilesExtension
}

function ProjectExport(PathXMLDirPrm, PathXSLDirPrm,PathExportDirPrm, TransformMode)
/* der Parameter TransformMode kann nur zwei Werte haben:
'StandAloneXMLwithnXSL' oder 'nXMLwithStandAloneXSL'' */
{
var TransformMode;
if(document.ControlCenterForm.TransformModeCB[0].checked == true)
TransformMode="nXMLwithStandAloneXSL"
else if(document.ControlCenterForm.TransformModeCB[1].checked == true)
TransformMode="StandAloneXMLwithnXSL"
targetFilesExtension = document.InputFormTargetFormat.targetFilesExtensionField.value;
switch(TransformMode)
{
case "StandAloneXMLwithnXSL":
ReadStandAloneFile(PathXMLDirPrm, 'xml');
ReadnFiles(PathXSLDirPrm, 'xsl', PathExportDirPrm);
break;
case "nXMLwithStandAloneXSL":
ReadStandAloneFile(PathXSLDirPrm, 'xsl');
ReadnFiles(PathXMLDirPrm, 'xml', PathExportDirPrm);
break;
}
}
function Path4XMLorXSL(PathVB, FileNameVB, FileExtensionVB)
{
if (FileExtensionVB == "xml")
{ PathXMLFile = PathVB + FileNameVB;
}
else if (FileExtensionVB == "xsl")
{ PathXSLFile = PathVB + FileNameVB;
};
}

function ScmsProjectSave(PathSaveProject)
{ // Save the ScmsProject
var ScmsProjectProperties;
ProjectName_js = document.ControlCenterForm.ProjectName.value;
ScmsProjectProperties = '<?xml version="1.0" encoding="ISO-8859-1"?>\n<ScmsProjectProperties>\n<name>' + ProjectName_js + '</name>\n<PathContent>' ;

PathDir = document.InputFormXML.InputFieldXML.value;
ScmsProjectProperties = ScmsProjectProperties + PathDir + '</PathContent>\n<PathStylesheets>';

PathDir = document.InputFormXSL.InputFieldXSL.value;
ScmsProjectProperties = ScmsProjectProperties + PathDir + '</PathStylesheets>\n<PathTargetFormatFiles>';
PathDir = document.InputFormTargetFormat.InputFieldTargetFormat.value;
ScmsProjectProperties = ScmsProjectProperties + PathDir + '</PathTargetFormatFiles>\n<targetFilesExtension>'
targetFilesExtension = document.InputFormTargetFormat.targetFilesExtensionField.value
ScmsProjectProperties = ScmsProjectProperties + targetFilesExtension + '</targetFilesExtension>\n</ScmsProjectProperties>';

// save Scms-kit Project
if (PathSaveProject == "")
{ alert('Bitte legen Sie den Pfad im Feld Scms-kit Projekt fest.');
}
else FileSave(PathSaveProject,ScmsProjectProperties);
}

function CreateTargetFormat(PathXMLFile_js,PathXSLDirPrm_js,PathExportDirPrm_js) {
var html_file_var;
xml_file_var_js.load(PathXMLFile_js);
style_file_var_js.load(PathXSLDirPrm_js);
html_file_var = xml_file_var_js.transformNode(style_file_var_js.documentElement);
FileSave(PathExportDirPrm_js,html_file_var);
}

function ChangeSrc(PathWorkSpace, FrameID)
{
var BrowserOutput = "";
var BrowserOutput = "<iframe src='" + PathWorkSpace + "' class='cDir' ></iframe>";
document.getElementById(FrameID).innerHTML = BrowserOutput;
}

function FileNameFind(FileNameFull)
{
var FileNameShort_js, FileNameParts=FileNameFull.split(".");
FileNameShort_js = FileNameParts[0];
InputFilesExtension = FileNameParts[1].toLowerCase();
return FileNameShort_js;
}
function WindowOpen(FileName){ window.open (FileName)}
// ist definiert, um die in VB erstellte Datei in einem neuen Browserfenster anzeigen

</script>

<script language="VBScript">
Public Sub ChooseCMSProject()
dim DefaultProjectPropertiesFile, CurrentProjectPropertiesFile, Message, Title
DefaultProjectPropertiesFile = "DefaultProject.txt"
CurrentProjectPropertiesFile = "DefaultProject.txt"
Message = "Bitte wählen Sie ein CMS-Projekt aus: "
Title = "CMS-Project definieren"
' CurrentProjectPropertiesFile = InputBox (Message,Title, DefaultProjectPropertiesFile,,1100)
ScmsProjectLoad(CurrentProjectPropertiesFile)
end Sub

Public Sub ReadStandAloneFile(PathXMLorXSLDirPrm, FileExtensionPrm)
dim FileObject, fso_vb, FileName, FileNameShort
Set fso_vb = CreateObject("Scripting.FileSystemObject")
' File load: Dateien werden eingelesen. Wenn die Datei die Erweiterung FileExtensionPrm hat, dann wird die Schleife beendet
If fso_vb.FolderExists(PathXMLorXSLDirPrm) = True Then
For Each FileObject In fso_vb.GetFolder(PathXMLorXSLDirPrm).Files
FileName = FileObject.Name
FileNameShort = FileNameFind( FileName)
if InputFilesExtension = FileExtensionPrm then
call Path4XMLorXSL(PathXMLorXSLDirPrm, FileName, InputFilesExtension)
Exit for
else
End If
Next
Else
msgBox "Ordner " & PathXMLorXSLDirPrm & " ist nicht vorhanden", 48," ReadStandAloneFile < scms-kit-Info: "
End If
End Sub

Public Sub ReadnFiles(PathXMLorXSLDirPrm, FileExtensionPrm, PathExportDirPrm)
dim PathExportFile, FileObject, fso_vb, FileList, FileName, FileNameShort, TemplateCounter
Set fso_vb = CreateObject("Scripting.FileSystemObject")
' Files load: Dateien werden eingelesen.
FileList = ""
If fso_vb.FolderExists(PathXMLorXSLDirPrm) = True Then
For Each FileObject In fso_vb.GetFolder(PathXMLorXSLDirPrm).Files
FileName = FileObject.Name
FileNameShort = FileNameFind( FileName)
if InputFilesExtension = FileExtensionPrm then
call Path4XMLorXSL(PathXMLorXSLDirPrm, FileName, InputFilesExtension)
PathExportFile = PathExportDirPrm & FileNameShort & "." & targetFilesExtension
call CreateTargetFormat(PathXMLFile, PathXSLFile, PathExportFile)
else
End If
Next
Else
msgBox "Ordner " & PathXMLorXSLDirPrm & " ist nicht vorhanden", 48," ReadnFiles-Info: "
End If
End Sub

Public Sub FileSave(Pfad,Daten)
dim fso_vb, fso_open_vb
Set fso_vb = CreateObject("Scripting.FileSystemObject")
set fso_open_vb = fso_vb.OpenTextFile(Pfad,2,True)
fso_open_vb.write Daten
fso_open_vb.Close
msgBox "Datei " & Pfad & " geschrieben", 64," Scms-kit-Info: Datei geschrieben"
' call FensterOeffnen(Pfad_HTMLDatei_VB)
End Sub
</script>
<!-- <body onload=" ScmsProjectLoad('ScmsProjectProperties.xml')" style="margin-bottom: 0;"> -->
<body onload="ChooseCMSProject()" style="margin-bottom: 0;">

<!-- Anleitung -->
<p style="position: absolute; top: 10; left: 15; font-size: smaller;width:750;">
<b>Bestätigen Sie die Engaben in Verzeichnis-Feldern nur mit dem Mausklick auf die <i>Festlegen</i> bzw. <i>Laden</i>-Schaltfläche! </b><br>Durch Drücken der Eingabe-Taste im Verzeichnis-Feld wird lediglich die komplette HTML-Seite neu geladen und die Feldeingaben zurückgesetzt. Um die Dateiliste im Verzeichnis-Fenster vollständiger anzuzeigen: Klick <i>Rechte Maustaste - > Ansicht - > Liste. </i>
</p>

<!-- Projektinformationen -->
<div ID='ControlCenter' class="cDivDir" >
<form name="ControlCenterForm" > <span style="font-weight: bold;">Scms-kit Projekt </span>    
<!-- , 'FrameWithTargetFormatFiles' -->
<input type="button" value="Laden" title="Pfadangaben im Feld unten erst festlegen" onClick="PathDir=document.ControlCenterForm.InputFieldScmsProjectProperties.value; ScmsProjectLoad(PathDir)" style="font-size: 0.2em; " >    
<button type="button" onClick="PathDir=document.ControlCenterForm.InputFieldScmsProjectProperties.value; ScmsProjectSave(PathDir)" style="font-size: 0.2em; position: absolute; top: 46; right: 0; " title="Pfadangaben im Feld oben erst festlegen">Projekt Speichern</button>
<!-- <input ID ="InputFieldScmsProjectProperties" size="43" value='ScmsProjectProperties.xml'> -->
<input name="InputFieldScmsProjectProperties" type="file" size="43" style="font-size: 0.2em; " title="Hier Pfad zu der Projektdatei eintragen. Durchgesucht wird Windows-Dateisystem nach einer SCMS-Projektdatei">
<input type="button" value=" Exportieren" title=" ggf. Exportverzeichnis ändern oder festlegen" onClick="PathXMLDir=document.InputFormXML.InputFieldXML.value; PathXSLDir=document.InputFormXSL.InputFieldXSL.value; PathExportDir=document.InputFormTargetFormat.InputFieldTargetFormat.value; ProjectExport(PathXMLDir,PathXSLDir,PathExportDir,'StandAloneXMLwithnXSL')" class='cButton' style="top: 0; left:256;"><br>
<i>Projektkurzbeschreibung: </i>
<input name="ProjectName" type="text" style="top: 37; right:80;font-weight: bold;font-style: italic;" size="43" ><br>
<input type=radio name="TransformModeCB" value="nXMLwithStandAloneXSL" checked> <span style="font-size: smaller;">mehrere XML-Dateien mit einem Stylesheet bearbeiten</span> <br>

<input type=radio name="TransformModeCB" value="StandAloneXMLwithnXSL" > <span style="font-size: smaller;">eine XML-Datei mit mehreren Stylesheets bearbeiten</span>
</form>
</div>

<!-- Export-Verzeichnis - Bereich-->
<div ID='ControlTargetFormat' class="cDivDir" style='left:400;'>
<form name="InputFormTargetFormat" > Export-Verzeichnis
<input type="button" value="Festlegen" onClick="PathDir=document.InputFormTargetFormat.InputFieldTargetFormat.value; ChangeSrc(PathDir, 'FrameWithTargetFormatFiles')" class='cButton'>
<input ID ="InputFieldTargetFormat" size="43" >
<!-- <input name="InputFieldTargetFormat" type="file" size="30" class='cButton' > -->
<div style="position: absolute;top: 150; right:30;" >
Dateierweiterung für das Zielformat: <input name="targetFilesExtensionField" type="text" size="5" style=" font-weight: bold;">
</div>
</form>
<div ID="FrameWithTargetFormatFiles" class='divWithFiles' ></div>
</div>


<!-- XML-Daten - Bereich-->
<div ID='ControlXML' class="cDivDir" style='top: 270;'>
<form name="InputFormXML"> <i>Verzeichnis mit XML-Daten </i>
<!--Für die Dynamische Festlegung von Pfadangaben mit der 'Durchsuchen'-Funktion nächste Zeile mit InputFieldXML auskommentieren und die andere Zeile mit InputFieldXML und type="file" aktivieren. Genauso für InputFieldXSL. -->
<input type="button" value=" Festlegen" onClick="PathDir=document.InputFormXML.InputFieldXML.value; ChangeSrc(PathDir,'FrameWithXMLFiles')" class='cButton'>
<input ID ="InputFieldXML" size="43" >
<!-- hier ist InputFieldXML entscheidend. Mit etwas Aufwand könnte man zwei Variablen z. B. InputFieldXMLDefault und InputFieldXMLDynamisch einführen und dann im JavaScript abfragen, ob InputFieldXMLDefault nicht leer ist.
<input name="InputFieldXML" type="file" size="29" class='cButton' > -->

</form>
<div ID='FrameWithXMLFiles' class='divWithFiles'></div>
</div>

<!-- XSL-Daten - Bereich-->
<div ID='ControlXSL' class="cDivDir" style='left:400;top: 270;''>
<form name="InputFormXSL" > <i>Verzeichnis mit XSL-Anweisungen </i>
<!-- <input name="InputFieldXSL" type="file" size="30" class='cButton' > -->
<input type="button" value="Festlegen" onClick="PathDir=document.InputFormXSL.InputFieldXSL.value; ChangeSrc(PathDir,'FrameWithXSLFiles')" class='cButton'>
<input ID ="InputFieldXSL" size="43" >
</form>
<div ID="FrameWithXSLFiles" class='divWithFiles'></div>
</div>

</body>
</html>