home *** CD-ROM | disk | FTP | other *** search
- // Web-based heitml Configuration/Administration assistant
- // Author: Claus-Thomas Buhl
- // Created: Wed Jun 25, 1997
- // Last Update: Thu Jul 25, 1997
- // Version: 1.29
- //
- // Remark: In the configuration file for this program, parameter secure must be set to F.
-
- <include std.hei>
- <if !SrvDebug> You do not have debugging permission.
- <return>
- </if>
-
- // Auxiliary string functions
-
- <def stringlist2tuple s>
- <let t=emptytuple; j = 0>
- <let i = 0>
- <while i < len(s)>
- <if asc(s[i]) == 10 || asc(s[i]) == 13;
- s1 = substring(s, j, i);
- if s1 != "";
- t[s1] = s1;
- /if;
- j = i + 1;
- /if;
- i=i+1;
- /while;
- return t;
- /def>
-
- // Auxiliary I/O functions
-
- <def filepath f;
- while f != "" && f[len(f)-1] == "\\";f=left(f,len(f)-1);/while;
- while f != "" && f[len(f)-1] != "\\"
- && f[len(f)-1] != ":";
- f=left(f,len(f)-1);
- /while;
- return f;
- /def>
-
- <def directorywithshell d=filepath(filepath(SrvFileName)) + "my" p="">
- <assign dirout;
- if contains(SrvOs, "WINNT");
- shell>cmd /C dir /ON /B <? p> "<? d>"</shell;
- /if;
- if contains(SrvOs, "WIN95");
- shell>command.com /C dir /ON /B <? p> "<? d>"</shell;
- /if;
- /assign>
- <return stringlist2tuple(dirout)>
- </def>
-
- <def fileexists d=filepath(filepath(SrvFileName)) + "my" f;
- t=directory(d);
- return isdecl(t[f]);
- /def;
-
- def listdirectories d=filepath(filepath(SrvFileName)) + "my">
- <let d1=d>
- <while d1 != "" && d1[len(d1)-1] == "\\";d1=left(d1,len(d1)-1);/while>
- <let dateiname=right(d1, "\\");
- if dateiname == d1;
- let dateiname=right(d1, ":");
- /if;
- > <table cellspacing=3 cellpadding=3> <
- if dateiname != "";
- let pfad = filepath (d1)>
- <tr><td colspan=4>
- <a href ="admin.hei?dir=<? pfad furl>">..</a></td></tr>
- </if>
- <let t=directory(d, "BD"); TuFieldSort(t)>
- <let i = 0; if (len(t) % 4) != 0; p = len(t) / 4 + 1;else;p = len(t) / 4;/if;
- while i < p>
- <tr>
- <let q=0;
- while q < 4 >
- <td><a href="admin.hei?dir=<? d furl><if right(d,1) != "\\"; ? "\\" furl></if>< ? fname(t[i+q*p]) furl>"><? fname(t[i+q*p])></a></td>
- <let q = q + 1;
- /while>
- </tr>
- <let i = i + 1;
- /while>
- </table>
- </def>
-
- <def help>
- Before you do any configuration changes, you may want to read
- <ul>
- <li>the documentation about <a href="../docs/TContion.htm">Configuration
- in general</a>
- or
- <li>the documentation of each
- <a href="../docs/TConence.htm">Configuration option</a>.<br>
- </ul>
- </def>
-
- <def goback>
- You may also want to go back to the <a href="../tutor/index.hei">home page</a>.
- </def>
-
- <HTML>
- <BODY bgcolor=#FFFFFF link="0000ff" vlink="0000ff" alink="0000ff">
- <
-
- if !isdecl(ff.dir);
- ff.dir = filepath(filepath(SrvFileName)) + "my";
- /if
-
- while ff.dir[len(ff.dir)-1]=="\\"; ff.dir=left(ff.dir,len(ff.dir)-1); /while;
-
- if isdecl(ff.action);
- if ff.action == "Write configuration">
- // <TITLE>Write configuration of <ff dir></TITLE>
- // <h1>Write configuration of <ff dir></h1>
-
- <if !isdecl(ff.ini.allowWrite);ff.ini.allowWrite=false;/if>
- <if !isdecl(ff.ini.optimizeConnect);ff.ini.optimizeConnect=false;/if>
- <if !isdecl(ff.ini.allowAccess);ff.ini.allowAccess=false;/if>
- <if !isdecl(ff.ini.allowOverride);ff.ini.allowOverride=false;/if>
- <if !isdecl(ff.ini.linksAllowed);ff.ini.linksAllowed=false;/if>
- <if !isdecl(ff.ini.sessionIpCheck);ff.ini.sessionIpCheck=false;/if>
- <if !isdecl(ff.ini.secure);ff.ini.secure=false;/if>
- <if !isdecl(ff.ini.germanchar);ff.ini.germanchar=false;/if>
- <if !isdecl(ff.ini.autocommit);ff.ini.autocommit=false;/if>
-
- <if writeini(ff.ini) == 0>
- // Configuration has been written.<br>
- <else>
- Error while writing configuration.<br>
- </if>
- </if>
-
- <if ff.action == "Delete session files">
- <let filesdel = sessioniDelete(ff.ini.sessionDir, "heises.*", Integer(ff.hours))>
- <if filesdel < 0;
- ? "Error "+filesdel+" during deletion session files";
- else;
- ? filesdel + " session files deleted";
-
- /if>
- </if>
- <p>
-
- // <a href="admin.hei?dir=<? ff.dir furl>">View contents of <ff dir></a><br>
- // <br>
- // <goback>
- </if>
- <TITLE>heitml Configuration Assistant</TITLE>
- // <h1>heitml Configuration Assistant</h1>
-
- // <help>
- // <goback>
- // <hr>
-
- // <h2>Current Directory: <ff dir></h2>
- // <font size=+2>Please Select Directory</font>
-
- <form action=<? SrvLocalUrl>>
- <table border bgcolor="c0c0c0"><tr>
- <td><b>Select Directory: <?ff.dir></td></tr><tr><td>
- <listdirectories ff.dir>
- </td></tr><tr><td>
- <input type="submit" name="Go To" value="Go To">
- <input type="text" name="dir" value="<? ff.dir>" size=70>
- </table>
- </form>
-
- <if fileexists(ff.dir, 'heitml.ini')>
- <let ini=readini(ff.dir+'\\heitml.ini')>
- <let dsn=readodbcdsn()>
- <let drv=readodbcdrv()>
- <p>
- <if !isdecl(ff.tab);
- ff.tab = "Database";
- /if>
- /*
- // Display name of config file
-
- <table border>
- <tr>
- <td>< ? ini[0]></td>
- </tr>
- </table>
- */
- // Display the menu tabs
-
- <let menutab = emptytuple>
- <let menutab.database = "Database">
- <let menutab.debugging = "Debugging">
- <let menutab.mail = "Mail">
- <let menutab.security = "Security">
- <let menutab.programming = "Programming">
-
- <if ff.tab == "Database">
- <let menutab.database = "<b>Database</b>">
- </if>
- <if ff.tab == "Debugging">
- <let menutab.debugging = "<b>Debugging</b>">
- </if>
- <if ff.tab == "Mail">
- <let menutab.mail = "<b>Mail</b>">
- </if>
- <if ff.tab == "Security">
- <let menutab.security = "<b>Security</b>">
- </if>
- <if ff.tab == "Programming">
- <let menutab.programming= "<b>Programming</b>">
- </if>
-
- <form href="admin.hei">
- <br>
- <table border><tr>
- <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Database">< ? menutab.database html></a>
- <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Debugging">< ? menutab.debugging html></a>
- <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Mail">< ? menutab.mail html></a>
- <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Security">< ? menutab.security html></a>
- <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Programming">< ? menutab.programming html></a>
- </tr>
- <input type="hidden" name="dir" value="<ff dir>">
- <input type="hidden" name="tab" value="<ff tab>">
- <input type="hidden" name="ini.<? fname(ini[0])>" value="<? ini[0]>">
-
-
- <tr>
- <td><b>Parameter</b></td>
- <td colspan=4><b>Value</b></td>
- </tr>
- <let p = 1>
- <while p < len(ini)>
-
- // Show attributes for choosen menutab
-
- <let type="hidden">
- <if ff.tab == "Database">
- <if fname(ini[p]) == "user" ||
- fname(ini[p]) == "datasource" ||
- fname(ini[p]) == "allowWrite" ||
- // fname(ini[p]) == "optimizeConnect" ||
- fname(ini[p]) == "autocommit" ||
- fname(ini[p]) == "isolation">
- <let type = "text">
- </if>
- <if fname(ini[p]) == "passwd">
- <let type = "password">
- </if>
- <if fname(ini[p]) == "allowWrite" ||
- // fname(ini[p]) == "optimizeConnect" ||
- fname(ini[p]) == "autocommit">
- <let type = "checkbox">
- </if>
- </if>
- <if ff.tab == "Debugging">
- <if fname(ini[p]) == "debugDir" ||
- fname(ini[p]) == "debugIp" ||
- fname(ini[p]) == "debugUser" ||
- fname(ini[p]) == "admin" ||
- fname(ini[p]) == "errorlog">
- <let type = "text">
- </if>
- </if>
- <if ff.tab == "Mail">
- <if fname(ini[p]) == "mailservice" ||
- fname(ini[p]) == "mailprofile" ||
- fname(ini[p]) == "mailpassword">
- <let type = "text">
- </if>
- </if>
- <if ff.tab == "Security">
- <if fname(ini[p]) == "allowAccess" ||
- // fname(ini[p]) == "allowOverride" ||
- // fname(ini[p]) == "linksAllowed" ||
- fname(ini[p]) == "secure">
- <let type = "checkbox">
- </if>
- </if>
- <if ff.tab == "Programming">
- <if fname(ini[p]) == "includePath" ||
- fname(ini[p]) == "memlimit" ||
- // fname(ini[p]) == "timelimit" ||
- fname(ini[p]) == "sessionDir" ||
- fname(ini[p]) == "shelltemp">
- <let type = "text">
- </if>
- <if fname(ini[p]) == "sessionIpCheck" ||
- fname(ini[p]) == "germanchar" >
- <let type = "checkbox">
- </if>
- </if>
-
- <if type != "hidden">
- <tr>
- <td><? fname(ini[p])></td>
- <td colspan=4>
- </if>
-
- // String values with selection
-
- <if fname(ini[p]) == "datasource">
- <if type != "hidden">
- <select name="ini.<? fname(ini[p])>">
- <let i = 1>
- <while i <= len(dsn)>
- <option value="<? dsn[i - 1]>" <if ini.datasource == dsn[i - 1];? "SELECTED";/if> ><? dsn[i - 1]>
- <let i = i + 1>
- </while>
- </select>
- <else>
- <input type="hidden" name="ini.<? fname(ini[p])>" value="<? ini.datasource>">
- </if>
- </if>
-
- <if fname(ini[p]) == "isolation">
- <if type != "hidden">
- <select name="ini.<? fname(ini[p])>">
- <option value="DEFAULT" <if ini.isolation == "DEFAULT";? "SELECTED";/if> >DEFAULT
- <option value="READ_UNCOMMITTED" <if ini.isolation == "READ_UNCOMMITTED";? "SELECTED";/if> >READ_UNCOMMITTED
- <option value="READ_COMMITTED" <if ini.isolation == "READ_COMMITTED";? "SELECTED";/if> >READ_COMMITTED
- <option value="REPEATABLE_READ" <if ini.isolation == "REPEATABLE_READ";? "SELECTED";/if> >REPEATABLE_READ
- <option value="SERIALIZABLE" <if ini.isolation == "SERIALIZABLE";? "SELECTED";/if> >SERIALIZABLE
- <option value="VERSIONING" <if ini.isolation == "VERSIONING";? "SELECTED";/if> >VERSIONING
- </select>
- <else>
- <input type="hidden" name="ini.<? fname(ini[p])>" value="<? ini.isolation>">
- </if>
- </if>
-
- // String (text) values
-
- <if fname(ini[p]) == "user"
- || fname(ini[p]) == "includePath"
- || fname(ini[p]) == "key"
- || fname(ini[p]) == "sessionDir"
- || fname(ini[p]) == "debugDir"
- || fname(ini[p]) == "debugIp"
- || fname(ini[p]) == "debugUser"
- || fname(ini[p]) == "admin"
- || fname(ini[p]) == "errorlog"
- || fname(ini[p]) == "mailservice"
- || fname(ini[p]) == "mailprofile"
- || fname(ini[p]) == "mailpassword"
- || fname(ini[p]) == "shelltemp">
- <input type="<? type>" name="ini.<? fname(ini[p])>" value="<? ini[p]>" size="50">
- </if>
-
- // String (password) values
-
- <if fname(ini[p]) == "passwd">
- <input type="< ? type >" name="ini.<? fname(ini[p])>" value="<? ini[p]>">
- </if>
-
- // Integer values
-
- <if fname(ini[p]) == "memlimit" || fname(ini[p]) == "timelimit">
- <input type="<? type>" name="ini.<? fname(ini[p])>" value="<? ini[p]>">
- </if>
-
- // Boolean values
-
- <if fname(ini[p]) == "allowWrite"
- || fname(ini[p]) == "optimizeConnect"
- || fname(ini[p]) == "allowAccess"
- || fname(ini[p]) == "allowOverride"
- || fname(ini[p]) == "linksAllowed"
- || fname(ini[p]) == "sessionIpCheck"
- || fname(ini[p]) == "secure"
- || fname(ini[p]) == "germanchar"
- || fname(ini[p]) == "autocommit">
- <if type == "hidden">
- <input type="hidden" name="ini.<? fname(ini[p])>" value="<if ini[p];? "on";else;? "off";/if>">
- <else>
- <input type="checkbox" name="ini.<? fname(ini[p])>" <if ini[p]; ? "CHECKED";/if>>
- </if>
- </if>
-
- </td>
- <let p = p + 1>
- </tr>
- </while>
- </table>
-
- <p>
- <table><tr>
- <td><input type="submit" name="action" value="Write configuration">
- <td><table border bgcolor="c0c0c0"><tr><td>
- <a href="../docs/TContion.htm">Config Help</a>
- </table>
- <td><table border bgcolor="c0c0c0"><tr><td>
- <a href="../docs/TConence.htm">Option Help</a>
- </table>
- <td><table border bgcolor="c0c0c0"><tr><td>
- <a href="../tutor/index.hei">Home</a>
- </table>
- </table>
- <br>
- // <if ff.tab == "Programming">
- <hr>
- <br>
- <input type="submit" value="Delete session files" name="action">
- older than <input value="0" name="hours" size=3> hours.
- // </if>
- </form>
- <else>
- <form href="admin.hei">
- <input type="hidden" name="dir" value="<ff dir>">
- <input type="hidden" name="ini.config_file" value ="< ? ff.dir + "\\heitml.ini" >">
- <input type="hidden" name="ini.user" value ="heitml">
- <input type="hidden" name="ini.passwd" value ="heitml">
- <input type="hidden" name="ini.datasource" value ="< ? "heitml"+ substall(""+(SrvHeitmlVersion) * 10 / 10, "0", "") >">
- <input type="hidden" name="ini.allowWrite" value ="T">
- <input type="hidden" name="ini.includePath" value =".;< ? filepath(filepath(filepath(SrvFileName))) + "lib">">
- <input type="hidden" name="ini.allowAccess" value ="T">
- <input type="hidden" name="ini.debugIp" value ="localhost;127.0.0.1">
- <input type="hidden" name="ini.secure" value ="T">
- <input type="hidden" name="ini.sessionIpCheck" value ="T">
- <input type="hidden" name="ini.autocommit" value ="T">
- <input type="hidden" name="ini.sessionDir" value ="<? subst(SrvFileName,"htdocs\\admin\\admin.hei","temp")>">
- <input type="hidden" name="ini.shelltemp" value ="<? subst(SrvFileName,"htdocs\\admin\\admin.hei","temp")>">
- <if SrvOs == "WINNT">
- <input type="hidden" name="ini.mailprofile" value ="Windows Messaging Settings">
- </if>
- <if SrvOs == "WIN95">
- <input type="hidden" name="ini.mailprofile" value ="MS Exchange Settings">
- </if>
- <input type="submit" name="action" value="Write configuration">
- </form>
- <table border bgcolor="c0c0c0"><tr><td>
- <a href="../tutor/index.hei">Home</a>
- </table>
- </if> // filexists
- // </if>
- </BODY>
- </HTML>
-
-