not sure what i did, but you can bet it was AWESOME
[glcas.git] / libglcas / web.php
index 5dd6f91..e2f7627 100644 (file)
@@ -3,6 +3,10 @@
 // if i believed in name spacing in php, i'd use it.
 error_log("glcasweb loaded");
 
+global $CRON_CLASSES;
+$CRON_CLASSES["GLCASWeb"] = "GLCASWeb";
+
+
 class GLCASWeb {
        
        function __construct($config)
@@ -17,6 +21,10 @@ class GLCASWeb {
                        $url = $_REQUEST["q"];
                }
                
+               // add a stat
+               $ipaddr = $_SERVER["REMOTE_ADDR"];
+               $this->config->addData("lastseen", "$ipaddr", time(), "");
+               
                // create a url parser
                $urlparser = new GLCASUrlParser($urlhandlers, $this->config);
                
@@ -26,6 +34,23 @@ class GLCASWeb {
                $call_class->go($url);
        }
        
+       function cron()
+       {
+               echo "WEB base running cron for ipseen roll-up<br>";
+               $lastseen = $this->config->getData("lastseen");
+               foreach($lastseen as $key=>$val) {
+                       $myip = $val["category"];
+                       $myls = $val["name"];
+                       $ip[$myip] = $myls;
+               }
+               
+               foreach($ip as $key=>$val) {
+                       echo "Setting last seen for $key to $val<br>";
+                       $this->config->delData("lastseen", $key);
+                       $this->config->addData("lastseen", $key, $val);
+               }
+       }
+       
        private $config;
        
 }
@@ -34,7 +59,7 @@ function GLCASMenuBuilder()
 {
        global $BASE_URL, $MENU_ITEMS;
        
-       sort($MENU_ITEMS);
+       ksort($MENU_ITEMS);
        ?>
        <table border="1"><tr><th>Menu</th><td>
 <a href="<?php echo $BASE_URL ?>">Home</a></td>
@@ -127,6 +152,44 @@ function GLCASpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="
        
 }
 
+function glcas_getLastSeen($ip, $data)
+{
+       $last = "never";
+       
+       if(!$data) return $last;
+       
+       
+       
+       foreach($data as $key=>$val) {
+               $last = $val["name"];
+               error_log("got $last for $ip");
+       }
+       
+       if($last == "never") return $last;
+       
+       $last = glcas_tdiffToAgo(time()-$last);
+       
+       error_log("last for $ip set to $last");
+       
+       return $last;
+       
+}
+
+function glcas_tdiffToAgo($time_in_sec)
+{
+       $tdiff = $time_in_sec;
+       $tdiff_min = (int)($tdiff/60);
+       $tdiff_hour = (int)($tdiff/3600);
+       $tdiff_days = (int)($tdiff/86400);
+       
+       if($tdiff < 60) $last = "Less then a minute";
+       if($tdiff >= 60 && $tdiff < 7200) $last = "$tdiff_min minutes ago";
+       if($tdiff >= 7200 && $tdiff < 86400) $last = "$tdiff_hour hours ago";
+       if($tdiff >= 86400) $last = "$tdiff_days days ago";
+       
+       return $last;
+}
+
 function glcas_isRemoteDir($url)
 {
        file_get_contents($url);
@@ -179,6 +242,16 @@ function glcas_startInstaller()
        $gid = $gid_a["name"];
        error_log("user id is $uid, group id is $gid");
        
+       if(isset($_REQUEST["installdir"])) {
+               $c = new GLCASConfig();
+               touch($_REQUEST["installdir"]."/webconfig");
+               $c->loadConfig($_REQUEST["installdir"]."/webconfig");
+               header("Location: index.php");
+               return;
+       }
+       
+       $underroot = realpath($WEB_ROOT_FS."/../");
+       
 ?>
 <html>
 <h1>Welcome to GLCAS</h1>
@@ -190,7 +263,7 @@ now is a place where i can store my config. I search the following directories f
 configuration (webconfig)<br>
 <li> /var/run/glcas/
 <li> /var/lib/glcas/
-<li> <?php echo $WEB_ROOT_FS?>/var/glcas/
+<li> <?php echo $underroot?>/var/glcas/
 <br><br>
 
 As root, you must now create one of these directories and change the ownership of the directory to the web owner.
@@ -201,7 +274,7 @@ Now, tell me where you want me to create the webconfig file:<br>
 <select name="installdir">
 <option value="/var/run/glcas">/var/run/glcas</option>
 <option value="/var/lib/glcas">/var/lib/glcas</option>
-<option value="<?php echo $WEB_ROOT_FS?>/var/glcas/"><?php echo $WEB_ROOT_FS?>/var/glcas/</option>
+<option value="<?php echo $underroot?>/var/glcas/"><?php echo $underroot?>/var/glcas/</option>
 </select>
 <input type="submit" name="Go" value="Go">