home *** CD-ROM | disk | FTP | other *** search
- public class BBSComp extends ComponentApp {
- DAssetManager cam;
- DDrawPicture cdp;
- int idScript;
- String codeBase;
- String Subdirectory = "bbs";
- String Title = "NetObjects BBS";
- String UnixWindows = "Windows";
- String PerlPath = "/bin/perl";
- String cgiBin = "bbs/cgi-bin";
- static int onlyYou;
- int onlyYouInvalid;
- static final int MAXASSET = 50;
- boolean published;
- int[] assetControl;
- int assetCount;
- int tAssetCount;
-
- private String getMacRelativeToRoot(String var1) {
- String var2 = new String("::");
- int var3 = var1.length();
- if (var3 == 0) {
- return null;
- } else {
- String var4 = var1.substring(var3 - 1, var3);
- if (var4.compareTo("/") == 0) {
- var1 = var1.substring(0, var3 - 1);
- var3 = var1.length();
- }
-
- for(int var5 = 0; var5 < var3; ++var5) {
- if (var1.substring(var5, var5 + 1).compareTo(":") == 0) {
- var2 = var2 + ":";
- }
- }
-
- return var2;
- }
- }
-
- protected void createNTConfig() {
- DFile var1 = new DFile();
- DFile var2 = new DFile();
- String var3 = var1.GetPathChar();
- String var4 = this.codeBase;
- String var5 = this.getRelativeToRoot(this.cgiBin, '/');
- String var6 = "";
-
- for(int var7 = 0; var7 < var5.length(); ++var7) {
- String var8 = var5.substring(var7, var7 + 1);
- if (var8.compareTo("/") == 0) {
- var6 = var6 + "\\";
- } else {
- var6 = var6 + var8;
- }
- }
-
- var6 = var6 + "\\" + this.Subdirectory + "\n";
- int var12 = this.cgiBin.length();
- if (this.cgiBin.substring(var12 - 1, var12).compareTo("/") == 0) {
- var6 = var6 + this.getRelativeToRoot(this.Subdirectory + "/message", '/') + "/" + this.cgiBin;
- } else {
- var6 = var6 + this.getRelativeToRoot(this.Subdirectory + "/message", '/') + "/" + this.cgiBin + "/";
- }
-
- var2.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "bbs_NT.cfg", 4097);
- var2.WriteString(var6, -1);
- var2.Close();
- }
-
- protected void generateSuccessHTML(String var1, String var2) {
- String var3 = "";
- String var4 = this.getRelativeToRoot(var1, '/');
- DFile var5 = new DFile();
- var3 = var3 + "<html>\n";
- var3 = var3 + "<!--META HTTP-EQUIV=\"Expires\" CONTENT=\"Wed, 29 Sep 1993 23:59:00 GMT\"-->\n";
- var3 = var3 + " <head>\n";
- var3 = var3 + " <title>success</title>\n";
- var3 = var3 + " </head>\n";
- var3 = var3 + " <body bgcolor=\"#FFFFFF\">\n";
- var3 = var3 + "<font size=\"2\" face=\"Arial,Helvetica\">Successful submission</font> \n";
- var3 = var3 + " <font color=#000000\"><a href =\"####HOME-LOCATION####\" TARGET=_parent>Reload</a></font>\n";
- var3 = var3 + " <hr>\n";
- var3 = var3 + "<script language=JavaScript>\n";
- var3 = var3 + "<!--\n";
- var3 = var3 + "parent.frames['raw'].open(\"" + var4 + "/" + this.Subdirectory + "/message/bbs-data.html\",\"raw\");\n";
- var3 = var3 + "parent.frames['message'].open(\"" + var4 + "/" + this.Subdirectory + "/bbs-message.html\",\"message\");\n";
- var3 = var3 + "//-->\n";
- var3 = var3 + "</script>\n";
- var3 = var3 + " </body>\n";
- var3 = var3 + "</html>\n";
- var5.Open(this.codeBase + "bbs" + var2 + "cgi-bin" + var2 + "success.html", 4097);
- var5.WriteString(var3, -1);
- var5.Close();
- }
-
- private String escapeSequence(String var1) {
- int var2 = var1.length();
- String var3 = new String();
-
- for(int var4 = 0; var4 < var2; ++var4) {
- String var5 = var1.substring(var4, var4 + 1);
- if (var5.compareTo("\"") != 0 && var5.compareTo("\\") != 0) {
- if (var5.compareTo("'") == 0) {
- var5 = "_";
- }
- } else {
- var5 = "\\" + var5;
- }
-
- var3 = var3 + var5;
- }
-
- return var3;
- }
-
- public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
- if (var3 == 1) {
- if (var1.compareTo("Subdirectory") == 0) {
- return this.Subdirectory;
- }
-
- if (var1.compareTo("Page Title") == 0) {
- return this.Title;
- }
-
- if (var1.compareTo("Publish to") == 0) {
- if (this.UnixWindows == null) {
- this.UnixWindows = "Windows";
- }
-
- if (this.UnixWindows.compareTo("Windows") == 0) {
- return "0";
- }
-
- if (this.UnixWindows.compareTo("Unix") == 0) {
- return "1";
- }
-
- if (this.UnixWindows.compareTo("Mac") == 0) {
- return "2";
- }
- } else {
- if (var1.compareTo("Perl Path for Unix") == 0) {
- return this.PerlPath;
- }
-
- if (var1.compareTo("CGI-bin Directory") == 0) {
- if (this.cgiBin == null) {
- this.cgiBin = "bbs/cgi-bin";
- }
-
- return this.cgiBin;
- }
- }
- } else if (var1.compareTo("Subdirectory") == 0) {
- this.Subdirectory = var2;
- } else if (var1.compareTo("Page Title") == 0) {
- this.Title = var2;
- } else if (var1.compareTo("Publish to") == 0) {
- if (var2.compareTo("0") == 0) {
- this.UnixWindows = "Windows";
- } else if (var2.compareTo("1") == 0) {
- this.UnixWindows = "Unix";
- } else {
- this.UnixWindows = "Mac";
- }
- } else if (var1.compareTo("Perl Path for Unix") == 0) {
- this.PerlPath = var2;
- } else if (var1.compareTo("CGI-bin Directory") == 0) {
- this.cgiBin = var2;
- }
-
- return "";
- }
-
- protected void createMacConfig() {
- DFile var1 = new DFile();
- DFile var2 = new DFile();
- String var3 = var1.GetPathChar();
- String var4 = this.codeBase;
- String var5 = this.getMacRelativeToRoot(this.Unix2MacPath(this.cgiBin)) + this.Subdirectory;
- String var6 = this.getRelativeToRoot(this.cgiBin, '/') + "/" + this.Subdirectory;
- var2.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "config", 4097);
- var2.WriteString("#!" + this.PerlPath + "\n", -1);
- var2.WriteString("##################################\n", -1);
- var2.WriteString("###CONFIGURATION##################\n", -1);
- var2.WriteString("##################################\n", -1);
- var2.WriteString("$BBS_HOME=$path.'" + var5 + "';\n", -1);
- var2.WriteString("$UNIX_BBS_HOME='" + var6 + "';\n", -1);
- var2.WriteString("$HTML_DIR=$BBS_HOME.':html';\n", -1);
- var2.WriteString("$UNIX_HTML_DIR=$BBS_HOME.'/html';\n", -1);
- var2.WriteString("$ERROR='error.html';\n", -1);
- var2.WriteString("$ERROR_CHAR='error-char.html';\n", -1);
- var2.WriteString("$SUCCESS='success.html';\n", -1);
- var2.WriteString("# This directory should be \"server\" readable/writeable/executable only.\n", -1);
- var2.WriteString("$STORAGE_DIR= '" + this.getMacRelativeToRoot(this.Unix2MacPath(this.cgiBin)) + this.Subdirectory + ":message';\n", -1);
- var2.WriteString("$IMAGE_DIR= '::image';\n", -1);
- var2.WriteString("$UNIX_IMAGE_DIR= '../image';\n", -1);
- var2.WriteString("$MESSAGE_TO_CGIBIN='" + this.getMacRelativeToRoot(this.Subdirectory + ":message") + this.Unix2MacPath(this.cgiBin) + "';\n", -1);
- var2.WriteString("$UNIX_MESSAGE_TO_CGIBIN='" + this.getRelativeToRoot(this.Subdirectory + "/message", '/') + "/" + this.cgiBin + "';\n", -1);
- var2.WriteString("$CGIBIN_DIR=$path.'::cgi-bin';\n", -1);
- var2.WriteString("# The files below should be world readable/writable only.\n", -1);
- var2.WriteString("$ERROR_COLLECT='error-collect.txt';\n", -1);
- var2.WriteString("$SUCCESS_COLLECT='bbs-data.html';\n", -1);
- var2.WriteString("$TOKEN_FILE ='counter';\n", -1);
- var2.WriteString("$THREAD_TOKEN ='thread_counter';\n", -1);
- var2.WriteString("# if your system does not support the flock() function, comment this out, or set it to 0.\n", -1);
- var2.WriteString("# the latest edition of NT Perl, as well as all unix perl should have flock build in.\n", -1);
- var2.WriteString("$flock_exists = 0;\n", -1);
- var2.WriteString("$ERROR = $HTML_DIR.':'.$ERROR;\n", -1);
- var2.WriteString("$ERROR_CHAR = $HTML_DIR.':'.$ERROR_CHAR;\n", -1);
- var2.WriteString("$SUCCESS = $HTML_DIR.':'.$SUCCESS;\n", -1);
- var2.WriteString("$TMP = $STORAGE_DIR.':'.($$).\".tmp\";\n", -1);
- var2.WriteString("$ERROR_COLLECT = $STORAGE_DIR.':'.$ERROR_COLLECT;\n", -1);
- var2.WriteString("$INDEX_FILE = $STORAGE_DIR.':'.$SUCCESS_COLLECT;\n", -1);
- var2.WriteString("$TOKEN_FILE = $STORAGE_DIR.':'.$TOKEN_FILE;\n", -1);
- var2.WriteString("$THREAD_TOKEN = $STORAGE_DIR.':'.$THREAD_TOKEN;\n", -1);
- var2.Close();
- }
-
- public void onCopy() {
- this.Subdirectory = new String(this.Subdirectory);
- this.Title = new String(this.Title);
- this.PerlPath = new String(this.PerlPath);
- this.codeBase = new String(this.codeBase);
- this.cam.CopyAsset(this.idScript);
- int[] var1 = new int[50];
-
- for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
- this.cam.CopyAsset(this.assetControl[this.tAssetCount]);
- var1[this.tAssetCount] = this.assetControl[this.tAssetCount];
- }
-
- this.assetControl = var1;
- }
-
- private String getJavaScript(String var1) {
- return "function newCookie(name, value){\ndocument.cookie = name + \"=\" + value + \"; path=/; domain=\" + location.hostname + \";\"; \n}\nfunction launchBBS(URL,Title){\n var direct = location.pathname; \n if((location.pathname.lastIndexOf(\"/\") + 1) == location.pathname.length){\t\n\t direct = location.pathname;\t \n\t }\t \n else{\t\n direct = location.pathname.substring(0,location.pathname.lastIndexOf(\"/\")) + \"/\";\t \n\t }\n if (direct.substring(direct.length - 5, direct.length - 1) == \"html\"){\n direct = direct.substring(0, direct.length - 6) + \"/\";\n } \n" + "if (location.port.length == 0){\n\tNURL= location.protocol+\"//\" + location.hostname + direct + URL + \"/\";\n }\n\t else {\n NURL= location.protocol+\"//\" + location.hostname + \":\" + location.port + direct + URL + \"/\";\n\t} \n window.open('" + var1 + "','netobjects_bbs','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=800,height=600');\n if (navigator.appVersion.indexOf(\"(X11\") != -1 ||\n navigator.appVersion.indexOf(\"(Mac\") != -1)\n newWin = window.open('" + var1 + "','netobjects_bbs');\nnewCookie(\"URL\",NURL);\nnewCookie(\"Title\",Title);\nnewCookie(\"CgiURL\",\"" + this.getRelativeToRoot("bbs", '/') + "/" + this.cgiBin + "\");\nnewCookie(\"GifURL\",NURL+\"image/webforum.gif\");\n} \n";
- }
-
- private String getRelativeToRoot(String var1, char var2) {
- String var3 = new String("..");
- int var4 = var1.length();
- if (var4 == 0) {
- return null;
- } else {
- String var5 = var1.substring(var4 - 1, var4);
- if (var5.compareTo("/") == 0) {
- var1 = var1.substring(0, var4 - 1);
- var4 = var1.length();
- }
-
- for(int var6 = 0; var6 < var4; ++var6) {
- if (var1.substring(var6, var6 + 1).compareTo("/") == 0) {
- var3 = var3 + "/..";
- }
- }
-
- return var3;
- }
- }
-
- public String onInstall(DAssetManager var1, String var2) {
- this.cam = var1;
- this.codeBase = var2;
- return "Message Board";
- }
-
- protected void finalize() {
- this.cam.RemoveAsset(this.idScript);
- if (this.published) {
- for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
- this.cam.RemoveAsset(this.assetControl[this.assetCount]);
- }
- }
-
- if (this.onlyYouInvalid == 0) {
- onlyYou = 0;
- }
-
- }
-
- public void onPublish(DAssetManager var1, int var2) {
- this.cam = var1;
- int var3 = 0;
- int[] var4 = new int[50];
- String var5 = this.Title;
- this.Title = this.escapeSequence(this.Title);
- this.cdp.setHTMLBefore("<a href=\"JavaScript:launchBBS('" + this.Subdirectory + "','" + this.Title + "')\" target=\"_self\" >");
- this.cdp.setHTMLAfter("</a>");
- this.codeBase = this.cdp.getCodeBase();
- String var7 = this.codeBase;
- DFile var8 = new DFile();
- String var6 = var8.GetPathChar();
- if (this.cgiBin == null) {
- this.cgiBin = "bbs/cgi-bin";
- }
-
- if (this.published) {
- for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
- var4[this.assetCount] = this.assetControl[this.assetCount];
- }
- }
-
- this.assetCount = 0;
- this.published = true;
- this.OnDropOK();
- this.assetControl[this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "bbs-control.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "bbs-message.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "blank.html", "HTML\u0000", this.Subdirectory);
- var3 = this.cam.AddAsset(var7 + "bbs" + var6 + "index.html", "HTML\u0000", this.Subdirectory);
- this.assetControl[++this.assetCount] = var3;
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "dot24_clear.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "background.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "clear.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "expand.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "listby.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "newmessage.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "next.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "previous.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "reload.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "image" + var6 + "reply.gif", "Image\u0000", this.Subdirectory + var6 + "image");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "html" + var6 + "error-char.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "html" + var6 + "error.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "html" + var6 + "url-only-char.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "html" + var6 + "urlreply.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "message" + var6 + "bbs-data.original", "HTML\u0000", this.Subdirectory + var6 + "message");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "message" + var6 + "zero.counter", "HTML\u0000", this.Subdirectory + var6 + "message");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(this.Subdirectory + "" + var6 + "message" + var6 + "", "SubDir\u0000", "");
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 455);
- this.idScript = this.cam.AddAsset("bbs_script_layout", "Java Script\u0000", "");
- String var9 = var1.GetAssetRelativeLocation(var3, var2, 0);
- var1.InsertScript("bbs_script_layout", this.getJavaScript(var9));
- if (this.UnixWindows.compareTo("Windows") == 0) {
- this.createNTConfig();
- this.generateSuccessHTML(this.cgiBin, var6);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "success.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin-NT" + var6 + "bbs-submit.cgi", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin-NT" + var6 + "submit-bbs-form.cgi", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin-NT" + var6 + "Buf.dll", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "bbs_NT.cfg", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- } else if (this.UnixWindows.compareTo("Mac") == 0) {
- this.createMacConfig();
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin-mac" + var6 + "bbs-submit.bin", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin-mac" + var6 + "submit-bbs-form.bin", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "config", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.generateSuccessHTML(this.cgiBin, var6);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "success.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- } else if (this.UnixWindows.compareTo("Unix") == 0) {
- DFile var10 = new DFile();
- DFile var11 = new DFile();
- this.createUnixConfig();
- var11.Open(var7 + "bbs" + var6 + "cgi-bin-Unix" + var6 + "submit-bbs-form.cgi", 0);
- var10.Open(var7 + "bbs" + var6 + "cgi-bin" + var6 + "submit-bbs-form.cgi", 4097);
- var10.WriteString("#!" + this.PerlPath + "\n\n", -1);
- var10.WriteString(var11.ReadString(20000), -1);
- var10.Close();
- var11.Close();
- var11.Open(var7 + "bbs" + var6 + "cgi-bin-Unix" + var6 + "bbs-submit.cgi", 0);
- var10.Open(var7 + "bbs" + var6 + "cgi-bin" + var6 + "bbs-submit.cgi", 4097);
- var10.WriteString("#!" + this.PerlPath + "\n", -1);
- var10.WriteString(var11.ReadString(20000), -1);
- var10.Close();
- var11.Close();
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "bbs-submit.cgi", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "config", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "submit-bbs-form.cgi", "CGI\u0000", this.cgiBin);
- this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
- this.generateSuccessHTML(this.cgiBin, var6);
- this.assetControl[++this.assetCount] = this.cam.AddAsset(var7 + "bbs" + var6 + "cgi-bin" + var6 + "success.html", "HTML\u0000", this.Subdirectory + var6 + "html");
- }
-
- this.Title = var5;
-
- for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
- this.cam.RemoveAsset(var4[this.assetCount]);
- }
-
- }
-
- void OnDropOK() {
- onlyYou = 1;
- }
-
- public void onDrop(IDLayout var1, IDRect var2, int var3) {
- if (var3 == 1) {
- if (this.CheckTwoInstancesError()) {
- return;
- }
-
- this.assetControl = new int[50];
- int var4 = 0;
-
- do {
- this.assetControl[var4] = 0;
- ++var4;
- } while(var4 < 50);
-
- this.cdp = new DDrawPicture();
- this.codeBase = this.cdp.getCodeBase();
- String var8 = this.codeBase;
- DImage var5 = new DImage();
- var5.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
- IDSize var6 = var5.getSize();
- this.cdp.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
- this.cdp.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getLeft() + var6.getWidth(), var2.getTop() + var6.getHeight());
- this.cdp.setStretch(1);
- var1.AddObject(this.cdp);
- } else if (var3 == 3 && this.CheckTwoInstancesError()) {
- return;
- }
-
- }
-
- public void onInspect(CStringArray var1, CStringArray var2) {
- if (this.onlyYouInvalid != 1) {
- var1.Set("Subdirectory");
- var2.Set("String\u0000");
- var1.Set("Page Title");
- var2.Set("String\u0000");
- var1.Set("Publish to");
- var2.Set("Set(Windows|Unix|Mac)");
- var1.Set("Perl Path for Unix");
- var2.Set("String\u0000");
- var1.Set("CGI-bin Directory");
- var2.Set("String\u0000");
- }
- }
-
- protected void createUnixConfig() {
- DFile var1 = new DFile();
- DFile var2 = new DFile();
- String var3 = var1.GetPathChar();
- String var4 = this.codeBase;
- String var5 = this.getRelativeToRoot(this.cgiBin, '/') + "/" + this.Subdirectory;
- var2.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "config", 4097);
- var2.WriteString("#!" + this.PerlPath + "\n", -1);
- var2.WriteString("##################################\n", -1);
- var2.WriteString("###CONFIGURATION##################\n", -1);
- var2.WriteString("##################################\n", -1);
- var2.WriteString("$BBS_HOME=$path.'" + var5 + "';\n", -1);
- var2.WriteString("$HTML_DIR=$BBS_HOME.'/html';\n", -1);
- var2.WriteString("$ERROR='error.html';\n", -1);
- var2.WriteString("$ERROR_CHAR='error-char.html';\n", -1);
- var2.WriteString("$SUCCESS='success.html';\n", -1);
- var2.WriteString("# This directory should be \"server\" readable/writeable/executable only.\n", -1);
- var2.WriteString("$CGI_BIN_DEBUG='" + this.cgiBin + "';\n", -1);
- var2.WriteString("$STORAGE_DIR= $path.'" + this.getRelativeToRoot(this.cgiBin, '/') + "/" + this.Subdirectory + "/message';\n", -1);
- var2.WriteString("$IMAGE_DIR= '../image';\n", -1);
- var2.WriteString("$MESSAGE_TO_CGIBIN=$path.'" + this.getRelativeToRoot(this.Subdirectory + "/message", '/') + "/" + this.cgiBin + "';\n", -1);
- var2.WriteString("$CGIBIN_DIR=$path.'../cgi-bin';\n", -1);
- var2.WriteString("# The files below should be world readable/writable only.\n", -1);
- var2.WriteString("$ERROR_COLLECT='error-collect.txt';\n", -1);
- var2.WriteString("$SUCCESS_COLLECT='bbs-data.html';\n", -1);
- var2.WriteString("$TOKEN_FILE ='counter';\n", -1);
- var2.WriteString("$THREAD_TOKEN ='thread_counter';\n", -1);
- var2.WriteString("# if your system does not support the flock() function, comment this out, or set it to 0.\n", -1);
- var2.WriteString("# the latest edition of NT Perl, as well as all unix perl should have flock build in.\n", -1);
- var2.WriteString("$flock_exists = 0;\n", -1);
- var2.WriteString("$ERROR = $HTML_DIR.'/'.$ERROR;\n", -1);
- var2.WriteString("$ERROR_CHAR = $HTML_DIR.'/'.$ERROR_CHAR;\n", -1);
- var2.WriteString("$SUCCESS = $HTML_DIR.'/'.$SUCCESS;\n", -1);
- var2.WriteString("$TMP = $STORAGE_DIR.'/'.($$).\".tmp\";\n", -1);
- var2.WriteString("$ERROR_COLLECT = $STORAGE_DIR.'/'.$ERROR_COLLECT;\n", -1);
- var2.WriteString("$INDEX_FILE = $STORAGE_DIR.'/'.$SUCCESS_COLLECT;\n", -1);
- var2.WriteString("$TOKEN_FILE = $STORAGE_DIR.'/'.$TOKEN_FILE;\n", -1);
- var2.WriteString("$THREAD_TOKEN = $STORAGE_DIR.'/'.$THREAD_TOKEN;\n", -1);
- var2.Close();
- }
-
- protected String Unix2MacPath(String var1) {
- String var2 = "";
- String var3 = "";
- byte var4 = 0;
- if (var1.length() >= 2 && var1.substring(0, 2).compareTo("./") == 0) {
- var1 = var1.substring(2, var1.length());
- }
-
- if (var1.substring(0, 1) == "/") {
- var1 = var1.substring(1, var1.length());
- }
-
- for(int var5 = 0; var5 < var1.length(); ++var5) {
- var3 = var1.substring(var5, var5 + 1);
- if (var3.compareTo(".") == 0) {
- if (var4 == 0) {
- var4 = 1;
- } else if (var4 == 1) {
- var4 = 2;
- }
- } else if (var3.compareTo("/") == 0) {
- if (var4 == 2 || var4 == 0) {
- var2 = var2 + ":";
- var4 = 0;
- }
- } else {
- var2 = var2 + var3;
- }
- }
-
- if (var2.substring(0, 1).compareTo(".") == 0) {
- var2 = ":" + var2;
- }
-
- return var2;
- }
-
- boolean CheckTwoInstancesError() {
- if (onlyYou == 1) {
- DMessageBox var1 = new DMessageBox();
- var1.Warnning("Only one BBS Component is allowed per NOD file. Please delete the extra BBS Components.");
- this.onlyYouInvalid = 1;
- return true;
- } else {
- return false;
- }
- }
- }
-