inc/toolkit.inc.php
changeset 1 58094faf794d
child 3 64525a2eb098
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/toolkit.inc.php	Tue Apr 10 22:40:43 2007 +0000
@@ -0,0 +1,295 @@
+<?
+session_start();
+// +--------------------------------------------------------------------+
+// | PowerAdmin                                                         |
+// +--------------------------------------------------------------------+
+// | Copyright (c) 1997-2002 The PowerAdmin Team                        |
+// +--------------------------------------------------------------------+
+// | This source file is subject to the license carried by the overal   |
+// | program PowerAdmin as found on http://poweradmin.sf.net            |
+// | The PowerAdmin program falls under the QPL License:                |
+// | http://www.trolltech.com/developer/licensing/qpl.html              |
+// +--------------------------------------------------------------------+
+// | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>       |
+// |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>                      |
+// +--------------------------------------------------------------------+
+
+// Filename: toolkit.inc.php
+// Startdate: 26-10-2002
+// Description: general functions needed on a large variety of locations.
+// Kills the db.inc.php.
+// If you include this file you include the whole 'backend'
+//
+// $Id: toolkit.inc.php,v 1.13 2003/02/24 01:46:31 azurazu Exp $
+//
+
+/*************
+ * Constants  *
+  *************/
+
+define(ROWAMOUNT, 500);
+
+if (isset($_GET["start"])) {
+   define(ROWSTART, (($_GET["start"] - 1) * ROWAMOUNT));
+   } else {
+   define(ROWSTART, 0);
+}
+
+if (isset($_GET["letter"])) {
+   define(LETTERSTART, $_GET["letter"]);
+   $_SESSION["letter"] = $_GET["letter"];
+} elseif(isset($_SESSION["letter"])) {
+   define(LETTERSTART, $_SESSION["letter"]);
+} else {
+   define(LETTERSTART, "a");
+}
+
+if(!@include_once("config.inc.php"))
+{
+	error("You have to create a config.inc.php!");
+}
+
+if(is_file( dirname(__FILE__) . '/../install.php'))
+{
+	error("You have to remove install.php before this program will run");
+}
+
+if(is_file( dirname(__FILE__) . '/../migrator.php'))
+{
+        error("You have to remove migrator.php before this program will run");
+}
+
+/* Database connection */
+
+require_once("database.inc.php");
+// Generates $db variable to access database.
+
+/*************
+ * Includes  *
+ *************/
+
+require_once("error.inc.php");
+require_once("auth.inc.php");
+require_once("users.inc.php");
+require_once("dns.inc.php");
+require_once("record.inc.php");
+
+
+/*************
+ * Functions *
+ *************/
+
+/*
+ * Display the page option: [1] [2] .. [n]
+ */
+
+function show_pages($amount,$rowamount,$id='')
+{
+   if ($amount > $rowamount) {
+      if (!isset($_GET["start"])) $_GET["start"]=1;
+      echo "<br /><br />Show page ";
+      for ($i=1;$i<=ceil($amount / $rowamount);$i++) {
+         if ($_GET["start"] == $i) {
+            echo "[ <b>".$i."</b> ] ";
+         } else {
+            echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?start=".$i;
+	    if ($id!='') echo "&id=".$id;
+	    echo "\">".$i."</a> ] ";
+         }
+      }
+      echo "</small>";
+   }
+}
+
+/*
+ * Display the alphabetic option: [0-9] [a] [b] .. [z]
+ */
+
+function show_letters($letterstart,$doms)
+{
+   foreach ($doms as $dom) {
+      if (is_numeric($dom["name"][0])) {
+         $letter_taken["0"] = 1;
+      } else {
+         $letter_taken[$dom["name"][0]] = 1;
+      }
+   }
+
+   echo "Show domains beginning with: <br />";
+   if ($letterstart == 1) {
+      echo "[ <b>0-9</b> ] ";
+   } elseif ($letter_taken["0"] != 1) {
+      echo "[ 0-9 ] ";
+   } else {
+      echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=1\">0-9</a> ] ";
+   }
+   
+   foreach (range('a','z') as $letter) {
+      if ($letterstart === $letter) {
+         echo "[ <b>".$letter."</b> ] ";
+      } elseif ($letter_taken[$letter] != 1) {
+         echo "[ <span style=\"color:#999\">".$letter."</span> ] ";
+      } else {
+          echo "[ <a href=\"".$_SERVER["PHP_SELF"]."?letter=".$letter."\">".$letter."</a> ] ";
+      }
+   }
+}
+
+/*
+ * Print a nice useraimed error.
+ */
+function error($msg)
+{
+	// General function for printing critical errors.
+	if ($msg)
+	{
+		include_once("header.inc.php");
+	?>
+	<P><TABLE CLASS="error"><TR><TD CLASS="error"><H2>Oops! An error occured!</H2>
+	<BR>
+	<FONT STYLE="font-weight: Bold"><?= nl2br($msg) ?><BR><BR><a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT><BR></TD></TR></TABLE></P>
+	<?
+		include_once("footer.inc.php");
+		die();
+	}
+	else
+	{
+		include_once("footer.inc.php");
+		die("No error specified!");
+	}
+}
+
+/*
+ * Something has been done nicely, display a message and a back button.
+ */
+function message($msg)
+{
+    include_once("header.inc.php");
+    ?>
+    <P><TABLE CLASS="messagetable"><TR><TD CLASS="message"><H2>Success!</H2>
+    <BR>
+	<FONT STYLE="font-weight: Bold">
+	<P>
+	<?
+    if($msg)
+    {
+        echo nl2br($msg);
+    }
+    else
+    {
+        echo "Successful!";
+    }
+    ?>
+    </P>
+    <BR>
+    <P>
+    <a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT>
+    </P>
+    </TD></TR></TABLE></P>
+    <?
+    include_once("footer.inc.php");
+}
+
+
+/*
+ * Reroute a user to a cleanpage of (if passed) arg
+ */
+
+function clean_page($arg='')
+{
+	if (!$arg)
+	{
+		header("Location: ".$_SERVER["PHP_SELF"]."?time=".time());
+		exit;
+	}
+	else
+	{
+		if (preg_match('!\?!si', $arg))
+		{
+			$add = "&time=";
+		}
+		else
+		{
+			$add = "?time=";
+		}
+		header("Location: $arg$add".time());
+		exit;
+	}
+}
+
+function level($l)
+{
+	if ($_SESSION["level"] >= $l)
+	{
+		return 1;
+	}
+	else
+	{
+		return 0;
+	}
+}
+
+function xs($zoneid)
+{
+	global $db;
+	if (is_numeric($zoneid) && is_numeric($_SESSION["level"]))
+	{
+		$result = $db->query("SELECT id FROM zones WHERE owner=".$_SESSION["userid"]." AND domain_id=$zoneid");
+		$result_extra = $db->query("SELECT record_owners.id FROM record_owners,records WHERE record_owners.user_id=".$_SESSION["userid"]." AND records.domain_id = $zoneid AND records.id = record_owners.record_id LIMIT 1");
+
+                if ($result->numRows() == 1 || $_SESSION["level"] >= 5)
+                {
+			$_SESSION[$zoneid."_ispartial"] = 0;
+			return true;
+		}
+		elseif ($result_extra->numRows() == 1)
+		{
+			$_SESSION[$zoneid."_ispartial"] = 1;
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+	else
+	{
+        	return false;
+        }
+}
+
+function get_status($res)
+{
+	if ($res == '0')
+	{
+		return "<FONT CLASS=\"inactive\">Inactive</FONT>";
+	}
+	elseif ($res == '1')
+	{
+		return "<FONT CLASS=\"active\">Active</FONT>";
+	}
+}
+
+function parse_template_value($val, $domain, $webip, $mailip)
+{
+	$val = str_replace('##DOMAIN##', $domain, $val);
+	$val = str_replace('##WEBIP##', $webip, $val);
+	$val = str_replace('##MAILIP##', $mailip, $val);
+	return $val;
+}
+
+
+/*
+ * Validates an email address.
+ * Checks if there is something before the at '@' sign and its followed by a domain and a tld of minimum 2
+ * and maximum of 4 characters.
+ */
+function is_valid_email($email)
+{
+	if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.([a-z]{2,6}$)", $email))
+	{
+		return false;
+	}
+	return true;
+}
+?>