home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1999 April / CD_Shareware_Magazine_31.iso / WIN95 / INTERNET / h12395co.exe / data.1 / admin.hei next >
Encoding:
Text File  |  1998-05-12  |  14.3 KB  |  436 lines

  1. // Web-based heitml Configuration/Administration assistant
  2. // Author: Claus-Thomas Buhl
  3. // Created: Wed Jun 25, 1997
  4. // Last Update: Thu Jul 25, 1997
  5. // Version: 1.29
  6. //
  7. // Remark: In the configuration file for this program, parameter secure must be set to F.
  8.  
  9. <include std.hei>
  10. <if !SrvDebug> You do not have debugging permission.
  11.   <return>
  12. </if>
  13.  
  14. // Auxiliary string functions
  15.  
  16. <def stringlist2tuple s>
  17.  <let t=emptytuple; j = 0>
  18.  <let i = 0>
  19.  <while i < len(s)>
  20.   <if asc(s[i]) == 10 || asc(s[i]) == 13;
  21.     s1 = substring(s, j, i);
  22.     if s1 != "";
  23.         t[s1] = s1;
  24.     /if;
  25.     j = i + 1;
  26.   /if;
  27.   i=i+1;
  28.  /while;
  29.  return t;
  30. /def>
  31.  
  32. // Auxiliary I/O functions
  33.  
  34. <def filepath f;
  35.     while f != "" && f[len(f)-1] == "\\";f=left(f,len(f)-1);/while;
  36.         while f != "" && f[len(f)-1] != "\\"
  37.                       && f[len(f)-1] != ":";
  38.                       f=left(f,len(f)-1);
  39.         /while;
  40.         return f;
  41. /def>
  42.  
  43. <def directorywithshell d=filepath(filepath(SrvFileName)) + "my" p="">
  44.     <assign dirout;
  45.     if contains(SrvOs, "WINNT");
  46.         shell>cmd /C dir /ON /B <? p> "<? d>"</shell;
  47.     /if;
  48.     if contains(SrvOs, "WIN95");
  49.         shell>command.com /C dir /ON /B <? p> "<? d>"</shell;
  50.     /if;
  51.     /assign>
  52.     <return stringlist2tuple(dirout)>
  53. </def>
  54.  
  55. <def fileexists d=filepath(filepath(SrvFileName)) + "my" f;
  56.         t=directory(d); 
  57.         return isdecl(t[f]);
  58. /def;
  59.  
  60. def listdirectories d=filepath(filepath(SrvFileName)) + "my">
  61.     <let d1=d>
  62.     <while d1 != "" && d1[len(d1)-1] == "\\";d1=left(d1,len(d1)-1);/while>
  63.     <let dateiname=right(d1, "\\");
  64.     if dateiname == d1;
  65.         let dateiname=right(d1, ":");
  66.     /if;
  67.         > <table cellspacing=3 cellpadding=3> <
  68.         if dateiname != "";
  69.         let pfad = filepath (d1)>
  70.         <tr><td colspan=4>
  71.         <a href ="admin.hei?dir=<? pfad furl>">..</a></td></tr>
  72.     </if>
  73.         <let t=directory(d, "BD"); TuFieldSort(t)>
  74.         <let i = 0; if (len(t) % 4) != 0; p = len(t) / 4 + 1;else;p = len(t) / 4;/if;
  75.     while i < p>
  76.         <tr>
  77.         <let q=0;
  78.               while q < 4 >
  79.                         <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>
  80.         <let q = q + 1;
  81.         /while>
  82.         </tr>
  83.         <let i = i + 1;
  84.     /while>
  85.     </table>
  86. </def>
  87.  
  88. <def help>
  89. Before you do any configuration changes, you may want to read 
  90. <ul>
  91. <li>the documentation about <a href="../docs/TContion.htm">Configuration
  92. in general</a>
  93. or 
  94. <li>the documentation of each
  95. <a href="../docs/TConence.htm">Configuration option</a>.<br>
  96. </ul>
  97. </def>
  98.  
  99. <def goback>
  100. You may also want to go back to the <a href="../tutor/index.hei">home page</a>.
  101. </def>
  102.  
  103. <HTML>
  104. <BODY bgcolor=#FFFFFF link="0000ff" vlink="0000ff" alink="0000ff">
  105. <
  106.  
  107. if !isdecl(ff.dir);
  108.     ff.dir = filepath(filepath(SrvFileName)) + "my";
  109. /if
  110.  
  111. while ff.dir[len(ff.dir)-1]=="\\"; ff.dir=left(ff.dir,len(ff.dir)-1); /while;
  112.  
  113. if isdecl(ff.action);
  114.         if ff.action == "Write configuration">
  115. //        <TITLE>Write configuration of <ff dir></TITLE>
  116. //        <h1>Write configuration of <ff dir></h1>
  117.  
  118.     <if !isdecl(ff.ini.allowWrite);ff.ini.allowWrite=false;/if>
  119.     <if !isdecl(ff.ini.optimizeConnect);ff.ini.optimizeConnect=false;/if>
  120.     <if !isdecl(ff.ini.allowAccess);ff.ini.allowAccess=false;/if>
  121.     <if !isdecl(ff.ini.allowOverride);ff.ini.allowOverride=false;/if>
  122.     <if !isdecl(ff.ini.linksAllowed);ff.ini.linksAllowed=false;/if>
  123.     <if !isdecl(ff.ini.sessionIpCheck);ff.ini.sessionIpCheck=false;/if>
  124.     <if !isdecl(ff.ini.secure);ff.ini.secure=false;/if>
  125.     <if !isdecl(ff.ini.germanchar);ff.ini.germanchar=false;/if>
  126.     <if !isdecl(ff.ini.autocommit);ff.ini.autocommit=false;/if>
  127.  
  128.     <if writeini(ff.ini) == 0>
  129.  //       Configuration has been written.<br>
  130.     <else>
  131.     Error while writing configuration.<br>
  132.     </if>
  133.     </if>
  134.  
  135.     <if ff.action == "Delete session files">
  136.         <let filesdel = sessioniDelete(ff.ini.sessionDir, "heises.*", Integer(ff.hours))>
  137.         <if filesdel < 0;
  138.             ? "Error "+filesdel+" during deletion session files";
  139.          else;
  140.             ? filesdel + " session files deleted";
  141.  
  142.         /if>
  143.     </if>
  144.     <p>
  145.  
  146. //        <a href="admin.hei?dir=<? ff.dir furl>">View contents of <ff dir></a><br>
  147. //        <br>
  148. //        <goback>
  149.    </if>
  150.     <TITLE>heitml Configuration Assistant</TITLE>
  151. //        <h1>heitml Configuration Assistant</h1>
  152.  
  153. //        <help>
  154. //        <goback>
  155. //        <hr>
  156.  
  157. //        <h2>Current Directory: <ff dir></h2>
  158. //        <font size=+2>Please Select Directory</font>
  159.  
  160.         <form action=<? SrvLocalUrl>>
  161.         <table border bgcolor="c0c0c0"><tr>
  162.         <td><b>Select Directory: <?ff.dir></td></tr><tr><td>
  163.     <listdirectories ff.dir>
  164.         </td></tr><tr><td>
  165.         <input type="submit" name="Go To" value="Go To">
  166.         <input type="text" name="dir" value="<? ff.dir>" size=70>
  167.         </table>
  168.         </form>
  169.  
  170.     <if fileexists(ff.dir, 'heitml.ini')>
  171.                 <let ini=readini(ff.dir+'\\heitml.ini')>
  172.         <let dsn=readodbcdsn()>
  173.         <let drv=readodbcdrv()>
  174.         <p>
  175.         <if !isdecl(ff.tab);
  176.             ff.tab = "Database";
  177.         /if>
  178.  /*
  179.         // Display name of config file
  180.  
  181.         <table border>
  182.         <tr>
  183.         <td>< ? ini[0]></td>
  184.         </tr>
  185.         </table>
  186. */
  187.         // Display the menu tabs
  188.  
  189.         <let menutab = emptytuple>
  190.         <let menutab.database = "Database">
  191.         <let menutab.debugging = "Debugging">
  192.         <let menutab.mail = "Mail"> 
  193.         <let menutab.security = "Security">
  194.         <let menutab.programming = "Programming">
  195.  
  196.         <if ff.tab == "Database">
  197.             <let menutab.database = "<b>Database</b>">
  198.         </if>
  199.         <if ff.tab == "Debugging">
  200.             <let menutab.debugging = "<b>Debugging</b>">
  201.         </if>
  202.         <if ff.tab == "Mail">
  203.             <let menutab.mail = "<b>Mail</b>">
  204.         </if>
  205.         <if ff.tab == "Security">
  206.             <let menutab.security = "<b>Security</b>">
  207.         </if>
  208.         <if ff.tab == "Programming">
  209.             <let menutab.programming= "<b>Programming</b>">
  210.         </if>
  211.  
  212.         <form href="admin.hei">
  213.         <br>
  214.                 <table border><tr>
  215.                 <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Database">< ? menutab.database html></a>
  216.                 <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Debugging">< ? menutab.debugging html></a>
  217.                 <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Mail">< ? menutab.mail html></a>
  218.                 <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Security">< ? menutab.security html></a>
  219.                 <td bgcolor="#ffa000"><a href="admin.hei?dir=<? ff.dir furl>&tab=Programming">< ? menutab.programming html></a>
  220.                 </tr>
  221.         <input type="hidden" name="dir" value="<ff dir>">
  222.         <input type="hidden" name="tab" value="<ff tab>">
  223.         <input type="hidden" name="ini.<? fname(ini[0])>" value="<? ini[0]>">
  224.  
  225.                 
  226.             <tr>
  227.             <td><b>Parameter</b></td>
  228.                         <td colspan=4><b>Value</b></td>
  229.             </tr>
  230.             <let p = 1>
  231.             <while p < len(ini)>
  232.  
  233.                 // Show attributes for choosen menutab
  234.  
  235.                 <let type="hidden">
  236.                 <if ff.tab == "Database">
  237.                     <if fname(ini[p]) == "user" ||
  238.                         fname(ini[p]) == "datasource" ||
  239.                                             fname(ini[p]) == "allowWrite" ||
  240. //                                            fname(ini[p]) == "optimizeConnect" ||
  241.                         fname(ini[p]) == "autocommit" ||
  242.                         fname(ini[p]) == "isolation">
  243.                         <let type = "text">
  244.                     </if>
  245.                     <if fname(ini[p]) == "passwd">
  246.                         <let type = "password">
  247.                     </if>
  248.                     <if fname(ini[p]) == "allowWrite" ||
  249. //                                            fname(ini[p]) == "optimizeConnect" ||
  250.                         fname(ini[p]) == "autocommit">
  251.                         <let type = "checkbox">
  252.                     </if>
  253.                 </if>
  254.                 <if ff.tab == "Debugging">
  255.                     <if fname(ini[p]) == "debugDir" ||
  256.                         fname(ini[p]) == "debugIp" ||
  257.                         fname(ini[p]) == "debugUser" ||
  258.                         fname(ini[p]) == "admin" ||
  259.                         fname(ini[p]) == "errorlog">
  260.                         <let type = "text">
  261.                     </if>
  262.                 </if>
  263.                 <if ff.tab == "Mail">
  264.                     <if fname(ini[p]) == "mailservice" ||
  265.                         fname(ini[p]) == "mailprofile" ||
  266.                         fname(ini[p]) == "mailpassword">
  267.                         <let type = "text">
  268.                     </if>
  269.                 </if>
  270.                 <if ff.tab == "Security">
  271.                     <if fname(ini[p]) == "allowAccess" ||
  272.                         // fname(ini[p]) == "allowOverride" ||
  273.                         // fname(ini[p]) == "linksAllowed" ||
  274.                         fname(ini[p]) == "secure">
  275.                         <let type = "checkbox">
  276.                     </if>
  277.                 </if>
  278.                 <if ff.tab == "Programming">
  279.                     <if fname(ini[p]) == "includePath" ||
  280.                         fname(ini[p]) == "memlimit" ||
  281. //                                            fname(ini[p]) == "timelimit" ||
  282.                         fname(ini[p]) == "sessionDir" ||
  283.                         fname(ini[p]) == "shelltemp">
  284.                         <let type = "text">
  285.                     </if>
  286.                     <if fname(ini[p]) == "sessionIpCheck" ||
  287.                         fname(ini[p]) == "germanchar" >
  288.                         <let type = "checkbox">    
  289.                     </if>
  290.                 </if>
  291.  
  292.                 <if type != "hidden">
  293.                 <tr>
  294.                 <td><? fname(ini[p])></td>
  295.                                 <td colspan=4>
  296.                 </if>
  297.  
  298.                 // String values with selection
  299.  
  300.                 <if fname(ini[p]) == "datasource">
  301.                 <if type != "hidden">
  302.                 <select name="ini.<? fname(ini[p])>">
  303.                 <let i = 1>
  304.                 <while i <= len(dsn)>
  305.                     <option value="<? dsn[i - 1]>" <if ini.datasource == dsn[i - 1];? "SELECTED";/if> ><? dsn[i - 1]>
  306.                     <let i = i + 1>
  307.                 </while>
  308.                 </select>
  309.                 <else>
  310.                 <input type="hidden" name="ini.<? fname(ini[p])>" value="<? ini.datasource>">
  311.                 </if>
  312.                 </if>
  313.  
  314.                 <if fname(ini[p]) == "isolation">
  315.                 <if type != "hidden">
  316.                 <select name="ini.<? fname(ini[p])>">
  317.                 <option value="DEFAULT" <if ini.isolation == "DEFAULT";? "SELECTED";/if> >DEFAULT
  318.                 <option value="READ_UNCOMMITTED" <if ini.isolation == "READ_UNCOMMITTED";? "SELECTED";/if> >READ_UNCOMMITTED
  319.                 <option value="READ_COMMITTED" <if ini.isolation == "READ_COMMITTED";? "SELECTED";/if> >READ_COMMITTED
  320.                 <option value="REPEATABLE_READ" <if ini.isolation == "REPEATABLE_READ";? "SELECTED";/if> >REPEATABLE_READ
  321.                 <option value="SERIALIZABLE" <if ini.isolation == "SERIALIZABLE";? "SELECTED";/if> >SERIALIZABLE
  322.                 <option value="VERSIONING" <if ini.isolation == "VERSIONING";? "SELECTED";/if> >VERSIONING
  323.                 </select>
  324.                 <else>
  325.                 <input type="hidden" name="ini.<? fname(ini[p])>" value="<? ini.isolation>">
  326.                 </if>
  327.                 </if>
  328.  
  329.                 // String (text) values
  330.  
  331.                 <if fname(ini[p]) == "user"
  332.                  || fname(ini[p]) == "includePath"
  333.                  || fname(ini[p]) == "key"
  334.                  || fname(ini[p]) == "sessionDir"
  335.                  || fname(ini[p]) == "debugDir"
  336.                  || fname(ini[p]) == "debugIp"
  337.                  || fname(ini[p]) == "debugUser"
  338.                  || fname(ini[p]) == "admin"
  339.                  || fname(ini[p]) == "errorlog"
  340.                  || fname(ini[p]) == "mailservice"
  341.                  || fname(ini[p]) == "mailprofile"
  342.                  || fname(ini[p]) == "mailpassword"
  343.                  || fname(ini[p]) == "shelltemp">
  344.                 <input type="<? type>" name="ini.<? fname(ini[p])>" value="<? ini[p]>" size="50">
  345.                 </if>
  346.  
  347.                 // String (password) values
  348.  
  349.                 <if fname(ini[p]) == "passwd">
  350.                 <input type="< ? type >" name="ini.<? fname(ini[p])>" value="<? ini[p]>">
  351.                 </if>
  352.  
  353.                 // Integer values
  354.  
  355.                 <if fname(ini[p]) == "memlimit" || fname(ini[p]) == "timelimit">
  356.                 <input type="<? type>" name="ini.<? fname(ini[p])>" value="<? ini[p]>">
  357.                 </if>
  358.  
  359.                 // Boolean values
  360.  
  361.                 <if fname(ini[p]) == "allowWrite"
  362.                  || fname(ini[p]) == "optimizeConnect"
  363.                  || fname(ini[p]) == "allowAccess"
  364.                  || fname(ini[p]) == "allowOverride"
  365.                  || fname(ini[p]) == "linksAllowed"
  366.                  || fname(ini[p]) == "sessionIpCheck"
  367.                  || fname(ini[p]) == "secure"
  368.                  || fname(ini[p]) == "germanchar"
  369.                  || fname(ini[p]) == "autocommit">
  370.                 <if type == "hidden">
  371.                     <input type="hidden" name="ini.<? fname(ini[p])>" value="<if ini[p];? "on";else;? "off";/if>">
  372.                 <else>
  373.                     <input type="checkbox" name="ini.<? fname(ini[p])>" <if ini[p]; ? "CHECKED";/if>>
  374.                 </if>
  375.                 </if>
  376.  
  377.                 </td>
  378.                 <let p = p + 1>
  379.                 </tr>
  380.             </while>
  381.         </table>
  382.  
  383.         <p>
  384.                 <table><tr>
  385.                 <td><input type="submit" name="action" value="Write configuration">
  386.                 <td><table border bgcolor="c0c0c0"><tr><td>
  387.                 <a href="../docs/TContion.htm">Config Help</a>
  388.                 </table>
  389.                 <td><table border bgcolor="c0c0c0"><tr><td>
  390.                 <a href="../docs/TConence.htm">Option Help</a>
  391.                 </table>
  392.                 <td><table border bgcolor="c0c0c0"><tr><td>
  393.                 <a href="../tutor/index.hei">Home</a>
  394.                 </table>
  395.                 </table>
  396.         <br>
  397.    //             <if ff.tab == "Programming">
  398.                     <hr>
  399.                     <br>
  400.                     <input type="submit" value="Delete session files" name="action">
  401.                     older than <input value="0" name="hours" size=3> hours.
  402.    //             </if>
  403.         </form>
  404.     <else>
  405.         <form href="admin.hei">
  406.         <input type="hidden" name="dir" value="<ff dir>">
  407.         <input type="hidden" name="ini.config_file" value ="< ? ff.dir + "\\heitml.ini" >">
  408.         <input type="hidden" name="ini.user" value ="heitml">
  409.         <input type="hidden" name="ini.passwd" value ="heitml">
  410.         <input type="hidden" name="ini.datasource" value ="< ? "heitml"+ substall(""+(SrvHeitmlVersion) * 10 / 10, "0", "") >">
  411.         <input type="hidden" name="ini.allowWrite" value ="T">
  412.         <input type="hidden" name="ini.includePath" value =".;< ? filepath(filepath(filepath(SrvFileName))) + "lib">">
  413.         <input type="hidden" name="ini.allowAccess" value ="T">
  414.         <input type="hidden" name="ini.debugIp" value ="localhost;127.0.0.1">
  415.                 <input type="hidden" name="ini.secure" value ="T">
  416.                 <input type="hidden" name="ini.sessionIpCheck" value ="T">
  417.                 <input type="hidden" name="ini.autocommit" value ="T">
  418.                 <input type="hidden" name="ini.sessionDir" value ="<? subst(SrvFileName,"htdocs\\admin\\admin.hei","temp")>">
  419.                 <input type="hidden" name="ini.shelltemp" value ="<? subst(SrvFileName,"htdocs\\admin\\admin.hei","temp")>">
  420.         <if SrvOs == "WINNT">
  421.         <input type="hidden" name="ini.mailprofile" value ="Windows Messaging Settings">
  422.         </if>
  423.         <if SrvOs == "WIN95">
  424.         <input type="hidden" name="ini.mailprofile" value ="MS Exchange Settings">
  425.         </if>
  426.                 <input type="submit" name="action" value="Write configuration">
  427.                 </form>
  428.                 <table border bgcolor="c0c0c0"><tr><td>
  429.                 <a href="../tutor/index.hei">Home</a>
  430.                 </table>
  431.     </if> // filexists
  432. // </if>
  433. </BODY>
  434. </HTML>
  435.  
  436.