]> git.sur5r.net Git - openldap/commitdiff
Added include/preferences.inc to php3-tool. Aploligies for forgetting to add it before.
authorPredrag "Pele" Balorda <pele@openldap.org>
Sat, 28 Nov 1998 11:57:02 +0000 (11:57 +0000)
committerPredrag "Pele" Balorda <pele@openldap.org>
Sat, 28 Nov 1998 11:57:02 +0000 (11:57 +0000)
contrib/php3-tool/include/preferences.inc [new file with mode: 0644]

diff --git a/contrib/php3-tool/include/preferences.inc b/contrib/php3-tool/include/preferences.inc
new file mode 100644 (file)
index 0000000..11ca8f0
--- /dev/null
@@ -0,0 +1,155 @@
+<?
+class preferences {
+       var $name;
+       var $sections = array();
+       var $base_dn;
+       var $host;
+       var $attribute_names = array();
+
+       cfunction getSection($s) {
+       ////    echo "getSection(".$s.")<br>";
+               $sect = array();
+               for ($i=0; $i<count($this->sections); $i++) {
+                       $sect = $this->sections[$i];
+       //              echo $sect[0]."<br>";
+                       if ($sect[0] == $s) {
+       //                      echo "Found ".$sect[0]."<br>";
+                               return $sect[1];
+                       }       
+               }
+       //      echo "Didn't find ".$s."<br>";
+       }
+       cfunction get($s) {
+               $class = explode(".", $s);
+               $sect = $this->getSection($class[0]);
+               $values = array();
+               $values = $sect[1];
+               for ($i=0; $i<count($sect); $i++) {
+                       $values = $sect[$i];
+       //              echo $values[0]."<br>";
+                       if ($values[0] == $class[1]) {
+       //                      echo "Found ".$values[0]."<br>";
+                               return $values[1];
+                       }
+               }
+       //      echo "Didn't find ".$class[1]."<br>";
+       }
+       cfunction getName($s) {
+               $n = trim(strtok($s, "{"));
+               return $n;
+       }
+       cfunction getBody($s) {
+               $i = strpos($s, "{") + 1;
+               $j = strpos($s, "}") - 1;
+               $tok = substr($s, $i, $j-$i);
+               return $tok;
+       }
+       cfunction getValues($b) {
+               $t = '" ","\" ","\n"';
+               $av_pairs = array();
+               $pairs = array();
+               $av_pair = array();
+               $pairs = explode(";", $b);
+               for ($i=0; $i<count($pairs)-1; $i++) {
+                       $av_pair = explode(":", $pairs[$i]);
+                       $av_pair[0] = trim($av_pair[0]);
+                       $av_pair[1] = trim($this->stripString($av_pair[1], $t));
+       //              echo "<li>".$av_pair[0].":".$av_pair[1];
+                       $av_pairs[$i] = $av_pair;
+               }
+               return $av_pairs;
+       }
+       cfunction getStatements($s) {
+               $i = 0;
+               $end = strpos($s, "}");
+               while($end != FALSE) {
+                       $tok = substr($s, 0, $end+1);
+                       $s = substr($s, $end+1, strlen($s));
+       //              echo "<ul>";
+                       $this->sections[$i] = $this->getStatement($tok);
+       //              echo "</ul>\n";
+                       $end = strpos($s, "}");
+                       $i++;
+               }
+       //      echo count($this->sections)." sections<br>";
+       }
+       cfunction getStatement($s) {
+               $values[0] = $this->getName($s);
+//             echo "<li>Name ".$values[0];
+               $body = $this->getBody($s);
+//             echo "<li>Values<ul>";
+               $values[1] = $this->getValues($body);
+//             echo "</ul></li>";
+               return $values;
+       }
+       cfunction loadPreferences() {
+               if (count($preferences) != 0) {
+                       echo "I have got ".count($this->sections)." preferences here<br>\n";
+               }
+               else {
+                       $fp = fopen("php3tool.conf", "r");
+                       $i = 0;
+                       $string = "";
+                       while (!feof($fp)) {
+                               $string .= fgets($fp, 80);
+                       }
+                       fclose($fp);
+                       $this->getStatements($string);
+               }
+               $this->loadAttributeNames($this->get("PATH.attributes"));
+       }
+
+       cfunction loadAttributeNames($s = "at.conf") {
+       //      global $attribute_names;
+               if (count($this->attribute_names) != 0) {
+                       //This is bullshit here..how do we make php3
+                       //preserve an array in memory between re-loads?
+                       //And no, I'm not going to send it every time
+                       //I make a subsequent request..
+                       //If we don't fix these things it won't run
+                       //on anything smaller than a StarFire 10000
+                       //EVEN THOUGH this stuff is suprisingly fast.
+                       echo "I have got attribute_names here<br>\n";
+               }
+               else {
+                       //echo "I dont have attribute_names here<br>\n";
+                       $fp = fopen($s, "r");
+                       $i = 0;
+                       while (!feof($fp)) {
+                               $string = "";
+                               $foo = "";
+                               $string = fgets($fp, 80);
+                               $foo = strtok($string, ",");
+                               $this->attribute_names[$i][0] = $foo;
+                               $foo = strtok(",");
+                               $this->attribute_names[$i][1] = $foo;
+                               $foo = strtok("\n");
+                               $this->attribute_names[$i][2] = $foo;
+                               $i++;
+                       }
+               }
+       //      echo "Hello world:<b>".count($this->attribute_names)."</b>\n";
+       //      for ($i=0; $i<count($this->attribute_names)-1; $i++) {
+       //              echo $this->attribute_names[$i][0]." - <strong>".$this->attribute_names[$i][1]."</strong> - ".$this->attribute_names[$i][2]."<br>\n";
+       //      }       
+               return $this->attribute_names;
+       }
+
+       cfunction stripString($string, $tokens) {
+               $s = $string;
+               for ($i=0; $i<count($tokens); $i++) {
+                       $result = "";
+                       $tok = strtok($s, $tokens[$i]);
+                       while($tok) {
+                               $result .= $tok;
+                       //      echo "result = ".$result."\n";
+                               $tok = strtok($tokens[$i]);
+                       }
+                       $s = $result;
+               //      echo "s = ".$s."\n";
+               }
+       //      echo "result = ".$result."\n";
+               return $result;
+       }
+}
+?>