// (C) 2000 - 2003 CPM - Consulting & Projektmanagement GmbH // filename: core_menuinfo_client.php // // Version 2.0 - January 15th 2003 // // history: // Version 1.0 - October 15th 2002 // - first release // Version 2.0 - January 15th 2003 // - new naming conventions (whole application changed) // // global definitions var switchEnde = false; var LevelNr = new Array (0,1,2,3); var Keyword = ""; var cntVerarbeitet = 0; var cntLimit = 0; var switchAusgabe = false; var switchMenuItemNeu = false; var strText = ""; var strLink = ""; var strLevel = ""; var strType = ""; var strStatus = ""; var strNodeMode = "0"; var strStartProperty = "0"; var aryStartProperty = new Array(50); var cntMenuItem = 0; function getMenuItemData() { var tmpIndex = 0; // for start initialise with -1 posStart = -1 LevelNr[0] = -1 // entspricht level0ID LevelNr[1] = -1 // entspricht level1ID LevelNr[2] = -1 // entspricht level2ID LevelNr[3] = -1 // entspricht level3ID cntLimit = strMenuItemData.length while (switchEnde == false) { // get next keyword (including start-position, end-position and value of the keyword) analyzeBuffer () // processing according to the keyword switch (Keyword.toUpperCase()) { case "MENUITEM": switchAusgabe = true; switchMenuItemNeu = true; break; case "/MENUITEM": IndexLevel = strLevel; if (strNodeMode == "1") { // add child LevelNr[IndexLevel] = theMenu.addChild(LevelNr[IndexLevel-1], strType, strText, strLink, strStatus) } else { // add sister if (IndexLevel == 0) { LevelNr[1] = theMenu.addEntry(-1, strType, strText, strLink, strStatus) } else { LevelNr[IndexLevel] = theMenu.addEntry(LevelNr[IndexLevel], strType, strText, strLink, strStatus) } } switchAusgabe = false; // clear variables after processing for next loop strText = ""; strLink = ""; strLevel = ""; strType = ""; strStatus = ""; strNodeMode = ""; strStartProperty = ""; break; case "TEXT": strText = DataValue; break; case "LINK": strLink = DataValue; break; case "LEVEL": strLevel = DataValue; break; case "TYPE": if (DataValue == "0") { strType = "Folder"; } else { if (DataValue == "1") { strType = "Document"; } else { strType = ""; } } break; case "STATUS": strStatus = DataValue; break; case "NODEMODE": strNodeMode = DataValue; break; case "STARTPROPERTY": strStartProperty = DataValue; break; default: } } } function oldNodes() { // Now set up the menu with a whole lot of addEntry and addChild function calls var level1ID = -1; var level2ID = -1; var level3ID = -1; level1ID = theMenu.addEntry(-1, "Folder", "Folder 1", "robots.htm", "Help for Folder 1"); level2ID = theMenu.addChild(level1ID, "Document", "Page 1", "page1.htm", "Help for page 1."); level2ID = theMenu.addEntry (level2ID, "Document", "Page 2", "page2.htm", "Help for page 2."); level2ID = theMenu.addEntry(level2ID, "Folder", "Folder 1.2", "", "Help for Folder 1.2"); level3ID = theMenu.addChild(level2ID, "Document", "Page 3", "page3.htm?fred", "Help for Page 3."); level3ID = theMenu.addEntry (level3ID, "Document", "Page 4", "page4.htm", "Help for page 4."); level1ID = theMenu.addEntry(level1ID, "Folder", "Folder 2", "", "Help for Folder 1"); level2ID = theMenu.addChild(level1ID, "Document", "Page 5", "page5.htm", "Help for page 5."); level2ID = theMenu.addEntry (level2ID, "Document", "Page 6", "page6.htm", "Help for page 6."); level1ID = theMenu.addEntry(level1ID, "Document", "License", "license.htm", "The Joust license agreement."); } // ------------------------- // a n a l y z e B u f f e r // ------------------------- function analyzeBuffer () { // this functions analyses the textstring // and according to the keyword the processing will be controlled var lgeTabelle = 0 // initialisations posTagEnde = 0 // get next keyword posBeginn = strMenuItemData.indexOf("<") posEnde = strMenuItemData.indexOf(">", posBeginn) posBlank = strMenuItemData.indexOf(" ", posBeginn) // wenn das erste Blank früher vorkommt als das Ende-Zeichen, dann steht // das Schlüsselwort zwischen Beginn und Blank, sonst zwischen Beginn und Ende if ((posBlank < posEnde) && (posBlank != -1)){ Keyword = strMenuItemData.substr(posBeginn + 1, posBlank - posBeginn - 1) } else { Keyword = strMenuItemData.substr(posBeginn + 1, posEnde - posBeginn - 1) } // Anzahl der verarbeiteten Zeichen erhöhen cntVerarbeitet = cntVerarbeitet + posEnde + 1 // Wenn es sich um einen Tag-Beginn handelt, dann auch das Tag-Ende ermitteln if (Keyword.substr(0,1) != "/") { posTagEnde = strMenuItemData.indexOf("") } // nur als Muster ohne Wert (kann entsprechend adaptiert werden) if (posTagEnde != 0) { switch (Keyword.toUpperCase()) { case "DATA": DataValue = strMenuItemData.substr(posEnde + 1, posTagEnde - posEnde - 1) break default: DataValue = strMenuItemData.substr(posEnde + 1, posTagEnde - posEnde - 1) } } // Ausgabe der enthaltenen Tabellen // Keyword auf Grossbuchstaben umstellen if (Keyword.toUpperCase() == "TABLE") { lgeTabelle = posTagEnde + 3 + Keyword.length - posBeginn if (blnTest == "true") { window.alert ("posTagEnde = " + posTagEnde + "\n" + "Länge der Tabelle = " + lgeTabelle + "\n" + "Keyword.Length = " + Keyword.length) //document.write ("
A u s g a b e d e r T a b e l l e
") window.alert ("Jetzt wird folgende Tabelle ausgegeben: \n" + strMenuItemData.substr(posBeginn, lgeTabelle)) } // nachfolgendes document.write deaktiviert für Test gruge / 23. 01. 2001 document.write (strMenuItemData.substr(posBeginn, lgeTabelle)) } // nun den verarbeiteten Teil "ausschneiden" strMenuItemData = strMenuItemData.substr(posEnde + 1) //Verarbeitungsende setzen if (cntVerarbeitet >= cntLimit){ switchEnde = true } // Sicherheitsabfrage, damit ein Ausstieg erfolgt, wenn kein Ende mehr vorkommt !!! if (posEnde == -1) { switchEnde = true } // keine Ausgabe der Testmeldungen, daher return // wenn die Ausgabe der Testmeldungen gewünscht ist, // dann dieses Statement auskommentieren // if (cntVerarbeitet < 1800) { // return // } // Testmeldung ausgeben //window.alert ("Ende analyzeBuffer mit cntVerarbeitet = " + cntVerarbeitet + ", Keyword = " + Keyword); } // AE 13.09.2002: Tom -- Anfang // Diese Variable muss am Ende als letztes auf TRUE gesetzt werden, da mittels // des Werts dieser Variable das vollstaendige Laden der sys_menuinfo_client.php ueberprueft // werden kann. switchMenuInfoClientExists = true // AE 13.09.2002: Tom -- Ende // // end of sys_menuinfo_client.php //