From 8d00ee5e1b5889995188545dd8d6bd46ae325369 Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Mon, 13 Feb 2023 09:31:40 +0100 Subject: [PATCH] Make use of Yapter Template Engine --- asset.php | 37 +-- assetadd.php | 86 +----- assetclass.php | 37 +-- assetclassadd.php | 69 +---- assetclassdel.php | 24 ++ assetclassedit.php | 92 ++----- assetclassgroupview.php | 79 +++--- assetclassview.php | 94 +++---- assetdel.php | 30 +- assetedit.php | 113 ++------ assetview.php | 190 +++---------- assigniptoasset.php | 140 +++------- assigniptonode.php | 74 ++--- assignlocationtosubnet.php | 71 ++--- assignsubnettolocation.php | 2 +- assignvlantosubnet.php | 74 +++-- config.php | 49 +++- error.php | 21 ++ footer.php | 27 +- functions.php | 49 +--- header.php | 73 ++--- images/warning.gif | Bin 0 -> 1025 bytes index.php | 83 ++---- install/install.sql | 247 +++++++++++------ install/install.txt | 2 +- lang/en.php | 116 ++++++++ location.php | 91 ++++--- locationadd.php | 68 +---- locationdel.php | 24 ++ locationedit.php | 92 ++----- locationview.php | 156 ++++++----- login.php | 8 +- logout.php | 3 +- nodeadd.php | 212 +++------------ nodedel.php | 28 +- nodeedit.php | 148 ++-------- nodelist.php | 102 +++---- nodeview.php | 129 +++------ options.php | 91 ++----- search.php | 190 ++++++------- submit.php | 419 ++++++++++++++++++++++++++++ subnet.php | 40 +-- subnetadd.php | 53 +--- subnetdel.php | 34 +++ subnetedit.php | 117 ++------ subnetview.php | 397 +++++++++++++-------------- tpl/asset.tpl | 16 ++ tpl/assetadd.tpl | 53 ++++ tpl/assetclass.tpl | 16 ++ tpl/assetclassadd.tpl | 37 +++ tpl/assetclassdel.tpl | 34 +++ tpl/assetclassedit.tpl | 38 +++ tpl/assetclassgroupview.tpl | 49 ++++ tpl/assetclassview.tpl | 49 ++++ tpl/assetdel.tpl | 51 ++++ tpl/assetedit.tpl | 54 ++++ tpl/assetview.tpl | 118 ++++++++ tpl/assigniptoasset.tpl | 89 ++++++ tpl/assigniptonode.tpl | 38 +++ tpl/assignlocationtosubnet.tpl | 44 +++ tpl/assignvlantosubnet.tpl | 43 +++ tpl/error.tpl | 12 + tpl/footer.tpl | 13 + tpl/header.tpl | 31 +++ tpl/index.tpl | 57 ++++ tpl/location.tpl | 16 ++ tpl/locationadd.tpl | 38 +++ tpl/locationdel.tpl | 29 ++ tpl/locationedit.tpl | 47 ++++ tpl/locationview.tpl | 73 +++++ tpl/nodeadd.tpl | 91 +++++++ tpl/nodedel.tpl | 30 ++ tpl/nodeedit.tpl | 78 ++++++ tpl/nodelist.tpl | 46 ++++ tpl/nodeview.tpl | 87 ++++++ tpl/options.tpl | 102 +++++++ tpl/search.tpl | 41 +++ tpl/style.css | 39 +++ tpl/subnet.tpl | 16 ++ tpl/subnetadd.tpl | 31 +++ tpl/subnetdel.tpl | 51 ++++ tpl/subnetedit.tpl | 55 ++++ tpl/subnetview.tpl | 153 +++++++++++ tpl/useradd.tpl | 41 +++ tpl/useredit.tpl | 46 ++++ tpl/userpassedit.tpl | 39 +++ tpl/vlan.tpl | 16 ++ tpl/vlanadd.tpl | 31 +++ tpl/vlandel.tpl | 29 ++ tpl/vlanedit.tpl | 40 +++ tpl/vlanview.tpl | 64 +++++ useradd.php | 71 +---- useredit.php | 50 +--- userpassedit.php | 76 +----- vlan.php | 40 +-- vlanadd.php | 52 +--- vlandel.php | 25 ++ vlanedit.php | 80 ++---- vlanview.php | 113 +++----- yapter.php | 483 +++++++++++++++++++++++++++++++++ 100 files changed, 4790 insertions(+), 2652 deletions(-) create mode 100644 assetclassdel.php create mode 100644 error.php create mode 100644 images/warning.gif create mode 100644 lang/en.php create mode 100644 locationdel.php create mode 100644 submit.php create mode 100644 subnetdel.php create mode 100644 tpl/asset.tpl create mode 100644 tpl/assetadd.tpl create mode 100644 tpl/assetclass.tpl create mode 100644 tpl/assetclassadd.tpl create mode 100644 tpl/assetclassdel.tpl create mode 100644 tpl/assetclassedit.tpl create mode 100644 tpl/assetclassgroupview.tpl create mode 100644 tpl/assetclassview.tpl create mode 100644 tpl/assetdel.tpl create mode 100644 tpl/assetedit.tpl create mode 100644 tpl/assetview.tpl create mode 100644 tpl/assigniptoasset.tpl create mode 100644 tpl/assigniptonode.tpl create mode 100644 tpl/assignlocationtosubnet.tpl create mode 100644 tpl/assignvlantosubnet.tpl create mode 100644 tpl/error.tpl create mode 100644 tpl/footer.tpl create mode 100644 tpl/header.tpl create mode 100644 tpl/index.tpl create mode 100644 tpl/location.tpl create mode 100644 tpl/locationadd.tpl create mode 100644 tpl/locationdel.tpl create mode 100644 tpl/locationedit.tpl create mode 100644 tpl/locationview.tpl create mode 100644 tpl/nodeadd.tpl create mode 100644 tpl/nodedel.tpl create mode 100644 tpl/nodeedit.tpl create mode 100644 tpl/nodelist.tpl create mode 100644 tpl/nodeview.tpl create mode 100644 tpl/options.tpl create mode 100644 tpl/search.tpl create mode 100644 tpl/style.css create mode 100644 tpl/subnet.tpl create mode 100644 tpl/subnetadd.tpl create mode 100644 tpl/subnetdel.tpl create mode 100644 tpl/subnetedit.tpl create mode 100644 tpl/subnetview.tpl create mode 100644 tpl/useradd.tpl create mode 100644 tpl/useredit.tpl create mode 100644 tpl/userpassedit.tpl create mode 100644 tpl/vlan.tpl create mode 100644 tpl/vlanadd.tpl create mode 100644 tpl/vlandel.tpl create mode 100644 tpl/vlanedit.tpl create mode 100644 tpl/vlanview.tpl create mode 100644 vlandel.php create mode 100644 yapter.php diff --git a/asset.php b/asset.php index 7a688cb..a76ceb6 100644 --- a/asset.php +++ b/asset.php @@ -1,23 +1,24 @@ - - - - - - -'; - } -?> - -
- Asset:
-
' . $row->asset_name . '
-setvars($lang); + + // get asset info + $result = mysql_query("SELECT asset_id, asset_name FROM asset ORDER BY asset_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("asset_id", $row->asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->parse("assetrow"); + } + if (($i>0) ? $tp->parse("asset") : $tp->hide("asset")); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/assetadd.php b/assetadd.php index 4020431..b513161 100644 --- a/assetadd.php +++ b/assetadd.php @@ -1,80 +1,24 @@ = 2) { + // set template + $tp = new Template("tpl/assetadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $asset_name = $_POST['asset_name']; - $hostname = $_POST['hostname']; - $assetclass_id = $_POST['assetclass_id']; - $asset_info = $_POST['asset_info']; - mysql_query("INSERT INTO asset (asset_name, hostname, assetclass_id, asset_info) VALUE ('$asset_name', '$hostname', '$assetclass_id', '$asset_info')") or die(mysql_error()); - $asset_id = mysql_insert_id(); - - header_location("assetview.php?asset_id=" . $asset_id); - } -?> + // set language variables + $tp->setvars($lang); -
- - - - - - - - - - - - - - - - - - - - - - - - -
- Add asset:
-
- Asset name: - - -
- Hostname: - - -
- Asset class: - - -
- Asset info: - - -
- -
-
- -set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->parse("assetclassrow"); } + if (($i>0) ? $tp->parse("assetclass") : $tp->hide("assetclass")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assetclass.php b/assetclass.php index 1ebdd87..c563576 100644 --- a/assetclass.php +++ b/assetclass.php @@ -1,23 +1,24 @@ - - - - - - -'; - } -?> - -
- Assetclass:
-
' . $row->assetclass_name . '
-setvars($lang); + + // get assetclass info + $result = mysql_query("SELECT assetclass_id, assetclass_name FROM assetclass ORDER BY assetclass_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->parse("assetclassrow"); + } + if (($i>0) ? $tp->parse("assetclass") : $tp->hide("assetclass")); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/assetclassadd.php b/assetclassadd.php index 636bf35..05dd0ad 100644 --- a/assetclassadd.php +++ b/assetclassadd.php @@ -1,63 +1,24 @@ = 2) { + // set template + $tp = new Template("tpl/assetclassadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $assetclass_name = $_POST['assetclass_name']; - $assetclassgroup_id = $_POST['assetclassgroup_id']; - mysql_query("INSERT INTO assetclass (assetclass_name, assetclassgroup_id) VALUE ('$assetclass_name', '$assetclassgroup_id')") or die(mysql_error()); - $assetclass_id = mysql_insert_id(); - - header_location("assetclassview.php?assetclass_id=" . $assetclass_id); - } -?> + // set language variables + $tp->setvars($lang); -
- - - - - - - - - - - - - - - -
- Add new assetclass:
-
- Assetclass name: - - -
- Assetclass Group:
-
- -
- -
-
- -set("assetclassgroup_id", $row->assetclassgroup_id); + $tp->set("assetclassgroup_name", $row->assetclassgroup_name); + $tp->parse("assetclassgrouprow"); } + if (($i>0) ? $tp->parse("assetclassgroup") : $tp->hide("assetclassgroup")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assetclassdel.php b/assetclassdel.php new file mode 100644 index 0000000..78fb7c4 --- /dev/null +++ b/assetclassdel.php @@ -0,0 +1,24 @@ +setvars($lang); + + // get assetclass info + $result = mysql_query("SELECT assetclass_id, assetclass_name FROM assetclass WHERE assetclass_id='$assetclass_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + + // output + $tp->parse(); + $tp->spit(); + + include("footer.php"); +?> \ No newline at end of file diff --git a/assetclassedit.php b/assetclassedit.php index 90063d4..c52165f 100644 --- a/assetclassedit.php +++ b/assetclassedit.php @@ -1,78 +1,36 @@ = 2) { + // get id + $assetclass_id = $_GET['assetclass_id']; - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $assetclass_id = $_POST['assetclass_id']; - $assetclass_name = $_POST['assetclass_name']; - $assetclassgroup_id = $_POST['assetclassgroup_id']; - mysql_query("UPDATE assetclass SET assetclass_name='$assetclass_name', assetclassgroup_id='$assetclassgroup_id' WHERE assetclass_id='$assetclass_id'") or die(mysql_error()); - - header_location("assetclassview.php?assetclass_id=" . $assetclass_id); - } + // set template + $tp = new Template("tpl/assetclassedit.tpl"); - $assetclass_id = $_GET['assetclass_id']; + // set language variables + $tp->setvars($lang); + + // get assetclass information + $result = mysql_query("SELECT assetclass_name, assetclassgroup_id FROM assetclass WHERE assetclass_id='$assetclass_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $assetclassgroup_id = $row->assetclassgroup_id; + $tp->set("assetclass_id", $assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->set("assetclassgroup_id", $assetclassgroup_id); - // get current information - $result = mysql_query("SELECT assetclass_name, assetclassgroup_id FROM assetclass WHERE assetclass_id='$assetclass_id'"); - while ($row = mysql_fetch_object($result)) { - $assetclass_name = $row->assetclass_name; - $assetclassgroup_id = $row->assetclassgroup_id; + // get assetclassgroup information + $result = mysql_query("SELECT assetclassgroup_id, assetclassgroup_name FROM assetclassgroup ORDER BY assetclassgroup_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->assetclassgroup_id==$assetclassgroup_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("assetclassgroup_id", $row->assetclassgroup_id); + $tp->set("assetclassgroup_name", $row->assetclassgroup_name); + $tp->parse("assetclassgrouprow"); } -?> + if (($i>0) ? $tp->parse("assetclassgroup") : $tp->hide("assetclassgroup")); -
- - - - - - - - - - - - - - - - -
- Edit assetclass:
-
- Assetclass name: - - -
- Assetclass Group:
-
- -
- -
-
- -parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assetclassgroupview.php b/assetclassgroupview.php index 31abeb9..d31c6bc 100644 --- a/assetclassgroupview.php +++ b/assetclassgroupview.php @@ -3,49 +3,44 @@ // get id $assetclassgroup_id = $_GET['assetclassgroup_id']; - + + // set template + $tp = new Template("tpl/assetclassgroupview.tpl"); + + // set language variables + $tp->setvars($lang); + // get assetclassgroup info - $result = mysql_query("SELECT assetclassgroup_name, color FROM assetclassgroup WHERE assetclassgroup_id='$assetclassgroup_id'"); - while ($row = mysql_fetch_object($result)) { - $assetclassgroup_name = $row->assetclassgroup_name; - $color = $row->color; + $result = mysql_query("SELECT assetclassgroup_name, color FROM assetclassgroup WHERE assetclassgroup_id='$assetclassgroup_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("assetclassgroup_name", $row->assetclassgroup_name); + $tp->set("color", $row->color); + + $result = mysql_query("SELECT assetclass_id, assetclass_name FROM assetclass WHERE assetclassgroup_id='$assetclassgroup_id' ORDER BY assetclass_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("assetclass_name", $row->assetclass_name); + $tp->set("assetclass_id", $row->assetclass_id); + $tp->parse("assetclassrow"); } -?> - - - - - - - - - - - - - - -
- Assetclass Groupname: - - -
- Color: - - -
- Assetclass(es): - - -assetclass_id . '">' . $row->assetclass_name . '
'; - } -?> - -
- -0) ? $tp->parse("assetclass") : $tp->hide("assetclass")); + + // display options + if($_SESSION['suser_level'] >= $config_userlevel_assetclassgroupedit) { + $tp->set("assetclassgroup_id", $assetclassgroup_id); + $tp->parse("assetclassgroupedit"); + } else { + $tp->hide("assetclassgroupedit"); + } + if($_SESSION['suser_level'] >= $config_userlevel_assetclassgroupdel) { + $tp->set("assetclassgroup_id", $assetclassgroup_id); + $tp->parse("assetclassgroupdel"); + } else { + $tp->hide("assetclassgroupdel"); + } + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/assetclassview.php b/assetclassview.php index 22c290c..1491fe6 100644 --- a/assetclassview.php +++ b/assetclassview.php @@ -3,68 +3,46 @@ // get id $assetclass_id = $_GET['assetclass_id']; - + + // set template + $tp = new Template("tpl/assetclassview.tpl"); + + // set language variables + $tp->setvars($lang); + // get assetclassgroup info - $result = mysql_query("SELECT ac.assetclassgroup_id, ac.assetclass_name, acg.assetclassgroup_name FROM assetclass ac, assetclassgroup acg WHERE ac.assetclass_id='$assetclass_id' AND acg.assetclassgroup_id=ac.assetclassgroup_id"); - while ($row = mysql_fetch_object($result)) { - $assetclass_name = $row->assetclass_name; - $assetclassgroup_id = $row->assetclassgroup_id; - $assetclassgroup_name = $row->assetclassgroup_name; + $result = mysql_query("SELECT ac.assetclassgroup_id, ac.assetclass_name, acg.assetclassgroup_name FROM assetclass ac, assetclassgroup acg WHERE ac.assetclass_id='$assetclass_id' AND acg.assetclassgroup_id=ac.assetclassgroup_id") or die(mysql_error()); + $row = mysql_fetch_object($result); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->set("assetclassgroup_id", $row->assetclassgroup_id); + $tp->set("assetclassgroup_name", $row->assetclassgroup_name); + + // get assets for this assetclassgroup + $result = mysql_query("SELECT asset_id, asset_name FROM asset WHERE assetclass_id='$assetclass_id' ORDER BY asset_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("asset_id", $row->asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->parse("assetrow"); } -?> - - - - - - - - - - - - - - -
- Assetclass Name: - - -
- Assetclass Groupname: - - -
- Asset(s):
-
- -asset_id . '">' . $row->asset_name . '
'; - } -?> - -
+ if (($i>0) ? $tp->parse("asset") : $tp->hide("asset")); -

- -= 2) { -?> - - - - - -
- Modify assetclass -
- -= $config_userlevel_assetclassedit) { + $tp->set("assetclass_id", $assetclass_id); + $tp->parse("assetclassedit"); + } else { + $tp->hide("assetclassedit"); } + if($_SESSION['suser_level'] >= $config_userlevel_assetclassdel) { + $tp->set("assetclass_id", $assetclass_id); + $tp->parse("assetclassdel"); + } else { + $tp->hide("assetclassdel"); + } + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assetdel.php b/assetdel.php index a6dfec0..b636b28 100644 --- a/assetdel.php +++ b/assetdel.php @@ -1,17 +1,33 @@ = 2) { - + // get id $asset_id = $_GET['asset_id']; - mysql_query("DELETE FROM asset WHERE asset_id='$asset_id'") or die(mysql_error()); - mysql_query("DELETE FROM node WHERE asset_id='$asset_id'") or die(mysql_error()); - header("Location: asset.php"); + // set template + $tp = new Template("tpl/assetdel.tpl"); + + // set language variables + $tp->setvars($lang); + + // get asset info + $result = mysql_query("SELECT asset_name FROM asset WHERE asset_id='$asset_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("asset_id", $asset_id); + $tp->set("asset_name", $row->asset_name); - // end display only if admin + // get node info + $result = mysql_query("SELECT n.node_id, n.ip, n.mac, n.dns1, n.dns2, n.node_info, s.subnet_id, s.subnet_address, s.subnet_mask FROM node n, subnet s WHERE asset_id='$asset_id' AND s.subnet_id=n.subnet_id ORDER BY INET_ATON(n.ip)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("node_id", $row->node_id); + $tp->set("ip", $row->ip); + $tp->parse("noderow"); } + if (($i>0) ? $tp->parse("node") : $tp->hide("node")); + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/assetedit.php b/assetedit.php index e796a64..0b952f3 100644 --- a/assetedit.php +++ b/assetedit.php @@ -1,96 +1,37 @@ = 2) { - - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $asset_id = $_POST['asset_id']; - $asset_name = $_POST['asset_name']; - $hostname = $_POST['hostname']; - $assetclass_id = $_POST['assetclass_id']; - $asset_info = $_POST['asset_info']; - mysql_query("UPDATE asset SET asset_name='$asset_name', hostname='$hostname', assetclass_id='$assetclass_id', asset_info='$asset_info' WHERE asset_id='$asset_id'") or die(mysql_error()); - - header_location("assetview.php?asset_id=" . $asset_id); - } - + // get id $asset_id = $_GET['asset_id']; - // get current information - $result = mysql_query("SELECT asset_name, hostname, assetclass_id, asset_info FROM asset WHERE asset_id='$asset_id'"); - while ($row = mysql_fetch_object($result)) { - $asset_name = $row->asset_name; - $hostname = $row->hostname; - $assetclass_id = $row->assetclass_id; - $asset_info = $row->asset_info; - } -?> + // set template + $tp = new Template("tpl/assetedit.tpl"); -

- - - - - - - - - - - - - - - - - - - - - - - - -
- Edit asset:
-
- Asset name: - - -
- Hostname: - - -
- Asset class: - - -
- Asset info: - - -
- -
-
- -setvars($lang); + + // get asset information + $result = mysql_query("SELECT asset_name, hostname, assetclass_id, asset_info FROM asset WHERE asset_id='$asset_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $assetclass_id = $row->assetclass_id; + $tp->set("asset_id", $asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->set("hostname", $row->hostname); + $tp->set("asset_info", $row->asset_info); + + // get assetclass information + $result = mysql_query("SELECT assetclass_id, assetclass_name FROM assetclass ORDER BY assetclass_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->assetclass_id==$assetclass_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->parse("assetclassrow"); } + if (($i>0) ? $tp->parse("assetclass") : $tp->hide("assetclass")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assetview.php b/assetview.php index f1c1533..3febf71 100644 --- a/assetview.php +++ b/assetview.php @@ -3,156 +3,56 @@ // get id $asset_id = $_GET['asset_id']; - + + // set template + $tp = new Template("tpl/assetview.tpl"); + + // set language variables + $tp->setvars($lang); + // get asset info - $result = mysql_query("SELECT a.asset_name, a.hostname, a.asset_info, ac.assetclass_id, ac.assetclass_name FROM asset a, assetclass ac WHERE a.asset_id='$asset_id' AND ac.assetclass_id=a.assetclass_id"); - while ($row = mysql_fetch_object($result)) { - $asset_name = $row->asset_name; - $hostname = $row->hostname; - $asset_info = $row->asset_info; - $assetclass_id = $row->assetclass_id; - $assetclass_name = $row->assetclass_name; - } -?> - - - - - - - - - - - - - - - - - - -
- Asset name: - - -
- Hostname: - - -
- Asset class: - - -
- Asset info: - - -
- -node_id; - $ip = $row->ip; - $mac = write_mac($row->mac); - $dns1 = $row->dns1; - $dns2 = $row->dns2; - $subnet_id = $row->subnet_id; - $node_info = $row->node_info; - $subnet_address = $row->subnet_address; - $subnet_mask = $row->subnet_mask; - $nodecount++; -?> - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-   - - Node # -
- IP Address: - - -
- Subnet: - - / -
- MAC Address: - - -
- DNS name: - - -
- DNS alias: - - -
- Node info: - - -
+ $result = mysql_query("SELECT a.asset_name, a.hostname, a.asset_info, ac.assetclass_id, ac.assetclass_name FROM asset a, assetclass ac WHERE a.asset_id='$asset_id' AND ac.assetclass_id=a.assetclass_id") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("asset_name", $row->asset_name); + $tp->set("hostname", $row->hostname); + $tp->set("asset_info", nl2br($row->asset_info)); + $tp->set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); -set("node_id", $row->node_id); + $tp->set("ip", $row->ip); + $tp->set("mac", write_mac($row->mac)); + $tp->set("dns1", $row->dns1); + $tp->set("dns2", $row->dns2); + $tp->set("node_info", nl2br($row->node_info)); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->set("nodecount", $i+1); + $tp->parse("noderow"); } + if (($i>0) ? $tp->parse("node") : $tp->hide("node")); - // display only if admin - if($_SESSION['suser_level'] >= 2) { -?> - -

- - - - - - - - -
- Modify asset -
- Delete asset -
- -= $config_userlevel_assetedit) { + $tp->set("asset_id", $asset_id); + $tp->parse("assetedit"); + } else { + $tp->hide("assetedit"); } + if($_SESSION['suser_level'] >= $config_userlevel_assetdel) { + $tp->set("asset_id", $asset_id); + $tp->parse("assetdel"); + } else { + $tp->hide("assetdel"); + } + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assigniptoasset.php b/assigniptoasset.php index 70b0f3b..5f29f3e 100644 --- a/assigniptoasset.php +++ b/assigniptoasset.php @@ -1,115 +1,45 @@ = 2) { + // get ip and id + if((isset($_GET['subnet_id'])) ? $subnet_id = $_GET['subnet_id'] : $subnet_id = ""); + if((isset($_GET['ip'])) ? $ip = $_GET['ip'] : $ip = ""); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $ip = $_POST['ip']; - $mac = strip_mac($_POST['mac']); - $subnet_id = $_POST['subnet_id']; - $asset_id = $_POST['asset_id']; - $node_info = $_POST['node_info']; - - // DNS1 - if (!empty($_POST['dns1']) && isset($_POST['dns1suffix'])) { - $dns1 = $_POST['dns1'] . $config_dns1suffix; - } else { - $dns1 = $_POST['dns1']; - } - - // DNS2 - if (!empty($_POST['dns2']) && isset($_POST['dns2suffix'])) { - $dns2 = $_POST['dns2'] . $config_dns2suffix; - } else { - $dns2 = $_POST['dns2']; - } - - mysql_query("INSERT INTO node (ip, mac, dns1, dns2, subnet_id, asset_id, node_info) VALUE ('$ip', '$mac', '$dns1', '$dns2', '$subnet_id', '$asset_id', '$node_info')") or die(mysql_error()); - - header_location("assetview.php?asset_id=" . $asset_id); - } + // set template + $tp = new Template("tpl/assigniptoasset.tpl"); - $ip = $_GET['ip']; - $subnet_id = $_GET['subnet_id']; -?> + // set language variables + $tp->setvars($lang); -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Assign :
-
- Asset: - - -
- MAC address: - - -
- DNS name: - - - - -
- DNS alias: - - - - -
- Node info: - - -
- -
-
- -set("ip", $ip); + $tp->set("subnet_id", $subnet_id); + $tp->set("config_dns1suffix", $config_dns1suffix); + $tp->set("config_dns2suffix", $config_dns2suffix); + + // get subnet info + $result = mysql_query("SELECT subnet_id, subnet_address, subnet_mask FROM subnet ORDER BY INET_ATON(subnet_address)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->subnet_id==$subnet_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // get asset info + $result = mysql_query("SELECT asset_id, asset_name FROM asset ORDER BY asset_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("asset_id", $row->asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->parse("assetrow"); + } + if (($i>0) ? $tp->parse("asset") : $tp->hide("asset")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assigniptonode.php b/assigniptonode.php index 24c34ae..74816c7 100644 --- a/assigniptonode.php +++ b/assigniptonode.php @@ -1,59 +1,41 @@ subnet_address; - $subnet_mask = $row->subnet_mask; - } -?> + // set template + $tp = new Template("tpl/assigniptonode.tpl"); - - - - - - - - - -
- IP: - - -
- Subnet: - - / -
+ // set language variables + $tp->setvars($lang); -= 2) { -?> - -

+ // set variables + $tp->set("ip", $ip); + $tp->set("subnet_id", $subnet_id); - - - - - - - -
- Assign IP to asset -
- Create new asset -
- -set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + + // display options + if($_SESSION['suser_level'] >= $config_userlevel_assigniptonode) { + $tp->parse("assigniptonode"); + } else { + $tp->hide("assigniptonode"); + } + if($_SESSION['suser_level'] >= $config_userlevel_nodeadd) { + $tp->parse("nodeadd"); + } else { + $tp->hide("nodeadd"); } + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assignlocationtosubnet.php b/assignlocationtosubnet.php index edb6e3f..2be2a6a 100644 --- a/assignlocationtosubnet.php +++ b/assignlocationtosubnet.php @@ -1,53 +1,40 @@ = 2) { + // get id + if((isset($_GET['location_id'])) ? $location_id = $_GET['location_id'] : $location_id = ""); + if((isset($_GET['subnet_id'])) ? $subnet_id = $_GET['subnet_id'] : $subnet_id = ""); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $location_id = $_POST['location_id']; - $subnet_id = $_POST['subnet_id']; - - mysql_query("INSERT INTO subnetlocation (location_id, subnet_id) VALUE ('$location_id', '$subnet_id')") or die(mysql_error()); + // set template + $tp = new Template("tpl/assignlocationtosubnet.tpl"); + + // set language variables + $tp->setvars($lang); - header("Location: location.php"); + // get location info + $result = mysql_query("SELECT location_id, location_name FROM location ORDER BY location_name"); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->location_id==$location_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("location_id", $row->location_id); + $tp->set("location_name", $row->location_name); + $tp->parse("locationrow"); } + if (($i>0) ? $tp->parse("location") : $tp->hide("location")); - $location_id = $_GET['location_id']; -?> - -

- - - - - - - - - -
- Assign to:
-
- -
- -
-
- -subnet_id==$subnet_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/assignsubnettolocation.php b/assignsubnettolocation.php index 362cd1a..1998a21 100644 --- a/assignsubnettolocation.php +++ b/assignsubnettolocation.php @@ -29,7 +29,7 @@ location_id . '">' . str_repeat('   ',$level) . $row->location_name . ''; display_children($row->location_id, $level+1); diff --git a/assignvlantosubnet.php b/assignvlantosubnet.php index 0fadbb3..c877fb6 100644 --- a/assignvlantosubnet.php +++ b/assignvlantosubnet.php @@ -1,53 +1,41 @@ = 2) { + // set template + $tp = new Template("tpl/assignvlantosubnet.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $vlan_id = $_POST['vlan_id']; - $subnet_id = $_POST['subnet_id']; - - mysql_query("UPDATE subnet SET vlan_id='$vlan_id' WHERE subnet_id='$subnet_id'") or die(mysql_error()); - - header("location: vlanview.php?vlan_id=" . $vlan_id); - } + // set language variables + $tp->setvars($lang); - $vlan_id = $_GET['vlan_id']; -?> + // get id + if((isset($_GET['vlan_id'])) ? $vlan_id = $_GET['vlan_id'] : $vlan_id = ""); + if((isset($_GET['subnet_id'])) ? $subnet_id = $_GET['subnet_id'] : $subnet_id = ""); -
- - - - - - - - - -
- Assign to:
-
- -
- -
-
- -vlan_id==$vlan_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("vlan_id", $row->vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + $tp->parse("vlanrow"); } + if (($i>0) ? $tp->parse("vlan") : $tp->hide("vlan")); + + // get subnet info + $result = mysql_query("SELECT subnet_id, subnet_address, subnet_mask FROM subnet ORDER BY INET_ATON(subnet_address)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->subnet_id==$subnet_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); + } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/config.php b/config.php index cec84b7..fb1f1ca 100644 --- a/config.php +++ b/config.php @@ -1,17 +1,52 @@ \ No newline at end of file diff --git a/error.php b/error.php new file mode 100644 index 0000000..f70c603 --- /dev/null +++ b/error.php @@ -0,0 +1,21 @@ +setvars($lang); + + // get error + $error = $_GET['error']; + + // set veriables + $tp->set("error", $lang['lang_error_' . $error]); + + // output + $tp->parse(); + $tp->spit(); + + include("footer.php"); +?> \ No newline at end of file diff --git a/footer.php b/footer.php index ce69cc7..f6f394e 100644 --- a/footer.php +++ b/footer.php @@ -1,20 +1,11 @@ - -
- - - - - -
- IP Reg -
- - - - -set("config_version", $config_version); + + // output + $tp->parse(); + $tp->spit(); ?> \ No newline at end of file diff --git a/functions.php b/functions.php index 1ae6e4c..8ab1ecd 100644 --- a/functions.php +++ b/functions.php @@ -13,17 +13,26 @@ // rebuild mac address function write_mac($mac) { - // check for invalid mac if (strlen($mac)!=12) { + // if the MAC is empty, or for whatever reason incorrect, just return return $mac; - } else { + } else { + // length is good, continue $mac1 = substr($mac, 0, 2); $mac2 = substr($mac, 2, 2); $mac3 = substr($mac, 4, 2); $mac4 = substr($mac, 6, 2); $mac5 = substr($mac, 8, 2); $mac6 = substr($mac, 10, 2); - $mac = $mac1 . '-' . $mac2 . '-' . $mac3 . '-' . $mac4 . '-' . $mac5 . '-' . $mac6; + + // check session for preference (if 0, do nothing), if changed: update useredit.php too! + if ($_SESSION['suser_mac']==1) { + $mac = $mac1 . '-' . $mac2 . '-' . $mac3 . '-' . $mac4 . '-' . $mac5 . '-' . $mac6; + } else if ($_SESSION['suser_mac']==2) { + $mac = $mac1 . ':' . $mac2 . ':' . $mac3 . ':' . $mac4 . ':' . $mac5 . ':' . $mac6; + } else if ($_SESSION['suser_mac']==3) { + $mac = $mac1 . $mac2 . $mac3 . '-' . $mac4 . $mac5 . $mac6; + } return $mac; } @@ -31,39 +40,7 @@ // redirect page function header_location($location) { - return header("location: " . $location); + header("location: " . $location); exit; } - - // get location name and that of its parents and return with links to the locations - function location_name($location_id, $seperator) { - // create an array - $location_name = array(); - - // get location name(s) - $result = mysql_query("SELECT location_name, parent FROM location WHERE location_id='$location_id'"); - while ($row = mysql_fetch_object($result)) { - // put this parent before any children - array_unshift($location_name, $row->location_name); - - // repeat - location_name($row->parent, '.'); - } - - // count total no. of found locations - $location_count = count($location_name); - - // display location for every array value - for ($i = 0; $i < $location_count; $i++ ) { - echo '' . $location_name[$i] . '' . $seperator; - } - } - - // calculate page for pagination (pagination is used in subnetview.php) - function page($ip) { - $iprange = explode('.', $ip); - $iprange3 = $iprange[2]; - - return $iprange3; - } ?> \ No newline at end of file diff --git a/header.php b/header.php index 78e5e4a..11cf978 100644 --- a/header.php +++ b/header.php @@ -1,17 +1,26 @@ login + if(empty($_SESSION['suser_id'])) { + header("Location: login.php"); + exit; + } // includes include("config.php"); include("dbconnect.php"); include("functions.php"); + include("yapter.php"); - // check for session - if(empty($_SESSION['suser_id'])) { - header("Location: login.php"); - exit; - } + // include language file + include('lang/' . $_SESSION['suser_lang'] . '.php'); + + // set template + $tp = new Template("tpl/header.tpl"); + + // set language variables + $tp->setvars($lang); // fill search box if (isset($_POST['search'])) { @@ -25,47 +34,11 @@ } } - // start header output -?> - -
- IP Reg - - -
- -
- - - - - -
- View by: Asset - - Assetclass - - Location - - Subnet - - VLAN  - .: - -displayname . ' - '; - } - -// TEMP display only if admin -if($_SESSION['suser_level'] >= 2) { - echo 'Add new node - '; -} -?> - - - Options - - Log out -
-
- -
\ No newline at end of file + // give these to the templates too + $tp->set("suser_displayname", $_SESSION['suser_displayname']); + $tp->set("search", $search); + + // output + $tp->parse(); + $tp->spit(); +?> \ No newline at end of file diff --git a/images/warning.gif b/images/warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e964d2bc0b2d22f3ebaa4a46351f316280a5046 GIT binary patch literal 1025 zcmeIx`Ad^=90%~v^Z3}FO^0im83dI^*`>8kD@t9>B%;!eA0p5)$SAN2N@^~3xbC83 z&Slop%z4mB2SqrXN~O6hl&NKEI&I5i?tc7!TK`Ayf8Y(TH}9lm*{Zm75s1K54!QC| zV=-_hz&1cckEaL+!D@Bch6Jteg`b|X=n$2Zyy02{oSh7ginHZ4g+S-JdcDgt;GZlKH!^t_V8s~_*K(!Je zZbsMIF)Q}r>|VpnO=zpO_PV}r`X3ihh2@`ly|rmQG5F)58J`x zaU%+=svA6>enpPD0uN(h1g4321Htwq`3^dmOyV0i-Xj*^*a#f?}(S+ zDC8<%5aNDNYB-a%y`lbd-%B7JegPi-2IK@Tn>OzxgUH7pVC@j)oncH36q%Szh_gVs z4t*3(xCn8ir%Lv1UxGFUAcjo18}vZhsmjX{b;aRb9ht>Cn1Mn8g~2^KocX+zD<08e4oKG;C!!Vesl^dt4+v>M@GD3 zJm73#dxTP~<{PoIPn zpUBo6`lco-FGuDd+CR_#_yuNp7z&^q7XH)t_lbD+J8b1o-;|kj?Hn7JQc;^PEL~ex znq>&>l^IeGEL*IbdFZMpfbDAUj!(Q18hhk!#I(o!)bIsS;)ehNbd}T) z5+sRy)O21a4Gg&zkPhMTjuFF7w0(-aRQ?0r%_->D=U{i3yLwM6l*B6=aKq literal 0 HcmV?d00001 diff --git a/index.php b/index.php index 6c918e7..8f7f945 100644 --- a/index.php +++ b/index.php @@ -1,81 +1,40 @@ setvars($lang); + + // calculate assets $query = mysql_query("SELECT asset_id FROM asset") or die(mysql_error()); $assetcount = mysql_num_rows($query); - + $tp->set('assetcount', $assetcount); + + // calculate locations $query = mysql_query("SELECT location_id FROM location") or die(mysql_error()); $locationcount = mysql_num_rows($query); + $tp->set('locationcount', $locationcount); + // calculate nodes $query = mysql_query("SELECT node_id FROM node") or die(mysql_error()); $nodecount = mysql_num_rows($query); + $tp->set('nodecount', $nodecount); + // calculate subnets $query = mysql_query("SELECT subnet_id FROM subnet") or die(mysql_error()); $subnetcount = mysql_num_rows($query); + $tp->set('subnetcount', $subnetcount); + // calculate vlans $query = mysql_query("SELECT vlan_id FROM vlan") or die(mysql_error()); $vlancount = mysql_num_rows($query); -?> - - - - - -
- IP Reg
-
+ $tp->set('vlancount', $vlancount); -

- - - - - - - - - - - - - - - - - - - - - - - - - -
- Statistics: -
- Assets: - - -
- Locations: - - -
- Nodes: - - -
- Subnets: - - -
- VLANs: - - -
- -parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/install/install.sql b/install/install.sql index f0f930d..dab2b31 100644 --- a/install/install.sql +++ b/install/install.sql @@ -1,136 +1,213 @@ +-- +-- Database: `ipreg` +-- + +-- -------------------------------------------------------- + -- -- Table structure for table `asset` -- -CREATE TABLE `asset` ( - `asset_id` int(10) NOT NULL auto_increment, - `asset_name` varchar(100) NOT NULL default '', - `hostname` varchar(100) NOT NULL default '', - `assetclass_id` int(10) NOT NULL default '0', - `asset_info` text NOT NULL, - PRIMARY KEY (`asset_id`) -) ; +CREATE TABLE `asset` ( + `asset_id` int(10) NOT NULL auto_increment, + `asset_name` varchar(100) NOT NULL default '', + `hostname` varchar(100) NOT NULL default '', + `assetclass_id` int(10) NOT NULL default '0', + `asset_info` text NOT NULL, + PRIMARY KEY (`asset_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; + +-- +-- Dumping data for table `asset` +-- + +INSERT INTO `asset` VALUES (1, 'My Router', 'Router', 4, 'This is my router'); +INSERT INTO `asset` VALUES (2, 'My PC', 'PC', 10, 'This is my workstation'); + +-- -------------------------------------------------------- -- -- Table structure for table `assetclass` -- -CREATE TABLE `assetclass` ( - `assetclass_id` int(10) NOT NULL auto_increment, - `assetclassgroup_id` int(10) NOT NULL default '0', - `assetclass_name` varchar(100) NOT NULL default '', - PRIMARY KEY (`assetclass_id`) -) ; +CREATE TABLE `assetclass` ( + `assetclass_id` int(10) NOT NULL auto_increment, + `assetclassgroup_id` int(10) NOT NULL default '0', + `assetclass_name` varchar(100) NOT NULL default '', + PRIMARY KEY (`assetclass_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ; -INSERT INTO `assetclass` VALUES ('', 1, 'Access device'); -INSERT INTO `assetclass` VALUES ('', 1, 'Firewall'); -INSERT INTO `assetclass` VALUES ('', 1, 'HUB'); -INSERT INTO `assetclass` VALUES ('', 1, 'Router'); -INSERT INTO `assetclass` VALUES ('', 1, 'Switch'); -INSERT INTO `assetclass` VALUES ('', 2, 'Server'); -INSERT INTO `assetclass` VALUES ('', 2, 'NAS'); -INSERT INTO `assetclass` VALUES ('', 3, 'IP Phone'); -INSERT INTO `assetclass` VALUES ('', 4, 'Laptop'); -INSERT INTO `assetclass` VALUES ('', 4, 'PC'); -INSERT INTO `assetclass` VALUES ('', 4, 'Printer'); -INSERT INTO `assetclass` VALUES ('', 4, 'Thin Client'); +-- +-- Dumping data for table `assetclass` +-- + +INSERT INTO `assetclass` VALUES (1, 1, 'Access device'); +INSERT INTO `assetclass` VALUES (2, 1, 'Firewall'); +INSERT INTO `assetclass` VALUES (3, 1, 'HUB'); +INSERT INTO `assetclass` VALUES (4, 1, 'Router'); +INSERT INTO `assetclass` VALUES (5, 1, 'Switch'); +INSERT INTO `assetclass` VALUES (6, 2, 'Server'); +INSERT INTO `assetclass` VALUES (7, 2, 'NAS'); +INSERT INTO `assetclass` VALUES (8, 3, 'IP Phone'); +INSERT INTO `assetclass` VALUES (9, 4, 'Laptop'); +INSERT INTO `assetclass` VALUES (10, 4, 'PC'); +INSERT INTO `assetclass` VALUES (11, 4, 'Printer'); +INSERT INTO `assetclass` VALUES (12, 4, 'Thin Client'); + +-- -------------------------------------------------------- -- -- Table structure for table `assetclassgroup` -- -CREATE TABLE `assetclassgroup` ( - `assetclassgroup_id` int(10) NOT NULL auto_increment, - `assetclassgroup_name` varchar(100) NOT NULL default '', - `color` varchar(10) NOT NULL default '', - PRIMARY KEY (`assetclassgroup_id`) -) ; +CREATE TABLE `assetclassgroup` ( + `assetclassgroup_id` int(10) NOT NULL auto_increment, + `assetclassgroup_name` varchar(100) NOT NULL default '', + `color` varchar(10) NOT NULL default '', + PRIMARY KEY (`assetclassgroup_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; + +-- +-- Dumping data for table `assetclassgroup` +-- + +INSERT INTO `assetclassgroup` VALUES (1, 'Network', 'red'); +INSERT INTO `assetclassgroup` VALUES (2, 'Servers', 'green'); +INSERT INTO `assetclassgroup` VALUES (3, 'VOIP', 'orange'); +INSERT INTO `assetclassgroup` VALUES (4, 'Workstations', 'blue'); +INSERT INTO `assetclassgroup` VALUES (5, 'Other', 'black'); -INSERT INTO `assetclassgroup` VALUES ('', 'Network', 'green'); -INSERT INTO `assetclassgroup` VALUES ('', 'Servers', 'red'); -INSERT INTO `assetclassgroup` VALUES ('', 'VOIP', 'orange'); -INSERT INTO `assetclassgroup` VALUES ('', 'Workstations', 'blue'); -INSERT INTO `assetclassgroup` VALUES ('', 'Other', 'black'); +-- -------------------------------------------------------- -- -- Table structure for table `location` -- -CREATE TABLE `location` ( - `location_id` int(10) NOT NULL auto_increment, - `location_name` varchar(100) NOT NULL default '', - `parent` int(1) NOT NULL default '0', - `location_info` text NOT NULL, - PRIMARY KEY (`location_id`) -) ; +CREATE TABLE `location` ( + `location_id` int(10) NOT NULL auto_increment, + `location_name` varchar(100) NOT NULL default '', + `parent` int(1) NOT NULL default '0', + `location_info` text NOT NULL, + PRIMARY KEY (`location_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ; + +-- +-- Dumping data for table `location` +-- + +INSERT INTO `location` VALUES (1, 'Head Office', 0, ''); +INSERT INTO `location` VALUES (2, '1st floor', 1, ''); +INSERT INTO `location` VALUES (3, '2nd floor', 1, ''); +INSERT INTO `location` VALUES (4, 'Administration', 2, ''); +INSERT INTO `location` VALUES (5, 'Finance', 2, ''); +INSERT INTO `location` VALUES (6, 'Branch office', 0, ''); +INSERT INTO `location` VALUES (7, 'Planning', 3, ''); +INSERT INTO `location` VALUES (8, 'Logistics', 6, ''); + +-- -------------------------------------------------------- -- -- Table structure for table `node` -- -CREATE TABLE `node` ( - `node_id` int(10) NOT NULL auto_increment, - `ip` varchar(15) NOT NULL default '', - `mac` varchar(12) NOT NULL default '', - `dns1` varchar(100) NOT NULL default '', - `dns2` varchar(100) NOT NULL default '', - `subnet_id` int(10) NOT NULL default '0', - `asset_id` int(10) NOT NULL default '0', - `node_info` text NOT NULL, - PRIMARY KEY (`node_id`) -) ; +CREATE TABLE `node` ( + `node_id` int(10) NOT NULL auto_increment, + `ip` varchar(15) NOT NULL default '', + `mac` varchar(12) NOT NULL default '', + `dns1` varchar(100) NOT NULL default '', + `dns2` varchar(100) NOT NULL default '', + `subnet_id` int(10) NOT NULL default '0', + `asset_id` int(10) NOT NULL default '0', + `node_info` text NOT NULL, + PRIMARY KEY (`node_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; + +-- +-- Dumping data for table `node` +-- + +INSERT INTO `node` VALUES (1, '192.168.0.1', 'aabbcc112233', 'router1', '', 1, 1, ''); +INSERT INTO `node` VALUES (2, '192.168.0.11', 'aa11bb22cc33', 'pc1', '', 1, 2, ''); + +-- -------------------------------------------------------- -- -- Table structure for table `subnet` -- -CREATE TABLE `subnet` ( - `subnet_id` int(10) NOT NULL auto_increment, - `subnet_address` varchar(15) NOT NULL default '', - `subnet_mask` int(2) NOT NULL default '0', - `vlan_id` int(10) NOT NULL default '0', - `subnet_info` text NOT NULL, - PRIMARY KEY (`subnet_id`) -) ; +CREATE TABLE `subnet` ( + `subnet_id` int(10) NOT NULL auto_increment, + `subnet_address` varchar(15) NOT NULL default '', + `subnet_mask` int(2) NOT NULL default '0', + `vlan_id` int(10) NOT NULL default '0', + `subnet_info` text NOT NULL, + PRIMARY KEY (`subnet_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; + +-- +-- Dumping data for table `subnet` +-- + +INSERT INTO `subnet` VALUES (1, '192.168.0.0', 24, 1, ''); + +-- -------------------------------------------------------- -- -- Table structure for table `subnetlocation` -- -CREATE TABLE `subnetlocation` ( - `subnetlocation_id` int(10) NOT NULL auto_increment, - `subnet_id` int(10) NOT NULL default '0', - `location_id` int(10) NOT NULL default '0', - PRIMARY KEY (`subnetlocation_id`) -) ; +CREATE TABLE `subnetlocation` ( + `subnetlocation_id` int(10) NOT NULL auto_increment, + `subnet_id` int(10) NOT NULL default '0', + `location_id` int(10) NOT NULL default '0', + PRIMARY KEY (`subnetlocation_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; + +-- +-- Dumping data for table `subnetlocation` +-- + +INSERT INTO `subnetlocation` VALUES (1, 1, 1); + +-- -------------------------------------------------------- -- -- Table structure for table `user` -- -CREATE TABLE `user` ( - `user_id` int(10) NOT NULL auto_increment, - `user_name` varchar(100) NOT NULL default '', - `user_pass` varchar(32) NOT NULL default '', - `user_level` int(1) NOT NULL default '0', - `displayname` varchar(100) NOT NULL default '', - PRIMARY KEY (`user_id`) -) ; +CREATE TABLE `user` ( + `user_id` int(10) NOT NULL auto_increment, + `user_name` varchar(100) NOT NULL default '', + `user_pass` varchar(32) NOT NULL default '', + `user_level` int(1) NOT NULL default '0', + `user_displayname` varchar(100) NOT NULL default '', + `user_mac` int(1) NOT NULL default '0', + `user_lang` varchar(3) NOT NULL default '', + PRIMARY KEY (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- -- Dumping data for table `user` -- -INSERT INTO `user` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 2, 'admin'); +INSERT INTO `user` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 2, 'Administrator', 0, 'en'); + +-- -------------------------------------------------------- -- -- Table structure for table `vlan` -- -CREATE TABLE `vlan` ( - `vlan_id` int(10) NOT NULL auto_increment, - `vlan_number` int(3) NOT NULL default '0', - `vlan_name` varchar(100) NOT NULL default '', - `vlan_info` text NOT NULL, - PRIMARY KEY (`vlan_id`) -) ; \ No newline at end of file +CREATE TABLE `vlan` ( + `vlan_id` int(10) NOT NULL auto_increment, + `vlan_number` int(3) NOT NULL default '0', + `vlan_name` varchar(100) NOT NULL default '', + `vlan_info` text NOT NULL, + PRIMARY KEY (`vlan_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; + +-- +-- Dumping data for table `vlan` +-- + +INSERT INTO `vlan` VALUES (1, 1, 'DEFAULT_VLAN', ''); \ No newline at end of file diff --git a/install/install.txt b/install/install.txt index ec41738..747f64e 100644 --- a/install/install.txt +++ b/install/install.txt @@ -1,5 +1,5 @@ --- ---- IP Reg 0.1 +--- IP Reg --- http://ipreg.sourceforge.net --- diff --git a/lang/en.php b/lang/en.php new file mode 100644 index 0000000..ea39a8c --- /dev/null +++ b/lang/en.php @@ -0,0 +1,116 @@ + 'Asset', + 'lang_assets' => 'Assets', + 'lang_assetclass' => 'Assetclass', + 'lang_assetclasses' => 'Assetclasses', + 'lang_assetclassgroup' => 'Assetclassgroup', + 'lang_assetclassgroups' => 'Assetclassgroups', + 'lang_location' => 'Location', + 'lang_locations' => 'Locations', + 'lang_node' => 'Node', + 'lang_nodes' => 'Nodes', + 'lang_sublocation' => 'Sub-location', + 'lang_sublocations' => 'Sub-locations', + 'lang_subnet' => 'Subnet', + 'lang_subnets' => 'Subnets', + 'lang_vlan' => 'VLAN', + 'lang_vlans' => 'VLANs', + + 'lang_color' => 'Color', + 'lang_error' => 'Error', + 'lang_header_viewby' => 'View by', + 'lang_language' => 'Language', + 'lang_login' => 'Login', + 'lang_logout' => 'Logout', + 'lang_options' => 'Options', + 'lang_reset' => 'Reset', + 'lang_search' => 'Search!', + 'lang_statistics' => 'Statistics', + 'lang_submit' => 'Submit', + 'lang_unassigned' => 'Unassigned', + + 'lang_asset_add' => 'Add asset', + 'lang_asset_del' => 'Delete asset', + 'lang_asset_edit' => 'Modify asset', + 'lang_asset_info' => 'Asset info', + 'lang_asset_name' => 'Asset name', + 'lang_hostname' => 'Hostname', + + 'lang_assetclass_add' => 'Add assetclass', + 'lang_assetclass_del' => 'Delete assetclass', + 'lang_assetclass_edit' => 'Mofidy assetclass', + 'lang_assetclass_name' => 'Assetclass name', + + 'lang_assetclassgroup_add' => 'Add assetclassgroup', + 'lang_assetclassgroup_del' => 'Delete assetclassgroup', + 'lang_assetclassgroup_edit' => 'Modify assetclassgroup', + 'lang_assetclassgroup_name' => 'Assetclass Groupname', + + 'lang_assigniptoasset' => 'Assign IP to asset', + 'lang_assignlocationtosubnet' => 'Assign location to subnet', + 'lang_assignvlantosubnet' => 'Assign VLAN to subnet', + + 'lang_error_ipinuse' => 'IP in use', + 'lang_error_locationisparent' => 'This location has sub-locations', + 'lang_error_notallowed' => 'Not allowed', + 'lang_error_usernameinuse' => 'Username in use', + 'lang_goback' => 'Go back', + + 'lang_location_add' => 'Add location', + 'lang_location_del' => 'Delete location', + 'lang_location_edit' => 'Mofidy location', + 'lang_location_info' => 'Location info', + 'lang_location_name' => 'Location name', + 'lang_location_parent' => 'Parent', + + 'lang_node_add' => 'Add node', + 'lang_node_del' => 'Delete node', + 'lang_node_edit' => 'Modify node', + 'lang_node_info' => 'Node info', + 'lang_node_new' => 'Create new node', + 'lang_dns1' => 'DNS name', + 'lang_dns2' => 'DNS Alias', + 'lang_ip' => 'IP Address', + 'lang_mac' => 'MAC Address', + + 'lang_search_found' => 'found', + 'lang_search_results_found' => 'Total results found', + + 'lang_subnet_add' => 'Add subnet', + 'lang_subnet_subnetaddress' => 'Subnet address', + 'lang_subnet_broadcastaddress' => 'Broadcast address', + 'lang_subnet_del' => 'Delete subnet', + 'lang_subnet_edit' => 'Modify subnet', + 'lang_subnet_info' => 'Subnet info', + 'lang_subnet_mask' => 'Subnet mask', + + 'lang_user_add' => 'Add user', + 'lang_user_del' => 'Delete user', + 'lang_user_displayname' => 'Displayname', + 'lang_user_edit' => 'Mofidy user', + 'lang_user_level' => 'Userlevel', + 'lang_user_name' => 'Username', + 'lang_user_pass' => 'Password', + 'lang_user_passnew1' => 'New password', + 'lang_user_passnew2' => 'Retype new password', + 'lang_user_passold' => 'Current password', + + 'lang_vlan_add' => 'Add VLAN', + 'lang_vlan_del' => 'Delete VLAN', + 'lang_vlan_edit' => 'Modify VLAN', + 'lang_vlan_number' => 'VLAN ID', + 'lang_vlan_info' => 'VLAN info', + 'lang_vlan_name' => 'VLAN name', + + 'lang_warning_asset_del_nodes' => 'These nodes will also be deleted!', + 'lang_warning_search_nosearch' => 'Nothing to search for!', + + 'lang_options_ipreg' => 'IP Reg options', + 'lang_options_password_edit' => 'Modify password', + 'lang_options_personal' => 'Personal options', + 'lang_options_settings_edit' => 'Modify settings', +); + +?> \ No newline at end of file diff --git a/location.php b/location.php index 169b828..791e056 100644 --- a/location.php +++ b/location.php @@ -1,48 +1,69 @@ subnet_id . '">' . $row->subnet_address . '/' . $row->subnet_mask . '
'; - } - - return $subnet; + // set template + $tp = new Template("tpl/location.tpl"); + + // set language variables + $tp->setvars($lang); + + // create array with parent index and location names + $parents = array(); + $location_names = array(); + + // get location information and insert to the arrays + $result = mysql_query("SELECT location_id, location_name, parent FROM location") or die(mysql_error()); + while ($row = mysql_fetch_object($result)) { + $location_names[$row->location_id] = $row->location_name; + $parents[$row->parent][] = $row->location_id; } - // displaysubnet link (or not) - if (isset($_GET['displaysubnet'])) { - $displaysubnetlink = '(hide subnets)'; - } else { - $displaysubnetlink = '(display subnets)'; + // look for parents and create a new array for every child + function location($parents, $parent = 0) { + $children = array(); + foreach ($parents[$parent] as $child) { + if (isset($parents[$child])) { + // element has children + $children[$child] = location($parents, $child); + } else { + // no children, set NULL + $children[$child] = NULL; + } + } + return $children; } - // "menu" - function display_children($parent, $level) { - $result = mysql_query("SELECT location_id, location_name FROM location WHERE parent='$parent' ORDER BY location_name"); - while ($row = mysql_fetch_object($result)) { - if (isset($_GET['displaysubnet'])) { - $displaysubnet = display_subnet($row->location_id); + // recursive children check to template + function checkchildren ($array, $level) { + global $tp; + global $location_names; + foreach ($array as $location_id=>$val) { + if($val != "") { + $tp->set("location_id", $location_id); + $tp->set("location_name", $location_names[$location_id]); + $tp->set("nbsp", str_repeat("   ",$level)); + $tp->parse("locationrow"); + checkchildren($val, $level+1); } else { - $displaysubnet = ''; + $tp->set("location_id", $location_id); + $tp->set("location_name", $location_names[$location_id]); + $tp->set("nbsp", str_repeat("   ",$level)); + $tp->parse("locationrow"); } - echo '' . str_repeat('   ',$level) . '' . $row->location_name . ' ' . $displaysubnet . ''; - display_children($row->location_id, $level+1); } + $tp->parse("location"); + $tp->clear("location"); } -?> - - - - - - -
- Location: -
- -parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/locationadd.php b/locationadd.php index d68bb59..d349f2d 100644 --- a/locationadd.php +++ b/locationadd.php @@ -1,62 +1,24 @@ = 2) { + // set template + $tp = new Template("tpl/locationadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $location_name = $_POST['location_name']; - $parent = $_POST['parent']; - mysql_query("INSERT INTO location (location_name, parent) VALUE ('$location_name', '$parent')") or die(mysql_error()); - $location_id = mysql_insert_id(); - - header_location("locationview.php?location_id=" . $location_id); - } -?> + // set language variables + $tp->setvars($lang); -

- - - - - - - - - - - - - - - -
- Add new location:
-
- Location name: - - -
- Parent: - - -
- -
-
- -set("location_id", $row->location_id); + $tp->set("location_name", $row->location_name); + $tp->parse("locationrow"); } + if (($i>0) ? $tp->parse("location") : $tp->hide("location")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/locationdel.php b/locationdel.php new file mode 100644 index 0000000..96450b6 --- /dev/null +++ b/locationdel.php @@ -0,0 +1,24 @@ +setvars($lang); + + // get location info + $result = mysql_query("SELECT location_name FROM location WHERE location_id='$location_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("location_id", $location_id); + $tp->set("location_name", $row->location_name); + + // output + $tp->parse(); + $tp->spit(); + + include("footer.php"); +?> \ No newline at end of file diff --git a/locationedit.php b/locationedit.php index 9d5f1ee..5cc1d6e 100644 --- a/locationedit.php +++ b/locationedit.php @@ -1,8 +1,14 @@ = 2) { + // get id + $location_id = $_GET['location_id']; + + // set template + $tp = new Template("tpl/locationedit.tpl"); + + // set language variables + $tp->setvars($lang); // check for submit if ($_SERVER['REQUEST_METHOD']=="POST" ) { @@ -15,73 +21,27 @@ header_location("locationview.php?location_id=" . $location_id); } - $location_id = $_GET['location_id']; - // get current information - $result = mysql_query("SELECT location_name, parent, location_info FROM location WHERE location_id='$location_id'"); - while ($row = mysql_fetch_object($result)) { - $location_name = $row->location_name; - $location_info = $row->location_info; - $parent = $row->parent; - } -?> + $result = mysql_query("SELECT location_name, parent, location_info FROM location WHERE location_id='$location_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $parent = $row->parent; + $tp->set("location_id", $location_id); + $tp->set("location_name", $row->location_name); + $tp->set("location_info", $row->location_info); -
- - - - - - - - - - - - - - - - - - - - -
- Edit location:
-
- Location name: - - -
- Parent: - - -
- Location info: - - -
- -
-
- -location_id==$parent) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("parent_id", $row->location_id); + $tp->set("parent_name", $row->location_name); + $tp->parse("parentrow"); } + if (($i>0) ? $tp->parse("parent") : $tp->hide("parent")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/locationview.php b/locationview.php index d043cb4..ef918bf 100644 --- a/locationview.php +++ b/locationview.php @@ -4,87 +4,101 @@ // get id $location_id = $_GET['location_id']; - // get all info - $result = mysql_query("SELECT location_name, location_info FROM location WHERE location_id='$location_id'"); + // set template + $tp = new Template("tpl/locationview.tpl"); + + // set language variables + $tp->setvars($lang); + + // create breadcrumb arrays + $parents = array(); + $location_names = array(); + $crumbs = array(); + + // get location information and insert to the arrays + $result = mysql_query("SELECT location_id, location_name, parent FROM location") or die(mysql_error()); while ($row = mysql_fetch_object($result)) { - $location_info = $row->location_info; + $location_names[$row->location_id] = $row->location_name; + $parents[$row->location_id] = $row->parent; } -?> - - - - - - - - - - - - - - - - - - -
- Location name: - - -
- Location info: - - -
- Subnet(s): - -subnet_id . '">' . $row->subnet_address . '/' . $row->subnet_mask . '
'; + // function to build array with parents + function parent($location_id) { + // use names index + global $parents; + global $crumbs; + global $location_names; + + // fill array with this value + $crumbs[$location_id] = $location_id; + if (($parents[$location_id])>0) { + // still not on top, so do it again + parent($parents[$location_id]); + } + + // return the array + return $location_id; } -?> - -
- Sub-location(s): - -location_id . '">' . $row->location_name . '
'; + // build parents + parent($location_id); + + // loop array in reverse order and send to template + foreach (array_reverse($crumbs) as $key=>$val) { + $tp->set("location_id", $val); + $tp->set("location_name", $location_names[$val]); + if (($key>0) ? $tp->set("seperator", ". ") : $tp->set("seperator", "")); + $tp->parse("locationcrumbrow"); } -?> - -
+ $tp->parse("locationcrumb"); -= 2) { -?> - -

+ // get location info + $result = mysql_query("SELECT location_name, location_info FROM location WHERE location_id='$location_id'"); + $row=mysql_fetch_object($result); + $tp->set("location_info", nl2br($row->location_info)); - - - - - - - -
- Modify location -
- Assign subnet -
+ // search subnets for this location + $result = mysql_query("SELECT s.subnet_id, s.subnet_address, s.subnet_mask FROM subnet s INNER JOIN subnetlocation sl ON s.subnet_id=sl.subnet_id WHERE sl.location_id='$location_id'") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); + } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); -set("sublocation_id", $row->location_id); + $tp->set("sublocation_name", $row->location_name); + $tp->parse("sublocationrow"); + } + if (($i>0) ? $tp->parse("sublocation") : $tp->hide("sublocation")); + + // display options + if($_SESSION['suser_level'] >= $config_userlevel_assignlocationtosubnet) { + $tp->set("location_id", $location_id); + $tp->parse("assignlocationtosubnet"); + } else { + $tp->hide("assignlocationtosubnet"); + } + if($_SESSION['suser_level'] >= $config_userlevel_locationedit) { + $tp->set("location_id", $location_id); + $tp->parse("locationedit"); + } else { + $tp->hide("locationedit"); + } + if($_SESSION['suser_level'] >= $config_userlevel_locationdel) { + $tp->set("location_id", $location_id); + $tp->parse("locationdel"); + } else { + $tp->hide("locationdel"); } + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/login.php b/login.php index 8dcda3a..7729994 100644 --- a/login.php +++ b/login.php @@ -1,6 +1,5 @@ "" && trim($_POST['user_pass']) <> "") { $user_name = $_POST['user_name']; - $result = mysql_query("SELECT user_id, user_pass, user_level FROM user WHERE user_name='$user_name'") or die(mysql_error()); + $result = mysql_query("SELECT user_id, user_pass, user_level, user_displayname, user_mac, user_lang FROM user WHERE user_name='$user_name'") or die(mysql_error()); if(mysql_num_rows($result) > 0) { if(!strcmp(md5($_POST['user_pass']), mysql_result($result, 0, "user_pass"))) { // all ok, user logged in $_SESSION['suser_id'] = mysql_result($result, 0, "user_id"); $_SESSION['suser_level'] = mysql_result($result, 0, "user_level"); + $_SESSION['suser_displayname'] = mysql_result($result, 0, "user_displayname"); + $_SESSION['suser_mac'] = mysql_result($result, 0, "user_mac"); + $_SESSION['suser_lang'] = mysql_result($result, 0, "user_lang"); header("Location: index.php"); } else { @@ -37,7 +39,7 @@

IP Reg - +

diff --git a/logout.php b/logout.php index 5e2e145..d48cba9 100644 --- a/logout.php +++ b/logout.php @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/nodeadd.php b/nodeadd.php index bb201c5..601a08b 100644 --- a/nodeadd.php +++ b/nodeadd.php @@ -1,191 +1,43 @@ = 2) { + // set template + $tp = new Template("tpl/nodeadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $ip = str_replace(' ', '', $_POST['ip']); - - // IP in use? - $result = mysql_query("SELECT * FROM node WHERE ip='$ip'"); - if (mysql_num_rows($result)!=0) { - echo 'IP in use!'; - exit; - } else { - $asset_name = $_POST['asset_name']; - $hostname = $_POST['hostname']; - $assetclass_id = $_POST['assetclass_id']; - mysql_query("INSERT INTO asset (asset_name, hostname, assetclass_id) VALUE ('$asset_name', '$hostname', '$assetclass_id')") or die(mysql_error()); - - // get asset_id for new node - $asset_id = mysql_insert_id(); - $mac = strip_mac($_POST['mac']); - - // DNS1 - if (!empty($_POST['dns1']) && isset($_POST['dns1suffix'])) { - $dns1 = $_POST['dns1'] . $config_dns1suffix; - } else { - $dns1 = $_POST['dns1']; - } - - // DNS2 - if (!empty($_POST['dns2']) && isset($_POST['dns2suffix'])) { - $dns2 = $_POST['dns2'] . $config_dns2suffix; - } else { - $dns2 = $_POST['dns2']; - } - - $subnet_id = $_POST['subnet_id']; - mysql_query("INSERT INTO node (ip, mac, dns1, dns2, subnet_id, asset_id) VALUE ('$ip', '$mac', '$dns1', '$dns2', '$subnet_id', '$asset_id')") or die(mysql_error()); - $node_id = mysql_insert_id(); - - header_location("assetview.php?asset_id=" . $asset_id); - } - } + // set language variables + $tp->setvars($lang); - // check for ip - if (isset($_GET['ip'])) { - $ip = $_GET['ip']; - } else { - $ip = ""; - } - // check for subnet_id - if (isset($_GET['subnet_id'])) { - $subnet_id = $_GET['subnet_id']; - } else { - $subnet_id = ''; + // check for set ip and/or subnet_id + if ((isset($_GET['ip'])) ? $ip = $tp->set("ip", $_GET['ip']) : $tp->set("ip", "")); + if ((isset($_GET['subnet_id'])) ? $subnet_id = $_GET['subnet_id'] : $subnet_id = ''); + + // set variables + $tp->set("config_dns1suffix", $config_dns1suffix); + $tp->set("config_dns2suffix", $config_dns2suffix); + + // get subnet info + $result = mysql_query("SELECT subnet_id, subnet_address, subnet_mask FROM subnet ORDER BY INET_ATON(subnet_address)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + if (($row->subnet_id==$subnet_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); } -?> + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Add new node:
-
- Asset name: - - - - * -
- Hostname: - - - -   -
- IP Address: - - - - * -
- Subnet:
-
- - - * -
- Asset class: - - - - * -
- MAC Address: - - - -   -
- DNS name: - - - - -
- DNS alias: - - - - -
- -
-
- -set("assetclass_id", $row->assetclass_id); + $tp->set("assetclass_name", $row->assetclass_name); + $tp->parse("assetclassrow"); } + if (($i>0) ? $tp->parse("assetclass") : $tp->hide("assetclass")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/nodedel.php b/nodedel.php index 12929c1..0bd323d 100644 --- a/nodedel.php +++ b/nodedel.php @@ -1,23 +1,25 @@ = 2) { - + // get id $node_id = $_GET['node_id']; - // get asset id - $result = mysql_query("SELECT asset_id FROM node WHERE node_id='$node_id'") or die(mysql_error()); - $asset_id = mysql_result($result, 0, "asset_id"); - - // delete node - mysql_query("DELETE FROM node WHERE node_id='$node_id'") or die(mysql_error()); + // set template + $tp = new Template("tpl/nodedel.tpl"); - // redirect - header("Location: assetview.php?asset_id=" . $asset_id); + // set language variables + $tp->setvars($lang); - // end display only if admin - } + // get asset info + $result = mysql_query("SELECT ip, asset_id FROM node WHERE node_id='$node_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("node_id", $node_id); + $tp->set("asset_id", $row->asset_id); + $tp->set("ip", $row->ip); + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/nodeedit.php b/nodeedit.php index 142c597..582a605 100644 --- a/nodeedit.php +++ b/nodeedit.php @@ -1,129 +1,41 @@ = 2) { - - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $node_id = $_POST['node_id']; - $subnet_id = $_POST['subnet_id']; - $mac = strip_mac($_POST['mac']); - $dns1 = $_POST['dns1']; - $dns2 = $_POST['dns2']; - $node_info = $_POST['node_info']; - mysql_query("UPDATE node SET subnet_id='$subnet_id', mac='$mac', dns1='$dns1', dns2='$dns2', node_info='$node_info' WHERE node_id='$node_id'") or die(mysql_error()); - - header_location("nodeview.php?node_id=" . $node_id); - } - + // get id $node_id = $_GET['node_id']; + // set template + $tp = new Template("tpl/nodeedit.tpl"); + + // set language variables + $tp->setvars($lang); + // get node info - $result = mysql_query("SELECT a.asset_name, n.ip, n.mac, n.dns1, n.dns2, n.subnet_id, n.node_info FROM asset a, node n WHERE node_id='$node_id' AND a.asset_id=n.asset_id"); - while ($row = mysql_fetch_object($result)) { - $ip = $row->ip; - $subnet_id = $row->subnet_id; - $mac = $row->mac; - $dns1 = $row->dns1; - $dns2 = $row->dns2; - $node_info = $row->node_info; - $asset_name = $row->asset_name; - } -?> + $result = mysql_query("SELECT a.asset_name, n.ip, n.mac, n.dns1, n.dns2, n.subnet_id, n.node_info FROM asset a, node n WHERE node_id='$node_id' AND a.asset_id=n.asset_id") or die(mysql_error()); + $row = mysql_fetch_object($result); + $subnet_id = $row->subnet_id; + $tp->set("node_id", $node_id); + $tp->set("asset_name", $row->asset_name); + $tp->set("ip", $row->ip); + $tp->set("mac", write_mac($row->mac)); + $tp->set("dns1", $row->dns1); + $tp->set("dns2", $row->dns2); + $tp->set("node_info", nl2br($row->node_info)); -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Edit node:
-
- Asset: - - -
- IP Address: - - -
- Subnet:
-
- - - * -
- MAC Address: - - -
- DNS name: - - -
- DNS alias: - - -
- Node info: - - -
- -
-
- -subnet_id==$subnet_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/nodelist.php b/nodelist.php index 103e649..bee9d89 100644 --- a/nodelist.php +++ b/nodelist.php @@ -4,77 +4,47 @@ // get id $subnet_id = $_GET['subnet_id']; - // get ordering + // set template + $tp = new Template("tpl/nodelist.tpl"); + + // set language variables + $tp->setvars($lang); + + // set variables + $tp->set("subnet_id", $subnet_id); + + // set ordering if (isset($_GET['order'])) { - $order = $_GET['order']; + switch($_GET['order']) { + case ("asset_name") : $order = "a.asset_name"; break; + case ("hostname") : $order = "a.hostname"; break; + case ("mac") : $order = "n.mac"; break; + case ("dns1") : $order = "n.dns1"; break; + case ("dns2") : $order = "n.dns2"; break; + default : $order = "INET_ATON(n.ip)"; + } } else { $order = "INET_ATON(n.ip)"; } -?> - - - - - - - - - - - -asset_id; - $asset_name = $row->asset_name; - $hostname = $row->hostname; - $node_id = $row->node_id; - $ip = $row->ip; - $mac = write_mac($row->mac); - $dns1 = $row->dns1; - $dns2 = $row->dns2; -?> - - - - - - - - - -set("asset_id", $row->asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->set("hostname", $row->hostname); + $tp->set("node_id", $row->node_id); + $tp->set("ip", $row->ip); + $tp->set("mac", write_mac($row->mac)); + $tp->set("dns1", $row->dns1); + $tp->set("dns2", $row->dns2); + $tp->parse("noderow"); } -?> - -
- IP Address: - - Asset name: - - Hostname: - - MAC Address: - - DNS name: - - DNS alias: -
- - - - - - - - - - - -
- -0) ? $tp->parse("node") : $tp->hide("node")); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/nodeview.php b/nodeview.php index 9a913e3..97d30d3 100644 --- a/nodeview.php +++ b/nodeview.php @@ -4,106 +4,43 @@ // get id $node_id = $_GET['node_id']; - // get node info - $result = mysql_query("SELECT a.asset_name, a.asset_id, n.ip, n.mac, n.dns1, n.dns2, n.node_info, s.subnet_id, s.subnet_address, s.subnet_mask FROM asset a, node n, subnet s WHERE n.node_id='$node_id' AND a.asset_id=n.asset_id AND s.subnet_id=n.subnet_id"); - while ($row = mysql_fetch_object($result)) { - $asset_id = $row->asset_id; - $asset_name = $row->asset_name; - $ip = $row->ip; - $mac = write_mac($row->mac); - $dns1 = $row->dns1; - $dns2 = $row->dns2; - $node_info = $row->node_info; - $subnet_id = $row->subnet_id; - $subnet_address = $row->subnet_address; - $subnet_mask = $row->subnet_mask; - } -?> + // set template + $tp = new Template("tpl/nodeview.tpl"); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- IP Address: - - -
- Subnet - - / -
 
- Asset name: - - -
- MAC Address: - - -
- DNS name: - - -
- DNS alias: - - -
- Node info: - - -
- -= 2) { -?> - -

+ // set language variables + $tp->setvars($lang); - - - - - - - -
- Modify node -
- Delete node -
+ // get node info + $result = mysql_query("SELECT a.asset_name, a.asset_id, n.ip, n.mac, n.dns1, n.dns2, n.node_info, s.subnet_id, s.subnet_address, s.subnet_mask FROM asset a, node n, subnet s WHERE n.node_id='$node_id' AND a.asset_id=n.asset_id AND s.subnet_id=n.subnet_id") or die(mysql_error()); + $row = mysql_fetch_object($result); + $tp->set("asset_id", $row->asset_id); + $tp->set("asset_name", $row->asset_name); + $tp->set("ip", $row->ip); + $tp->set("mac", write_mac($row->mac)); + $tp->set("dns1", $row->dns1); + $tp->set("dns2", $row->dns2); + $tp->set("node_info", nl2br($row->node_info)); + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); -= $config_userlevel_nodeedit) { + $tp->set("node_id", $node_id); + $tp->parse("nodeedit"); + } else { + $tp->hide("nodeedit"); } + if($_SESSION['suser_level'] >= $config_userlevel_nodedel) { + $tp->set("node_id", $node_id); + $tp->parse("nodedel"); + } else { + $tp->hide("nodedel"); + } + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/options.php b/options.php index 51a27a7..4ef0443 100644 --- a/options.php +++ b/options.php @@ -1,77 +1,28 @@ = 2) { -?> - - - - - - - - - - - - - - - - - - - - - - - - - - -
- IP Reg options -
- Add new asset -
- Add new assetclass -
- Add new location -
- Add new node -
- Add new user -
- Add new subnet -
- Add new vlan -
- + // set template + $tp = new Template("tpl/options.tpl"); + + // set language variables + $tp->setvars($lang); + + // display options + if(($_SESSION['suser_level'] >= $config_userlevel_assetadd) ? $tp->parse("assetadd") : $tp->hide("assetadd")); + if(($_SESSION['suser_level'] >= $config_userlevel_assetclassadd) ? $tp->parse("assetclassadd") : $tp->hide("assetclassadd")); + if(($_SESSION['suser_level'] >= $config_userlevel_locationadd) ? $tp->parse("locationadd") : $tp->hide("locationadd")); + if(($_SESSION['suser_level'] >= $config_userlevel_nodeadd) ? $tp->parse("nodeadd") : $tp->hide("nodeadd")); + if(($_SESSION['suser_level'] >= $config_userlevel_useradd) ? $tp->parse("useradd") : $tp->hide("useradd")); + if(($_SESSION['suser_level'] >= $config_userlevel_subnetadd) ? $tp->parse("subnetadd") : $tp->hide("subnetadd")); + if(($_SESSION['suser_level'] >= $config_userlevel_vlanadd) ? $tp->parse("vlanadd") : $tp->hide("vlanadd")); + + if(($_SESSION['suser_level'] >= $config_userlevel_assigniptoasset) ? $tp->parse("assigniptoasset") : $tp->hide("assigniptoasset")); + if(($_SESSION['suser_level'] >= $config_userlevel_assignlocationtosubnet) ? $tp->parse("assignlocationtosubnet") : $tp->hide("assignlocationtosubnet")); + if(($_SESSION['suser_level'] >= $config_userlevel_assignvlantosubnet) ? $tp->parse("assignvlantosubnet") : $tp->hide("assignvlantosubnet")); -

- - - - - - - - - - - -
- Personal options -
- Modify settings -
- Modify password -
+ // output + $tp->parse(); + $tp->spit(); - \ No newline at end of file diff --git a/search.php b/search.php index f6ac3a4..1508dd4 100644 --- a/search.php +++ b/search.php @@ -1,103 +1,105 @@ '; - - // look for asset - $result = mysql_query("SELECT asset_id, asset_name FROM asset WHERE asset_name LIKE '$needle' OR asset_info LIKE '%$needle%' ORDER BY asset_name"); - if (mysql_num_rows($result)>0) { - echo 'Asset(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->asset_name . ''; - $resultcounter++; - } - - // look for location - $result = mysql_query("SELECT location_id, location_name FROM location WHERE location_name LIKE '$needle' OR location_info LIKE '%$needle%' ORDER BY location_name"); - if (mysql_num_rows($result)>0) { - echo 'Location(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->location_name . ''; - $resultcounter++; - } - - // look for ip - $result = mysql_query("SELECT node_id, ip FROM node WHERE ip LIKE '$needle' ORDER BY ip"); - if (mysql_num_rows($result)>0) { - echo 'Registered IP(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->ip . ''; - $resultcounter++; - } - - // look for mac - $mac = strip_mac($needle); - $result = mysql_query("SELECT node_id, mac FROM node WHERE mac LIKE '$mac' ORDER BY mac"); - if (mysql_num_rows($result)>0) { - echo 'MAC(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . write_mac($row->mac) . ''; - $resultcounter++; - } - - // look for dns1 - $result = mysql_query("SELECT node_id, dns1 FROM node WHERE dns1 LIKE '$needle' ORDER BY dns1"); - if (mysql_num_rows($result)>0) { - echo 'DNS name(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->dns1 . ''; - $resultcounter++; - } + // set template + $tp = new Template("tpl/search.tpl"); - // look for dns2 - $result = mysql_query("SELECT node_id, dns2 FROM node WHERE dns2 LIKE '$needle' ORDER BY dns2"); - if (mysql_num_rows($result)>0) { - echo 'DNS alias(es):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->dns2 . ''; - $resultcounter++; - } + // set language variables + $tp->setvars($lang); - // look for subnet - $result = mysql_query("SELECT subnet_id, subnet_address FROM subnet WHERE subnet_address LIKE '$needle' OR subnet_info LIKE '%$needle%' ORDER BY INET_ATON(subnet_address)"); - if (mysql_num_rows($result)>0) { - echo 'Subnet(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->subnet_address . ''; - $resultcounter++; - } - - // look for vlan - $result = mysql_query("SELECT vlan_id, vlan_name FROM vlan WHERE vlan_name LIKE '$needle' OR vlan_info LIKE '%$needle%' ORDER BY vlan_name"); - if (mysql_num_rows($result)>0) { - echo 'VLAN(s):'; - } - while ($row = mysql_fetch_object($result)) { - echo '' . $row->vlan_name . ''; - $resultcounter++; + // get string that was searched for + if (empty($search)) { + $tp->parse("nosearch"); + $tp->hide("asset"); + $tp->hide("location"); + $tp->hide("node"); + $tp->hide("subnet"); + $tp->hide("vlan"); + $tp->hide("resultcount"); + } else { + $tp->hide("nosearch"); + + // set needle and counter + $needle = '%' . $search . '%'; + $resultcounter = 0; + + // search assets + $result = mysql_query("SELECT asset_id, asset_name FROM asset WHERE asset_name LIKE '$needle' OR asset_info LIKE '%$needle%' ORDER BY asset_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("counter", $i+1); + $tp->set("item_name", $lang['lang_assets']); + $tp->set("item", "asset"); + $tp->set("id", $row->asset_id); + $tp->set("name", $row->asset_name); + $resultcounter++; + $tp->parse("row"); + } + if (($i>0) ? $tp->parse("asset") : $tp->hide("asset")); + $tp->clear("row"); + + // search locations + $result = mysql_query("SELECT location_id, location_name FROM location WHERE location_name LIKE '$needle' OR location_info LIKE '%$needle%' ORDER BY location_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("counter", $i+1); + $tp->set("item_name", $lang['lang_locations']); + $tp->set("item", "location"); + $tp->set("id", $row->location_id); + $tp->set("name", $row->location_name); + $resultcounter++; + $tp->parse("row"); + } + if (($i>0) ? $tp->parse("location") : $tp->hide("location")); + $tp->clear("row"); + + // search node + $result = mysql_query("SELECT node_id, ip FROM node WHERE ip LIKE '$needle' OR mac LIKE '$needle' OR dns1 LIKE '$needle' OR dns2 LIKE '$needle' OR node_info LIKE '$needle' ORDER BY ip") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("counter", $i+1); + $tp->set("item_name", $lang['lang_nodes']); + $tp->set("item", "node"); + $tp->set("id", $row->node_id); + $tp->set("name", $row->ip); + $resultcounter++; + $tp->parse("row"); + } + if (($i>0) ? $tp->parse("node") : $tp->hide("node")); + $tp->clear("row"); + + // search subnet + $result = mysql_query("SELECT subnet_id, subnet_address FROM subnet WHERE subnet_address LIKE '$needle' OR subnet_info LIKE '%$needle%' ORDER BY INET_ATON(subnet_address)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("counter", $i+1); + $tp->set("item_name", $lang['lang_subnets']); + $tp->set("item", "subnet"); + $tp->set("id", $row->subnet_id); + $tp->set("name", $row->subnet_address); + $resultcounter++; + $tp->parse("row"); + } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + $tp->clear("row"); + + // search vlan + $result = mysql_query("SELECT vlan_id, vlan_name FROM vlan WHERE vlan_name LIKE '$needle' OR vlan_info LIKE '%$needle%' ORDER BY vlan_name") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("counter", $i+1); + $tp->set("item_name", $lang['lang_vlans']); + $tp->set("item", "vlan"); + $tp->set("id", $row->vlan_id); + $tp->set("name", $row->vlan_name); + $resultcounter++; + $tp->parse("row"); + } + if (($i>0) ? $tp->parse("vlan") : $tp->hide("vlan")); + $tp->clear("row"); + + $tp->set("resultcounter", $resultcounter); + $tp->parse("resultcount"); } - echo ' '; - echo 'Results found: ' . $resultcounter . ''; - - echo ''; - + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/submit.php b/submit.php new file mode 100644 index 0000000..d913903 --- /dev/null +++ b/submit.php @@ -0,0 +1,419 @@ + login + if(empty($_SESSION['suser_id'])) { + header("Location: login.php"); + exit; + } + + // includes + include("config.php"); + include("dbconnect.php"); + include("functions.php"); + + // check for submit + if ($_SERVER['REQUEST_METHOD']=="POST" ) { + // check for action + if (isset($_POST['add'])) { + switch ($_POST['add']) { + case ("asset") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assetadd) { + // get variables + $asset_name = $_POST['asset_name']; + $hostname = $_POST['hostname']; + $assetclass_id = $_POST['assetclass_id']; + $asset_info = $_POST['asset_info']; + + // update db + mysql_query("INSERT INTO asset(asset_name, hostname, assetclass_id, asset_info) VALUE ('$asset_name', '$hostname', '$assetclass_id', '$asset_info')") or die(mysql_error()); + $asset_id = mysql_insert_id(); + + // redirect + header_location("assetview.php?asset_id=" . $asset_id); + } + break; + case ("assetclass") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assetclassadd) { + // get variables + $assetclass_name = $_POST['assetclass_name']; + $assetclassgroup_id = $_POST['assetclassgroup_id']; + + // update db + mysql_query("INSERT INTO assetclass (assetclass_name, assetclassgroup_id) VALUE ('$assetclass_name', '$assetclassgroup_id')") or die(mysql_error()); + $assetclass_id = mysql_insert_id(); + + // redirect + header_location("assetclassview.php?assetclass_id=" . $assetclass_id); + } + break; + case ("assigniptoasset") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assigniptoasset) { + // get variables + $ip = $_POST['ip']; + $subnet_id = $_POST['subnet_id']; + $asset_id = $_POST['asset_id']; + $mac = strip_mac($_POST['mac']); + if ((!empty($_POST['dns1']) && isset($_POST['dns1suffix'])) ? $dns1 = $_POST['dns1'] . $config_dns1suffix : $dns1 = $_POST['dns1']); + if ((!empty($_POST['dns2']) && isset($_POST['dns2suffix'])) ? $dns2 = $_POST['dns2'] . $config_dns2suffix : $dns2 = $_POST['dns2']); + $node_info = $_POST['node_info']; + + // update db + mysql_query("INSERT INTO node (ip, mac, dns1, dns2, subnet_id, asset_id, node_info) VALUE ('$ip', '$mac', '$dns1', '$dns2', '$subnet_id', '$asset_id', '$node_info')") or die(mysql_error()); + + // redirect + header_location("assetview.php?asset_id=" . $asset_id); + } + break; + case ("assignlocationtosubnet") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assignlocationtosubnet) { + // get variables + $location_id = $_POST['location_id']; + $subnet_id = $_POST['subnet_id']; + + // update db + mysql_query("INSERT INTO subnetlocation (location_id, subnet_id) VALUE ('$location_id', '$subnet_id')") or die(mysql_error()); + + // redirect + header_location("Location: location.php"); + } + break; + case ("assignvlantosubnet") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assignvlantosubnet) { + // get variables + $vlan_id = $_POST['vlan_id']; + $subnet_id = $_POST['subnet_id']; + + // update db + mysql_query("UPDATE subnet SET vlan_id='$vlan_id' WHERE subnet_id='$subnet_id'") or die(mysql_error()); + + // redirect + header_location("vlanview.php?vlan_id=" . $vlan_id); + } + break; + case ("location") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_locationadd) { + // get variables + $location_name = $_POST['location_name']; + $parent = $_POST['parent']; + + // update db + mysql_query("INSERT INTO location (location_name, parent) VALUE ('$location_name', '$parent')") or die(mysql_error()); + $location_id = mysql_insert_id(); + + // redirect + header_location("locationview.php?location_id=" . $location_id); + } + break; + case ("node") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_nodeadd) { + $result = mysql_query("SELECT * FROM node WHERE ip='$ip'") or die(mysql_error()); + if (mysql_num_rows($result) == 0) { + // get variables + $asset_name = $_POST['asset_name']; + $hostname = $_POST['hostname']; + $assetclass_id = $_POST['assetclass_id']; + $ip = $_POST['ip']; + $mac = strip_mac($_POST['mac']); + if ((!empty($_POST['dns1']) && isset($_POST['dns1suffix'])) ? $dns1 = $_POST['dns1'] . $config_dns1suffix : $dns1 = $_POST['dns1']); + if ((!empty($_POST['dns2']) && isset($_POST['dns2suffix'])) ? $dns2 = $_POST['dns2'] . $config_dns2suffix : $dns2 = $_POST['dns2']); + $subnet_id = $_POST['subnet_id']; + + // update db + mysql_query("INSERT INTO asset (asset_name, hostname, assetclass_id) VALUE ('$asset_name', '$hostname', '$assetclass_id')") or die(mysql_error()); + $asset_id = mysql_insert_id(); + mysql_query("INSERT INTO node (ip, mac, dns1, dns2, subnet_id, asset_id) VALUE ('$ip', '$mac', '$dns1', '$dns2', '$subnet_id', '$asset_id')") or die(mysql_error()); + $node_id = mysql_insert_id(); + + // redirect + header_location("assetview.php?asset_id=" . $asset_id); + } + // display error + $error = "ipinuse"; + } + break; + case ("subnet") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_subnetadd) { + // get variables + $subnet_address= $_POST['subnet_address']; + $subnet_mask = $_POST['subnet_mask']; + + // update db + mysql_query("INSERT INTO subnet (subnet_address, subnet_mask) VALUE ('$subnet_address', '$subnet_mask')") or die(mysql_error()); + $subnet_id = mysql_insert_id(); + + // redirect + header_location("subnetview.php?subnet_id=" . $subnet_id); + } + break; + case ("user") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_useradd) { + // check for unique username + $result = mysql_query("SELECT user_name FROM user WHERE user_name='$user_name'") or die(mysql_error()); + if(mysql_num_rows($result) == 0) { + // get variables + $user_name = $_POST['user_name']; + $user_pass = md5($config_user_pass); + $user_level = $_POST['user_level']; + $displayname = $_POST['user_name']; + $user_lang = $config_user_lang; + + // update db + mysql_query("INSERT INTO user (user_name, user_pass, user_level, user_displayname, user_lang) VALUE ('$user_name', '$user_pass', '$user_level', '$displayname', '$user_lang')") or die(mysql_error()); + + // redirect + header_location("options.php"); + } + // display error + $error = "usernameinuse"; + } + break; + case ("vlan") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_vlanadd) { + // get variables + $vlan_name = $_POST['vlan_name']; + $vlan_number= $_POST['vlan_number']; + + // update db + mysql_query("INSERT INTO vlan (vlan_name, vlan_number) VALUE ('$vlan_name', '$vlan_number')") or die(mysql_error()); + $vlan_id = mysql_insert_id(); + + // redirect + header_location("vlan.php?vlan_id=" . $vlan_id); + } + break; + } + } + + if (isset($_POST['edit'])) { + switch ($_POST['edit']) { + case ("asset") : + if($_SESSION['suser_level'] >= $config_userlevel_assetedit) { + // get variables + $asset_id = $_POST['asset_id']; + $asset_name = $_POST['asset_name']; + $hostname = $_POST['hostname']; + $assetclass_id = $_POST['assetclass_id']; + $asset_info = $_POST['asset_info']; + + // update db + mysql_query("UPDATE asset SET asset_name='$asset_name', hostname='$hostname', assetclass_id='$assetclass_id', asset_info='$asset_info' WHERE asset_id='$asset_id'") or die(mysql_error()) or die(mysql_error()); + + // redirect + header_location("assetview.php?asset_id=" . $asset_id); + } + break; + case ("assetclass") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assetclassedit) { + // get variables + $assetclass_id = $_POST['assetclass_id']; + $assetclass_name = $_POST['assetclass_name']; + $assetclassgroup_id = $_POST['assetclassgroup_id']; + + // update db + mysql_query("UPDATE assetclass SET assetclass_name='$assetclass_name', assetclassgroup_id='$assetclassgroup_id' WHERE assetclass_id='$assetclass_id'") or die(mysql_error()); + + // redirect + header_location("assetclassview.php?assetclass_id=" . $assetclass_id); + } + break; + case ("node") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_nodeedit) { + // get variables + $node_id = $_POST['node_id']; + $subnet_id = $_POST['subnet_id']; + $mac = strip_mac($_POST['mac']); + $dns1 = $_POST['dns1']; + $dns2 = $_POST['dns2']; + $node_info = $_POST['node_info']; + + // update db + mysql_query("UPDATE node SET subnet_id='$subnet_id', mac='$mac', dns1='$dns1', dns2='$dns2', node_info='$node_info' WHERE node_id='$node_id'") or die(mysql_error()); + + // redirect + header_location("nodeview.php?node_id=" . $node_id); + } + break; + case ("subnet") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_subnetedit) { + // get variables + $subnet_id = $_POST['subnet_id']; + $subnet_address= $_POST['subnet_address']; + $subnet_mask = $_POST['subnet_mask']; + $vlan_id = $_POST['vlan_id']; + $subnet_info = $_POST['subnet_info']; + + // update db + mysql_query("UPDATE subnet SET subnet_address='$subnet_address', subnet_mask='$subnet_mask', vlan_id='$vlan_id', subnet_info='$subnet_info' WHERE subnet_id='$subnet_id'") or die(mysql_error()); + + // redirect + header_location("subnetview.php?subnet_id=" . $subnet_id); + } + break; + case ("user") : + // get variables + $user_displayname = $_POST['user_displayname']; + $user_mac = $_POST['user_mac']; + $user_lang = $_POST['user_lang']; + + //update db + mysql_query("UPDATE user SET user_displayname='$user_displayname', user_mac='$user_mac', user_lang='$user_lang' WHERE user_id='$suser_id'") or die(mysql_error()); + + // update session + $_SESSION['suser_displayname'] = $user_displayname; + $_SESSION['suser_mac'] = $user_mac; + $_SESSION['suser_lang'] = $user_lang; + + // redirect + header_location("options.php"); + break; + case ("userpass") : + // check variables + if (trim($_POST['user_passold']) <> "" && trim($_POST['user_passnew1']) && trim($_POST['user_passnew2']) && trim($_POST['user_passnew1']) == trim($_POST['user_passnew2'])) { + // get variables + $user_passold = $_POST['user_passold']; + $user_passnew = md5($_POST['user_passnew1']); + + // get current pass + $result = mysql_query("SELECT user_pass FROM user WHERE user_id='$suser_id'") or die(mysql_error()); + // check current pass + if(!strcmp(md5($user_passold), mysql_result($result, 0, "user_pass"))) { + // update db + mysql_query("UPDATE user SET user_pass='$user_passnew' WHERE user_id='$suser_id'") or die(mysql_error()); + + // redirect + header_location("options.php"); + } + } + + // display error + echo 'Error!'; + break; + case ("vlan") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_vlanedit) { + // get variables + $vlan_id = $_POST['vlan_id']; + $vlan_name = $_POST['vlan_name']; + $vlan_number = $_POST['vlan_number']; + $vlan_info = $_POST['vlan_info']; + + // update db + mysql_query("UPDATE vlan SET vlan_name='$vlan_name', vlan_number='$vlan_number', vlan_info='$vlan_info' WHERE vlan_id='$vlan_id'") or die(mysql_error()); + + // redirect + header_location("vlanview.php?vlan_id=" . $vlan_id); + } + break; + } + } + + if (isset($_POST['del'])) { + switch ($_POST['del']) { + case ("asset") : + if($_SESSION['suser_level'] >= $config_userlevel_assetdel) { + // get variables + $asset_id = $_POST['asset_id']; + + // update db + mysql_query("DELETE FROM asset WHERE asset_id='$asset_id'") or die(mysql_error()); + mysql_query("DELETE FROM node WHERE asset_id='$asset_id'") or die(mysql_error()); + + // redirect + header_location("asset.php"); + } + break; + case ("assetclass") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_assetclassdel) { + // get variables + $assetclass_id = $_POST['assetclass_id']; + + // update db + mysql_query("DELETE FROM assetclass WHERE assetclass_id='$assetclass_id'") or die(mysql_error()); + + // redirect + header_location("assetclass.php"); + } + break; + case ("location") : + if($_SESSION['suser_level'] >= $config_userlevel_locationdel) { + // get variables + $location_id = $_POST['location_id']; + + $result = mysql_query("SELECT location_id FROM location WHERE parent='$location_id'") or die(mysql_error()); + if (mysql_num_rows($result) == 0) { + // update db + mysql_query("DELETE FROM location WHERE location_id='$location_id'") or die(mysql_error()); + + // redirect + header_location("location.php"); + } + // display error + $error = "locationisparent"; + } + break; + case ("node") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_nodedel) { + // get variables + $node_id = $_POST['node_id']; + $asset_id = $_POST['asset_id']; + + // update db + mysql_query("DELETE FROM node WHERE node_id='$node_id'") or die(mysql_error()); + + // redirect + header_location("assetview.php?asset_id=" . $asset_id); + } + break; + case ("subnet") : + if($_SESSION['suser_level'] >= $config_userlevel_subnetdel) { + // get variables + $subnet_id = $_POST['subnet_id']; + + // update db + mysql_query("DELETE FROM subnet WHERE subnet_id='$subnet_id'") or die(mysql_error()); + mysql_query("DELETE FROM node WHERE subnet_id='$subnet_id'") or die(mysql_error()); + + // redirect + header_location("asset.php"); + } + break; + case ("vlan") : + // check permission + if($_SESSION['suser_level'] >= $config_userlevel_vlandel) { + // get variables + $vlan_id = $_POST['vlan_id']; + + // update db + mysql_query("DELETE FROM vlan WHERE vlan_id='$vlan_id'") or die(mysql_error()); + + // redirect + header_location("vlan.php"); + } + break; + } + } + } + // still not redirected, check for error + if(empty($error)) { + $error = "notallowed"; + } + + // redirect + header_location("error.php?error=" . $error); +?> \ No newline at end of file diff --git a/subnet.php b/subnet.php index 24ac45b..cd83adb 100644 --- a/subnet.php +++ b/subnet.php @@ -1,23 +1,25 @@ - - - - - - -'; - } -?> - -
- Subnet:
-
' . $row->subnet_address . '/' . $row->subnet_mask . '
- -setvars($lang); + + // get subnet info + $result = mysql_query("SELECT subnet_id, subnet_address, subnet_mask FROM subnet ORDER BY INET_ATON(subnet_address)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); + } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/subnetadd.php b/subnetadd.php index abee6b3..29602f9 100644 --- a/subnetadd.php +++ b/subnetadd.php @@ -1,54 +1,15 @@ = 2) { + // set template + $tp = new Template("tpl/subnetadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $subnet_address= $_POST['subnet_address']; - $subnet_mask = $_POST['subnet_mask']; - mysql_query("INSERT INTO subnet (subnet_address, subnet_mask) VALUE ('$subnet_address', '$subnet_mask')") or die(mysql_error()); - $subnet_id = mysql_insert_id(); - - header_location("subnetview.php?subnet_id=" . $subnet_id); - } -?> + // set language variables + $tp->setvars($lang); -

- - - - - - - - - - - - - - - -
- Add new subnet:
-
- Subnet Address: - - -
- Subnet Mask: - - (16-30) -
- -
-
- -parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/subnetdel.php b/subnetdel.php new file mode 100644 index 0000000..eed6b60 --- /dev/null +++ b/subnetdel.php @@ -0,0 +1,34 @@ +setvars($lang); + + // get subnet info + $result = mysql_query("SELECT subnet_address, subnet_mask FROM subnet WHERE subnet_id='$subnet_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("subnet_id", $subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + + // get node info + $result = mysql_query("SELECT node_id, ip, mac, dns1, dns2, node_info FROM node WHERE subnet_id='$subnet_id' ORDER BY INET_ATON(ip)") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("node_id", $row->node_id); + $tp->set("ip", $row->ip); + $tp->parse("noderow"); + } + if (($i>0) ? $tp->parse("node") : $tp->hide("node")); + + // output + $tp->parse(); + $tp->spit(); + + include("footer.php"); +?> \ No newline at end of file diff --git a/subnetedit.php b/subnetedit.php index b64609d..3060e04 100644 --- a/subnetedit.php +++ b/subnetedit.php @@ -1,100 +1,39 @@ = 2) { + // get id + $subnet_id = $_GET['subnet_id']; - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $subnet_id = $_POST['subnet_id']; - $subnet_address= $_POST['subnet_address']; - $subnet_mask = $_POST['subnet_mask']; - $vlan_id = $_POST['vlan_id']; - $subnet_info = $_POST['subnet_info']; - - mysql_query("UPDATE subnet SET subnet_address='$subnet_address', subnet_mask='$subnet_mask', vlan_id='$vlan_id', subnet_info='$subnet_info' WHERE subnet_id='$subnet_id'") or die(mysql_error()); - - header_location("subnetview.php?subnet_id=" . $subnet_id); - } + // set template + $tp = new Template("tpl/subnetedit.tpl"); - $subnet_id = $_GET['subnet_id']; + // set language variables + $tp->setvars($lang); - // get current information - $result = mysql_query("SELECT subnet_address, subnet_mask, vlan_id, subnet_info FROM subnet WHERE subnet_id='$subnet_id'"); - while ($row = mysql_fetch_object($result)) { - $subnet_address = $row->subnet_address; - $subnet_mask = $row->subnet_mask; - $vlan_id = $row->vlan_id; - $subnet_info = $row->subnet_info; - } -?> + // get subnet information + $result = mysql_query("SELECT subnet_address, subnet_mask, vlan_id, subnet_info FROM subnet WHERE subnet_id='$subnet_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $vlan_id = $row->vlan_id; + $tp->set("subnet_id", $subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->set("vlan_id", $vlan_id); + $tp->set("subnet_info", $row->subnet_info); -
- - - - - - - - - - - - - - - - - - - - - - - - -
- Edit subnet:
-
- Subnet Address: - - -
- Subnet Mask: - - -
- VLAN - - -
- Subnet info: - - -
- -
-
- -vlan_id==$vlan_id) ? $tp->set("selected", "selected") : $tp->set("selected", "")); + $tp->set("vlan_id", $row->vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + $tp->parse("vlanrow"); } + if (($i>0) ? $tp->parse("vlan") : $tp->hide("vlan")); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/subnetview.php b/subnetview.php index cb17fcf..cb55e2b 100644 --- a/subnetview.php +++ b/subnetview.php @@ -1,229 +1,216 @@ - - - - -subnet_address; - $subnet_mask = $row->subnet_mask; - $vlan_id = $row->vlan_id; - $subnet_info = $row->subnet_info; } - // determine current range + // set template + $tp = new Template("tpl/subnetview.tpl"); + + // set language variables + $tp->setvars($lang); + + // get subnet info + $result = mysql_query("SELECT subnet_address, subnet_mask, vlan_id, subnet_info FROM subnet WHERE subnet_id='$subnet_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $tp->set("subnet_id", $subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->set("subnet_info", nl2br($row->subnet_info)); + + // set needed variables + $subnet_address = $row->subnet_address; + $subnet_mask = $row->subnet_mask; + $vlan_id = $row->vlan_id; + + // split up the range $iprange = explode('.', $subnet_address); $iprange1 = $iprange[0]; $iprange2 = $iprange[1]; $iprange3 = $iprange[2]; $iprange4 = $iprange[3]; - // calculate no. of hosts - $hostcount = pow(2,(32-$subnet_mask)); - - // is there a need for pagination? - if ($hostcount>256) { - $maxdisplayedip = 256; + // create array for these addresses + $subnet = array(); + if ($subnet_mask>=24) { + // Class C + // calculate hosts + $hostcount = pow(2,(32-$subnet_mask)); - // calculate broadcast address and create pagination - if ($hostcount>65536) { - // class A subnet - echo 'Class A subnets (>65536 nodes) are not supported'; - exit; - } else { - // class B subnet - $broadcast_address = $iprange1 . '.' . $iprange2 . '.' . ($hostcount/256-1) . '.255'; - - $pagination = 'Page: '; + // fill array with addresses we want to see + for($i=0;$i<$hostcount;$i++) { + $ip = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i); + $subnet[$ip] = array(); } + + // calculate broadcast address + $broadcast_address = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i-1); + + // no pagination needed + $tp->set("pagination", ' '); + } else if ($subnet_mask>=16) { + // Class B + // which part do we want to see? + if((empty($page)) ? $page=$subnet_address : $page=$page); + $page = explode('.', $page); + $page2 = $page[2]; + + // fill array with addresses we want to see + for($i=0;$i<256;$i++) { + $ip = $iprange1 . '.' . $iprange2 . '.' . $page2 . '.' . $i; + $subnet[$ip] = array(); + } + + // calculate broadcast address + $broadcast_address = $iprange1 . '.' . $iprange2 . '.' . ($iprange3+$i-1) . '.255'; + + // create pagination + $pagination = 'Page: ' . $iprange1 . '.' . $iprange2 . '. '; + $pagination .= ''; + $tp->set("pagination", $pagination); } else { - // // class C subnet so no pagination needed, set static variables - $pagination = ' '; - $page = 0; - $maxdisplayedip = $hostcount; - $broadcast_address = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$hostcount-1); - } -?> - - - - - - - -'; + // Class A + // which part do we want to see? + if((empty($page)) ? $page=$subnet_address : $page=$page); + $page = explode('.', $page); + $page2 = $page[1]; + $page3 = $page[2]; - for ($i=1;$i<=$maxdisplayedip;$i++) { - // build current ip - $ip = $iprange1 . '.' . $iprange2 . '.' . ($iprange3+$page) . '.' . ($i+$iprange4-1); - - // disable subnet_address and broadcast_address - if ($ip==$subnet_address) { - echo ''; - } else if ($ip==$broadcast_address) { - echo ''; - } else { - // check for current ip address - $result = mysql_query("SELECT a.asset_name, acg.color, n.node_id FROM asset a, assetclass ac, assetclassgroup acg, node n WHERE n.ip='$ip' AND a.asset_id=n.asset_id AND ac.assetclass_id=a.assetclass_id AND acg.assetclassgroup_id=ac.assetclassgroup_id"); - if (mysql_num_rows($result)==0) { - // ip not in use - echo ''; - } else { - // ip in use - while ($row = mysql_fetch_object($result)) { - $node_id = $row->node_id; - echo ''; - } - } - } - - if ($i%64==0) { - echo ''; - } + // fill array with addresses we want to see + for($i=0;$i<256;$i++) { + $ip = $iprange1 . '.' . $page2 . '.' . $page3 . '.' . $i; + $subnet[$ip] = array(); } -?> - - - -
- Subnet: - - -
-   -
- - - - - - - -
- - - - - - - - - - - - - -
- VLAN(s): - - - vlan_id . '">' . $row->vlan_name . ' ('. $row->vlan_number . ')'; - } - ?> - -
- Location(s): - - - location_id, '') . '
'; - } - ?> - -
- Subnet info: - - -
-
-   - - - - - - -'; - } -?> -
- Unassigned -
' . $row->assetclassgroup_name . '
-
- -

+ + // calculate broadcast address + $broadcast_address = $iprange1 . '.' . ($iprange+$i-1) . '.255.255'; + + // create pagination + $pagination = 'Page: '; + // selectbox 1 + $pagination .= ''; + $tp->set("pagination", $pagination); + } -= 2) { -?> - - - - - - - - - - - - - - -
- Modify subnet -
- Assign location -
- View assigned IP addresses in subnet -
- $node) { + if(($i%64==0) ? $tr="" : $tr=""); + if(empty($node)) { + $tp->set("url", 'assigniptonode.php?subnet_id=' . $subnet_id . '&ip='. $ip); + $tp->set("remotetext", $ip); + $tp->set("color", 'grey'); + } else if ($node[0]=="subnet_address") { + $tp->set("url", ""); + $tp->set("remotetext", $ip . ' ' . $lang['lang_subnet_subnetaddress']); + $tp->set("color", 'cross'); + } else if ($node[0]=="broadcast_address") { + $tp->set("url", ""); + $tp->set("remotetext", $ip . ' ' . $lang['lang_subnet_broadcastaddress']); + $tp->set("color", 'cross'); + } else { + $tp->set("url", 'nodeview.php?node_id=' . $node['node_id']); + $tp->set("remotetext", $ip . ' ' . $node['asset_name']); + $tp->set("color", $node['color']); + } + $tp->set("tr", $tr); + $tp->parse("iprow"); + $i++; + } + $tp->parse("subnet"); + + + // get vlan info + $result = mysql_query("SELECT vlan_id, vlan_number, vlan_name FROM vlan WHERE vlan_id='$vlan_id'") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("vlan_id", $row->vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->parse("vlanrow"); + } + if (($i>0) ? $tp->parse("vlan") : $tp->hide("vlan")); + + // get location info + $result = mysql_query("SELECT l.location_id, l.location_name FROM location l INNER JOIN subnetlocation sl ON l.location_id=sl.location_id WHERE sl.subnet_id='$subnet_id'") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("location_id", $row->location_id); + $tp->set("location_name", $row->location_name); + $tp->parse("locationrow"); + } + if (($i>0) ? $tp->parse("location") : $tp->hide("location")); + + // get assetclass info + $result = mysql_query("SELECT assetclassgroup_id, assetclassgroup_name, color FROM assetclassgroup ORDER BY assetclassgroup_id") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("assetclassgroup_id", $row->assetclassgroup_id); + $tp->set("assetclassgroup_name", $row->assetclassgroup_name); + $tp->set("color", $row->color); + $tp->parse("assetclassgrouprow"); + } + if (($i>0) ? $tp->parse("assetclassgroup") : $tp->hide("assetclassgroup")); + + // display options + if($_SESSION['suser_level'] >= $config_userlevel_assignlocationtosubnet) { + $tp->parse("assignlocationtosubnet"); + } else { + $tp->hide("assignlocationtosubnet"); + } + if($_SESSION['suser_level'] >= $config_userlevel_assignvlantosubnet) { + $tp->set("vlan_id", $vlan_id); + $tp->parse("assignvlantosubnet"); + } else { + $tp->hide("assignvlantosubnet"); + } + if($_SESSION['suser_level'] >= $config_userlevel_subnetedit) { + $tp->parse("subnetedit"); + } else { + $tp->hide("subnetedit"); + } + if($_SESSION['suser_level'] >= $config_userlevel_subnetdel) { + $tp->parse("subnetdel"); + } else { + $tp->hide("subnetdel"); + } + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/tpl/asset.tpl b/tpl/asset.tpl new file mode 100644 index 0000000..1d3d322 --- /dev/null +++ b/tpl/asset.tpl @@ -0,0 +1,16 @@ + [BLOCK table AS asset] + + + + + [BLOCK assetrow] + + + + [END assetrow] +
+ {lang_asset}:
+
+ {asset_name} +
+ [END table] \ No newline at end of file diff --git a/tpl/assetadd.tpl b/tpl/assetadd.tpl new file mode 100644 index 0000000..d1ef669 --- /dev/null +++ b/tpl/assetadd.tpl @@ -0,0 +1,53 @@ +

+ + + + + + + + + + + + + + [BLOCK table AS assetclass] + + + + + [END table] + + + + + + + +
+ {lang_asset_add}:
+
+ {lang_asset_name}: + + +
+ {lang_hostname}: + + +
+ {lang_assetclass}: + + +
+ {lang_asset_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/assetclass.tpl b/tpl/assetclass.tpl new file mode 100644 index 0000000..c282232 --- /dev/null +++ b/tpl/assetclass.tpl @@ -0,0 +1,16 @@ + [BLOCK table AS assetclass] + + + + + [BLOCK assetclassrow] + + + + [END assetclassrow] +
+ {lang_assetclass}:
+
+ {assetclass_name} +
+ [END table] \ No newline at end of file diff --git a/tpl/assetclassadd.tpl b/tpl/assetclassadd.tpl new file mode 100644 index 0000000..31f0f3d --- /dev/null +++ b/tpl/assetclassadd.tpl @@ -0,0 +1,37 @@ +
+ + + + + + + + + + [BLOCK table AS assetclassgroup] + + + + + [END table] + + + +
+ {lang_assetclass_add}:
+
+ {lang_assetclass_name}: + + +
+ {lang_assetclassgroup}:
+
+ +
+ +
+
\ No newline at end of file diff --git a/tpl/assetclassdel.tpl b/tpl/assetclassdel.tpl new file mode 100644 index 0000000..22984bd --- /dev/null +++ b/tpl/assetclassdel.tpl @@ -0,0 +1,34 @@ +
+ + + + + + +
+ {lang_assetclass_del}
+
+ +

+ + + + + + +
+ {lang_assetclass_name}: + + {assetclass_name} +
+ +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/assetclassedit.tpl b/tpl/assetclassedit.tpl new file mode 100644 index 0000000..d908ac6 --- /dev/null +++ b/tpl/assetclassedit.tpl @@ -0,0 +1,38 @@ +
+ + + + + + + + + + + [BLOCK table AS assetclassgroup] + + + + + [END table] + + + +
+ {lang_assetclass_edit}:
+
+ {lang_assetclass_name}: + + +
+ {lang_assetclassgroup}:
+
+ +
+ +
+
\ No newline at end of file diff --git a/tpl/assetclassgroupview.tpl b/tpl/assetclassgroupview.tpl new file mode 100644 index 0000000..5905985 --- /dev/null +++ b/tpl/assetclassgroupview.tpl @@ -0,0 +1,49 @@ + + + + + + + + + + + + [BLOCK table AS assetclass] + + [END table] + +
+ Assetclass Groupname: + + {assetclassgroup_name} +
+ Color: + + +
+ Assetclass(es): + + [BLOCK assetclassrow] + {assetclass_name}
+ [END assetclassrow] +
+ +

+ + + [BLOCK assetclassgroupedit] + + + + [END assetclassgroupedit] + [BLOCK assetclassgroupdel] + + + + [END assetclassgroupdel] +
+  {lang_assetclassgroup_edit} +
+  {lang_assetclassgroup_del} +
\ No newline at end of file diff --git a/tpl/assetclassview.tpl b/tpl/assetclassview.tpl new file mode 100644 index 0000000..0be2897 --- /dev/null +++ b/tpl/assetclassview.tpl @@ -0,0 +1,49 @@ + + + + + + + + + + [BLOCK table AS asset] + + + + + [END table] +
+ {lang_assetclass_name}: + + {assetclass_name} +
+ {lang_assetclassgroup_name}: + + {assetclassgroup_name} +
+ {lang_assets}:
+
+ [BLOCK assetrow] + {asset_name}
+ [END assetrow] +
+ +

+ + + [BLOCK assetclassedit] + + + + [END assetclassedit] + [BLOCK assetclassdel] + + + + [END assetclassdel] +
+  {lang_assetclass_edit} +
+  {lang_assetclass_del} +
\ No newline at end of file diff --git a/tpl/assetdel.tpl b/tpl/assetdel.tpl new file mode 100644 index 0000000..04ee402 --- /dev/null +++ b/tpl/assetdel.tpl @@ -0,0 +1,51 @@ +

+ + + + + + + + + + +
+ {lang_asset_del}
+
+ {lang_asset_name}: + + {asset_name} +
+ +

+ + [BLOCK table AS node] + + + + + [BLOCK noderow] + + + + + [END noderow] +
+  {lang_warning_asset_del_nodes} +
+ {lang_ip}: + + {ip} +
+ [END table] + +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/assetedit.tpl b/tpl/assetedit.tpl new file mode 100644 index 0000000..f6bf1da --- /dev/null +++ b/tpl/assetedit.tpl @@ -0,0 +1,54 @@ +
+ + + + + + + + + + + + + + + [BLOCK table AS assetclass] + + + + + [END table] + + + + + + + +
+ {lang_asset_add}:
+
+ {lang_asset_name}: + + +
+ {lang_hostname}: + + +
+ {lang_assetclass}: + + +
+ {lang_asset_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/assetview.tpl b/tpl/assetview.tpl new file mode 100644 index 0000000..aeb4464 --- /dev/null +++ b/tpl/assetview.tpl @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + +
+ {lang_asset_name}: + + {asset_name} +
+ {lang_hostname}: + + {hostname} +
+ {lang_assetclass}: + + {assetclass_name} +
+ {lang_asset_info}: + + {asset_info} +
+ +

+ + [BLOCK table AS node] + + [BLOCK noderow] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [END noderow] +
+   + + {lang_node} #{nodecount} +
+ {lang_ip}: + + {ip} +
+ {lang_subnet}: + + {subnet_address}/{subnet_mask} +
+ {lang_mac}: + + {mac} +
+ {lang_dns1}: + + {dns1} +
+ {lang_dns2}: + + {dns2} +
+ {lang_node_info}: + + {node_info} +
+ [END table] + +

+ + + [BLOCK assetedit] + + + + [END assetedit] + [BLOCK assetdel] + + + + [END assetdel] +
+  {lang_asset_edit} +
+  {lang_asset_del} +
\ No newline at end of file diff --git a/tpl/assigniptoasset.tpl b/tpl/assigniptoasset.tpl new file mode 100644 index 0000000..0af08ba --- /dev/null +++ b/tpl/assigniptoasset.tpl @@ -0,0 +1,89 @@ +

+ + + + + + + + + + [BLOCK table AS subnet] + + + + + [END table] + [BLOCK table AS asset] + + + + + [END table] + + + + + + + + + + + + + + + + + + + + + +
+ {lang_assigniptoasset}: +
+ {lang_ip}: + + +
+ {lang_subnet}: + + +
+ {lang_asset_name}: + + +
+ {lang_mac}: + + +
+ {lang_dns1}: + + + + {config_dns1suffix} +
+ {lang_dns2}: + + + + {config_dns2suffix} +
+ {lang_node_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/assigniptonode.tpl b/tpl/assigniptonode.tpl new file mode 100644 index 0000000..b0d9b8b --- /dev/null +++ b/tpl/assigniptonode.tpl @@ -0,0 +1,38 @@ + + + + + + + + + +
+ {lang_ip}: + + {ip} +
+ {lang_subnet}: + + {subnet_address}/{subnet_mask} +
+ +

+ + + [BLOCK assigniptonode] + + + + [END assigniptonode] + [BLOCK nodeadd] + + + + [END nodeadd] +
+  {lang_assigniptoasset} +
+  {lang_node_new} +
+ \ No newline at end of file diff --git a/tpl/assignlocationtosubnet.tpl b/tpl/assignlocationtosubnet.tpl new file mode 100644 index 0000000..b83f908 --- /dev/null +++ b/tpl/assignlocationtosubnet.tpl @@ -0,0 +1,44 @@ +

+ + + + + + [BLOCK table AS location] + + + + + [END table] + [BLOCK table AS subnet] + + + + + [END table] + + + +
+ {lang_assignlocationtosubnet}: +
+ {lang_location_name}: + + +
+ {lang_subnet}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/assignvlantosubnet.tpl b/tpl/assignvlantosubnet.tpl new file mode 100644 index 0000000..77a3c03 --- /dev/null +++ b/tpl/assignvlantosubnet.tpl @@ -0,0 +1,43 @@ +
+ + + + + + [BLOCK table AS vlan] + + + + + [END table] + [BLOCK table AS subnet] + + + + + [END table] + + + +
+ {lang_assignvlantosubnet}:
+
+ {lang_vlan}: + + +
+ {lang_subnet}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/error.tpl b/tpl/error.tpl new file mode 100644 index 0000000..729ee8e --- /dev/null +++ b/tpl/error.tpl @@ -0,0 +1,12 @@ + + + + + + + +
+  {lang_error}: {error}
+
+ << {lang_goback} +
\ No newline at end of file diff --git a/tpl/footer.tpl b/tpl/footer.tpl new file mode 100644 index 0000000..3892a28 --- /dev/null +++ b/tpl/footer.tpl @@ -0,0 +1,13 @@ + +
+ + + + + +
+ IP Reg {config_version} +
+ + + \ No newline at end of file diff --git a/tpl/header.tpl b/tpl/header.tpl new file mode 100644 index 0000000..3d822a1 --- /dev/null +++ b/tpl/header.tpl @@ -0,0 +1,31 @@ + + + + IP Reg + + + + + +
+ + + + + +
+ {lang_header_viewby}: {lang_asset} - + {lang_assetclass} - + {lang_location} - + {lang_subnet} - + {lang_vlan}  + .:  + + {suser_displayname} - + {lang_options} - + {lang_logout} +
+
+ +
+ diff --git a/tpl/index.tpl b/tpl/index.tpl new file mode 100644 index 0000000..0b700cc --- /dev/null +++ b/tpl/index.tpl @@ -0,0 +1,57 @@ + + + + +
+ IP Reg
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ {lang_statistics}: +
+ {lang_assets}: + + {assetcount} +
+ {lang_locations}: + + {locationcount} +
+ {lang_nodes}: + + {nodecount} +
+ {lang_subnets}: + + {subnetcount} +
+ {lang_vlans}: + + {vlancount} +
\ No newline at end of file diff --git a/tpl/location.tpl b/tpl/location.tpl new file mode 100644 index 0000000..f7dc655 --- /dev/null +++ b/tpl/location.tpl @@ -0,0 +1,16 @@ + [BLOCK table AS location] + + + + + [BLOCK locationrow] + + + + [END locationrow] +
+ {lang_locations}:
+
+ {nbsp}{location_name} +
+ [END table] \ No newline at end of file diff --git a/tpl/locationadd.tpl b/tpl/locationadd.tpl new file mode 100644 index 0000000..65e7009 --- /dev/null +++ b/tpl/locationadd.tpl @@ -0,0 +1,38 @@ +

+ + + + + + + + + + [BLOCK table AS location] + + + + + [END table] + + + +
+ {lang_location_add}:
+
+ {lang_location_name}: + + +
+ {lang_location_parent}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/locationdel.tpl b/tpl/locationdel.tpl new file mode 100644 index 0000000..690a481 --- /dev/null +++ b/tpl/locationdel.tpl @@ -0,0 +1,29 @@ +
+ + + + + + + + + + +
+ {lang_location_del}
+
+ {lang_location_name}: + + {location_name} +
+ +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/locationedit.tpl b/tpl/locationedit.tpl new file mode 100644 index 0000000..a4dccf8 --- /dev/null +++ b/tpl/locationedit.tpl @@ -0,0 +1,47 @@ +
+ + + + + + + + + + + + + + + + + + + + + +
+ {lang_location_edit}:
+
+ {lang_location_name}: + + +
+ {lang_location_parent}: + + [BLOCK table AS parent] + + [END table] +
+ {lang_location_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/locationview.tpl b/tpl/locationview.tpl new file mode 100644 index 0000000..3b40303 --- /dev/null +++ b/tpl/locationview.tpl @@ -0,0 +1,73 @@ + + + + + + + + + + + + [BLOCK table AS subnet] + + [END table] + + + + [BLOCK table AS sublocation] + + [END table] + + +
+ {lang_location_name}: + + [BLOCK table AS locationcrumb] + [BLOCK locationcrumbrow] + {seperator}{location_name} + [END locationcrumbrow] + [END table] +
+ {lang_location_info}: + + {location_info} +
+ {lang_subnets}: + + [BLOCK subnetrow] + {subnet_address}/{subnet_mask}
+ [END subnetrow] +
+ {lang_sublocations}: + + [BLOCK sublocationrow] + {sublocation_name}
+ [END sublocationrow] +
+ +

+ + + [BLOCK assignlocationtosubnet] + + + + [END assignlocationtosubnet] + [BLOCK locationedit] + + + + [END locationedit] + [BLOCK locationdel] + + + + [END locationdel] +
+  {lang_assignlocationtosubnet} +
+  {lang_location_edit} +
+  {lang_location_del} +
\ No newline at end of file diff --git a/tpl/nodeadd.tpl b/tpl/nodeadd.tpl new file mode 100644 index 0000000..629a79e --- /dev/null +++ b/tpl/nodeadd.tpl @@ -0,0 +1,91 @@ +

+ + + + + + + + + + + + + + + + + + [BLOCK table AS subnet] + + + + + [END table] + [BLOCK table AS assetclass] + + + + + [END table] + + + + + + + + + + + + + + + +
+ {lang_node_add}:
+
+ {lang_asset_name}: + + +
+ {lang_hostname}: + + +
+ {lang_ip}: + + +
+ {lang_subnet}: + + +
+ {lang_assetclass}: + + +
+ {lang_mac}: + + +
+ {lang_dns1}: + +  {config_dns1suffix} +
+ {lang_dns2}: + +  {config_dns2suffix} +
+ +
+
\ No newline at end of file diff --git a/tpl/nodedel.tpl b/tpl/nodedel.tpl new file mode 100644 index 0000000..64122eb --- /dev/null +++ b/tpl/nodedel.tpl @@ -0,0 +1,30 @@ +
+ + + + + + + + + + + +
+ {lang_node_del}
+
+ {lang_ip}: + + {ip} +
+ +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/nodeedit.tpl b/tpl/nodeedit.tpl new file mode 100644 index 0000000..06022df --- /dev/null +++ b/tpl/nodeedit.tpl @@ -0,0 +1,78 @@ +
+ + + + + + + + + + + + + + + [BLOCK table AS subnet] + + + + + [END table] + + + + + + + + + + + + + + + + + + + +
+ {lang_node_edit}:
+
+ {lang_asset_name}: + + {asset_name}: +
+ {lang_ip} + + {ip} +
+ {lang_subnet}: + + +
+ {lang_mac}: + + +
+ {lang_dns1}: + + +
+ {lang_dns2}: + + +
+ {lang_node_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/nodelist.tpl b/tpl/nodelist.tpl new file mode 100644 index 0000000..97723fb --- /dev/null +++ b/tpl/nodelist.tpl @@ -0,0 +1,46 @@ + [BLOCK table AS node] + + + + + + + + + + [BLOCK noderow] + + + + + + + + + [END noderow] +
+ {lang_ip}: + + {lang_asset_name}: + + {lang_hostname}: + + {lang_mac}: + + {lang_dns1}: + + {lang_dns2}: +
+ {ip} + + {asset_name} + + {hostname} + + {mac} + + {dns1} + + {dns2} +
+ [END table] \ No newline at end of file diff --git a/tpl/nodeview.tpl b/tpl/nodeview.tpl new file mode 100644 index 0000000..a51f81b --- /dev/null +++ b/tpl/nodeview.tpl @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {lang_ip}: + + {ip} +
+ {lang_subnet}: + + {subnet_address}/{subnet_mask} +
+   +
+ {lang_asset_name}: + + {asset_name} +
+   +
+ {lang_mac}: + + {mac} +
+ {lang_dns1}: + + {dns1} +
+ {lang_dns2}: + + {dns2} +
+ {lang_node_info}: + + {node_info} +
+ +

+ + + [BLOCK nodeedit] + + + + [END nodeedit] + [BLOCK nodedel] + + + + [END nodedel] +
+  {lang_node_edit} +
+  {lang_node_del} +
\ No newline at end of file diff --git a/tpl/options.tpl b/tpl/options.tpl new file mode 100644 index 0000000..ac62edb --- /dev/null +++ b/tpl/options.tpl @@ -0,0 +1,102 @@ + + + + + [BLOCK assetadd] + + + + [END assetadd] + [BLOCK assetclassadd] + + + + [END assetclassadd] + [BLOCK locationadd] + + + + [END locationadd] + [BLOCK nodeadd] + + + + [END nodeadd] + [BLOCK subnetadd] + + + + [END subnetadd] + [BLOCK useradd] + + + + [END useradd] + [BLOCK vlanadd] + + + + [END vlanadd] +
+ {lang_options_ipreg} +
+  {lang_asset_add} +
+  {lang_assetclass_add} +
+  {lang_location_add} +
+  {lang_node_add} +
+  {lang_subnet_add} +
+  {lang_user_add} +
+  {lang_vlan_add} +
+ +

+ + + [BLOCK assigniptoasset] + + + + [END assigniptoasset] + [BLOCK assignlocationtosubnet] + + + + [END assignlocationtosubnet] + [BLOCK assignvlantosubnet] + + + + [END assignvlantosubnet] +
+  {lang_assigniptoasset} +
+  {lang_assignlocationtosubnet} +
+  {lang_assignvlantosubnet} +
+ +

+ + + + + + + + + + + +
+ {lang_options_personal} +
+  {lang_options_settings_edit} +
+  {lang_options_password_edit} +
\ No newline at end of file diff --git a/tpl/search.tpl b/tpl/search.tpl new file mode 100644 index 0000000..91cc261 --- /dev/null +++ b/tpl/search.tpl @@ -0,0 +1,41 @@ + [BLOCK nosearch] + + + + +
+  {lang_warning_search_nosearch} +
+ [END nosearch] + + [BLOCK table AS asset] + + + + + [BLOCK row] + + + + [END row] +
+ {item_name} {lang_search_found} ({counter}): +
+ {name} +
+ [END table] + + [REUSE table AS location] + [REUSE table AS node] + [REUSE table AS subnet] + [REUSE table AS vlan] + + [BLOCK resultcount] + + + + +
+ {lang_search_results_found}: {resultcounter} +
+ [END resultcount] \ No newline at end of file diff --git a/tpl/style.css b/tpl/style.css new file mode 100644 index 0000000..399be96 --- /dev/null +++ b/tpl/style.css @@ -0,0 +1,39 @@ +body { + background-color: #FFFFFF; + color: #000000; + font-family: Verdana, Arial, Helvetica, Sans-serif; + margin: 12px; + margin-top: 12px; + font-size: 70%; +} + +a { + color: #466A8D; +} + +a:hover { + color: #E1B100; +} + +input { + font-size: 100%; + position: relative; + top: -2px; + font-family: Verdana, Arial, Helvetica, Sans-serif; +} + +select { + font-size: 100%; + font-family: Verdana, Sans-serif; + position: relative; + top: -2px; +} + +table { + font-size: 100%; +} + +td { + vertical-align: top; + height: 18px; +} \ No newline at end of file diff --git a/tpl/subnet.tpl b/tpl/subnet.tpl new file mode 100644 index 0000000..e7c1346 --- /dev/null +++ b/tpl/subnet.tpl @@ -0,0 +1,16 @@ + [BLOCK table AS subnet] + + + + + [BLOCK subnetrow] + + + + [END subnetrow] +
+ {lang_subnet}:
+
+ {subnet_address}/{subnet_mask} +
+ [END table] \ No newline at end of file diff --git a/tpl/subnetadd.tpl b/tpl/subnetadd.tpl new file mode 100644 index 0000000..f8d7020 --- /dev/null +++ b/tpl/subnetadd.tpl @@ -0,0 +1,31 @@ +

+ + + + + + + + + + + + + + + + +
+ {lang_subnet_add}:
+
+ {lang_subnet_address}: + + +
+ {lang_subnet_mask}: + +  (8-30) +
+ +
+
\ No newline at end of file diff --git a/tpl/subnetdel.tpl b/tpl/subnetdel.tpl new file mode 100644 index 0000000..4b2881b --- /dev/null +++ b/tpl/subnetdel.tpl @@ -0,0 +1,51 @@ +
+ + + + + + + + + + +
+ {lang_subnet_del}
+
+ {lang_subnet}: + + {subnet_address}/{subnet_mask} +
+ +

+ + [BLOCK table AS node] + + + + + [BLOCK noderow] + + + + + [END noderow] +
+  {lang_warning_asset_del_nodes} +
+ {lang_ip}: + + {ip} +
+ [END table] + +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/subnetedit.tpl b/tpl/subnetedit.tpl new file mode 100644 index 0000000..894a7ec --- /dev/null +++ b/tpl/subnetedit.tpl @@ -0,0 +1,55 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ {lang_subnet_edit}:
+
+ {lang_subnet_subnetaddress}: + + +
+ {lang_subnet_mask}: + + +
+ {lang_vlan} + + [BLOCK table AS vlan] + +
+ {lang_subnet_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/subnetview.tpl b/tpl/subnetview.tpl new file mode 100644 index 0000000..8323081 --- /dev/null +++ b/tpl/subnetview.tpl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + +
+ + + + + +
+ {lang_subnet}: {subnet_address}/{subnet_mask} + + {pagination} +
+
+ [BLOCK table AS subnet] + + + [BLOCK iprow] + {tr} + [END iprow] + +
+ [END table] +
+ + + + +
+   +
+
+ + + + + + + +
+ + + + + + + + + + + + + +
+ {lang_vlans}: + + [BLOCK table AS vlan] + [BLOCK vlanrow] + {vlan_name}
+ [END vlanrow] + [END table] +
+ {lang_locations}: + + [BLOCK table AS location] + [BLOCK locationrow] + {location_name}
+ [END locationrow] + [END table] +
+ {lang_subnet_info}: + + {subnet_info} +
+
+   + + [BLOCK table AS assetclassgroup] + + + + + [BLOCK assetclassgrouprow] + + + + [END assetclassgrouprow] +
+  {lang_unassigned} +
+  {assetclassgroup_name} +
+ [END table] +
+ +

+ + + [BLOCK assignlocationtosubnet] + + + + [END assignlocationtosubnet] + [BLOCK assignvlantosubnet] + + + + [END assignvlantosubnet] + [BLOCK subnetedit] + + + + [END subnetedit] + [BLOCK subnetdel] + + + + [END subnetdel] + + + +
+  {lang_assignlocationtosubnet} +
+  {lang_assignvlantosubnet} +
+  {lang_subnet_edit} +
+  {lang_subnet_del} +
+  View assigned IP addresses in subnet +
\ No newline at end of file diff --git a/tpl/useradd.tpl b/tpl/useradd.tpl new file mode 100644 index 0000000..5297243 --- /dev/null +++ b/tpl/useradd.tpl @@ -0,0 +1,41 @@ +

+ + + + + + + + + + + + + + + + + + + + +
+ {lang_user_add}:
+
+ {lang_user_name}: + + +
+ {lang_user_pass}: + + {user_pass} +
+ {lang_user_level}: + +
+ +
+
\ No newline at end of file diff --git a/tpl/useredit.tpl b/tpl/useredit.tpl new file mode 100644 index 0000000..049399e --- /dev/null +++ b/tpl/useredit.tpl @@ -0,0 +1,46 @@ +
+ + + + + + + + + + + + + + + + + + + + +
+ {lang_options_settings_edit}:
+
+ {lang_user_displayname}: + + +
+ {lang_mac}: + + +
+ {lang_language}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/userpassedit.tpl b/tpl/userpassedit.tpl new file mode 100644 index 0000000..e36fba8 --- /dev/null +++ b/tpl/userpassedit.tpl @@ -0,0 +1,39 @@ +
+ + + + + + + + + + + + + + + + + + + + +
+ {lang_options_password_edit}:
+
+ {lang_user_passold}: + + +
+ {lang_user_passnew1}: + + +
+ {lang_user_passnew2}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/vlan.tpl b/tpl/vlan.tpl new file mode 100644 index 0000000..3c33a34 --- /dev/null +++ b/tpl/vlan.tpl @@ -0,0 +1,16 @@ + [BLOCK table AS vlan] + + + + + [BLOCK vlanrow] + + + + [END vlanrow] +
+ {lang_vlan}:
+
+ {vlan_name} ({vlan_number}) +
+ [END table] \ No newline at end of file diff --git a/tpl/vlanadd.tpl b/tpl/vlanadd.tpl new file mode 100644 index 0000000..192a628 --- /dev/null +++ b/tpl/vlanadd.tpl @@ -0,0 +1,31 @@ +
+ + + + + + + + + + + + + + + + +
+ {lang_vlan_add}:
+
+ {lang_vlan_name}: + + +
+ {lang_vlan_number}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/vlandel.tpl b/tpl/vlandel.tpl new file mode 100644 index 0000000..4d05877 --- /dev/null +++ b/tpl/vlandel.tpl @@ -0,0 +1,29 @@ +
+ + + + + + + + + + +
+ {lang_vlan_del}
+
+ {lang_vlan_name}: + + {vlan_name} ({vlan_number}) +
+ +

+ + + + + +
+ +
+

\ No newline at end of file diff --git a/tpl/vlanedit.tpl b/tpl/vlanedit.tpl new file mode 100644 index 0000000..e78b073 --- /dev/null +++ b/tpl/vlanedit.tpl @@ -0,0 +1,40 @@ +
+ + + + + + + + + + + + + + + + + + + + + +
+ {lang_vlan_edit}:
+
+ {lang_vlan_name}: + + +
+ {lang_vlan_number}: + + +
+ {lang_vlan_info}: + + +
+ +
+
\ No newline at end of file diff --git a/tpl/vlanview.tpl b/tpl/vlanview.tpl new file mode 100644 index 0000000..9e203a2 --- /dev/null +++ b/tpl/vlanview.tpl @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + [BLOCK table AS subnet] + + [END table] + +
+ {lang_vlan_name}: + + {vlan_name} +
+ {lang_vlan_number}: + + {vlan_number} +
+ {lang_vlan_info}: + + {vlan_info} +
+ {lang_subnets}: + + [BLOCK subnetrow] + {subnet_address}/{subnet_mask}
+ [END subnetrow] +
+ +

+ + + [BLOCK assignvlantosubnet] + + + + [END assignvlantosubnet] + [BLOCK vlanedit] + + + + [END vlanedit] + [BLOCK vlandel] + + + + [END vlandel] +
+  {lang_assignvlantosubnet} +
+  {lang_vlan_edit} +
+  {lang_vlan_del} +
\ No newline at end of file diff --git a/useradd.php b/useradd.php index a7e3ad4..b542f70 100644 --- a/useradd.php +++ b/useradd.php @@ -1,70 +1,17 @@ = 2) { + // set template + $tp = new Template("tpl/useradd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - // check for unique username - $result = mysql_query("SELECT user_name FROM user WHERE user_name='$user_name'") or die(mysql_error()); - if(mysql_num_rows($result) == 0) { - $user_name = $_POST['user_name']; - $user_pass = md5($config_user_pass); - $user_level = $_POST['user_level']; - $displayname = $_POST['user_name']; - mysql_query("INSERT INTO user (user_name, user_pass, user_level, displayname) VALUE ('$user_name', '$user_pass', '$user_level', '$displayname')") or die(mysql_error()); - - header_location("options.php"); - } - echo 'Error!'; - } -?> + // set language variables + $tp->setvars($lang); -

- - - - - - - - - - - - - - - - - - - -
- Add user:
-
- Username: - - -
- Password: - - -
- Level: - -
- -
-
- -set("user_pass", $config_user_pass); + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/useredit.php b/useredit.php index f65ff9d..7516182 100644 --- a/useredit.php +++ b/useredit.php @@ -4,44 +4,20 @@ // get user_id $suser_id = $_SESSION['suser_id']; - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $displayname = $_POST['displayname']; - mysql_query("UPDATE user SET displayname='$displayname' WHERE user_id='$suser_id'") or die(mysql_error()); - - header_location("options.php"); - } + // set template + $tp = new Template("tpl/useredit.tpl"); - // get current information - $result = mysql_query("SELECT displayname FROM user WHERE user_id='$suser_id'"); - while ($row = mysql_fetch_object($result)) { - $displayname = $row->displayname; - } -?> - -
- - - - - - - - - - - -
- Modify settings:
-
- Displayname: - - -
- -
-
+ // set language variables + $tp->setvars($lang); -set("user_displayname", $_SESSION['suser_displayname']); + $tp->set("user_mac", $_SESSION['suser_mac']); + $tp->set("user_lang", $_SESSION['suser_lang']); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/userpassedit.php b/userpassedit.php index de10972..957c873 100644 --- a/userpassedit.php +++ b/userpassedit.php @@ -1,75 +1,15 @@ "" && trim($_POST['user_passnew1']) && trim($_POST['user_passnew2']) && trim($_POST['user_passnew1']) == trim($_POST['user_passnew2'])) { - $user_passold = $_POST['user_passold']; - $user_passnew = md5($_POST['user_passnew1']); - - $result = mysql_query("SELECT user_pass FROM user WHERE user_id='$suser_id'") or die(mysql_error()); - // check current pass - if(!strcmp(md5($user_passold), mysql_result($result, 0, "user_pass"))) { - // ok, update pass - mysql_query("UPDATE user SET user_pass='$user_passnew' WHERE user_id='$suser_id'") or die(mysql_error()); - - header_location("options.php"); - } - } - - // not ok - echo 'Error!'; - } + // set language variables + $tp->setvars($lang); + + // output + $tp->parse(); + $tp->spit(); - // get current information - $result = mysql_query("SELECT displayname FROM user WHERE user_id='$suser_id'"); - while ($row = mysql_fetch_object($result)) { - $displayname = $row->displayname; - } -?> - -
- - - - - - - - - - - - - - - - - - - -
- Modify settings:
-
- Current password: - - -
- New password: - - -
- Retype new password: - - -
- -
-
- - \ No newline at end of file diff --git a/vlan.php b/vlan.php index 1eeef11..a0727cb 100644 --- a/vlan.php +++ b/vlan.php @@ -1,23 +1,25 @@ - - - - - - -'; - } -?> - -
- VLAN:
-
' . $row->vlan_name . ' ('. $row->vlan_number . ')
- -setvars($lang); + + // get vlan info + $result = mysql_query("SELECT vlan_id, vlan_number, vlan_name FROM vlan ORDER BY vlan_number") or die(mysql_error()); + for ($i=0;$row=mysql_fetch_object($result);$i++) { + $tp->set("vlan_id", $row->vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + $tp->parse("vlanrow"); + } + if (($i>0) ? $tp->parse("vlan") : $tp->hide("vlan")); + + // output + $tp->parse(); + $tp->spit(); + include("footer.php"); ?> \ No newline at end of file diff --git a/vlanadd.php b/vlanadd.php index ebd64c9..a7d9d2b 100644 --- a/vlanadd.php +++ b/vlanadd.php @@ -1,53 +1,15 @@ = 2) { + // set template + $tp = new Template("tpl/vlanadd.tpl"); - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $vlan_name = $_POST['vlan_name']; - $vlan_number= $_POST['vlan_number']; - mysql_query("INSERT INTO vlan (vlan_name, vlan_number) VALUE ('$vlan_name', '$vlan_number')") or die(mysql_error()); + // set language variables + $tp->setvars($lang); - header("Location: vlan.php"); - } -?> - -
- - - - - - - - - - - - - - - -
- Add new VLAN:
-
- VLAN name: - - -
- VLAN ID: - - -
- -
-
- -parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/vlandel.php b/vlandel.php new file mode 100644 index 0000000..c5476ad --- /dev/null +++ b/vlandel.php @@ -0,0 +1,25 @@ +setvars($lang); + + // get vlanclass info + $result = mysql_query("SELECT vlan_id, vlan_name, vlan_number FROM vlan WHERE vlan_id='$vlan_id'") or die(mysql_error()); + $row=mysql_fetch_object($result); + $tp->set("vlan_id", $row->vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + + // output + $tp->parse(); + $tp->spit(); + + include("footer.php"); +?> \ No newline at end of file diff --git a/vlanedit.php b/vlanedit.php index c876865..e203fa2 100644 --- a/vlanedit.php +++ b/vlanedit.php @@ -1,72 +1,26 @@ = 2) { + // get id + $vlan_id = $_GET['vlan_id']; - // check for submit - if ($_SERVER['REQUEST_METHOD']=="POST" ) { - $vlan_id = $_POST['vlan_id']; - $vlan_name = $_POST['vlan_name']; - $vlan_number = $_POST['vlan_number']; - $vlan_info = $_POST['vlan_info']; - mysql_query("UPDATE vlan SET vlan_name='$vlan_name', vlan_number='$vlan_number', vlan_info='$vlan_info' WHERE vlan_id='$vlan_id'") or die(mysql_error()); - - header_location("vlanview.php?vlan_id=" . $vlan_id); - } + // set template + $tp = new Template("tpl/vlanedit.tpl"); - // get current information - $result = mysql_query("SELECT vlan_name, vlan_number, vlan_info FROM vlan WHERE vlan_id='$vlan_id'"); - while ($row = mysql_fetch_object($result)) { - $vlan_name = $row->vlan_name; - $vlan_number = $row->vlan_number; - $vlan_info = $row->vlan_info; - } -?> + // set language variables + $tp->setvars($lang); + + // get vlan information + $result = mysql_query("SELECT vlan_name, vlan_number, vlan_info FROM vlan WHERE vlan_id='$vlan_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $tp->set("vlan_id", $vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + $tp->set("vlan_info", $row->vlan_info); -
- - - - - - - - - - - - - - - - - - - - -
- Edit VLAN:
-
- VLAN name: - - -
- VLAN ID: - - -
- VLAN info: - - -
- -
-
- -parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/vlanview.php b/vlanview.php index 6d4bd8b..f65dc13 100644 --- a/vlanview.php +++ b/vlanview.php @@ -4,80 +4,53 @@ // get id $vlan_id = $_GET['vlan_id']; - // get vlan info - $result = mysql_query("SELECT vlan_name, vlan_number, vlan_info FROM vlan WHERE vlan_id='$vlan_id'"); - while ($row = mysql_fetch_object($result)) { - $vlan_name = $row->vlan_name; - $vlan_number = $row->vlan_number; - $vlan_info = $row->vlan_info; - } -?> - - - - - - - - - - - - - - - - - - -
- VLAN name: - - -
- VLAN ID: - - -
- VLAN info: - - -
- Subnet(s): - -subnet_id . '">' . $row->subnet_address . '
'; - } -?> - -
+ // set template + $tp = new Template("tpl/vlanview.tpl"); -= 2) { -?> - -

+ // set language variables + $tp->setvars($lang); - - - - - - - -
- Modify -
- Assign subnet -
+ // get vlan info + $result = mysql_query("SELECT vlan_name, vlan_number, vlan_info FROM vlan WHERE vlan_id='$vlan_id'") or die(mysql_error()); + $row = mysql_fetch_object($result); + $tp->set("vlan_id", $vlan_id); + $tp->set("vlan_name", $row->vlan_name); + $tp->set("vlan_number", $row->vlan_number); + $tp->set("vlan_info", $row->vlan_info); -set("subnet_id", $row->subnet_id); + $tp->set("subnet_address", $row->subnet_address); + $tp->set("subnet_mask", $row->subnet_mask); + $tp->parse("subnetrow"); } + if (($i>0) ? $tp->parse("subnet") : $tp->hide("subnet")); + + // display options + if($_SESSION['suser_level'] >= $config_userlevel_assignvlantosubnet) { + $tp->set("vlan_id", $vlan_id); + $tp->parse("assignvlantosubnet"); + } else { + $tp->hide("assignvlantosubnet"); + } + if($_SESSION['suser_level'] >= $config_userlevel_vlanedit) { + $tp->set("vlan_id", $vlan_id); + $tp->parse("vlanedit"); + } else { + $tp->hide("vlanedit"); + } + if($_SESSION['suser_level'] >= $config_userlevel_vlandel) { + $tp->set("vlan_id", $vlan_id); + $tp->parse("vlandel"); + } else { + $tp->hide("vlandel"); + } + + // output + $tp->parse(); + $tp->spit(); include("footer.php"); ?> \ No newline at end of file diff --git a/yapter.php b/yapter.php new file mode 100644 index 0000000..16ac2b9 --- /dev/null +++ b/yapter.php @@ -0,0 +1,483 @@ +warningLevel & E_YAPTER_ERROR) + if ($this->warningLevel & E_YAPTER_DIE_ON_ERROR ) + // if DIE_ON_ERROR is set, then do die on error! + die("
\nYapter error: ".$msg."
\n"); // Die here! + else + // else just barf out the message + echo "
\nYapter error: ".$msg."
\n"; + } + + function warning($msg) + { + if ($this->warningLevel & E_YAPTER_WARNING) + echo "
\nYapter warning: ".$msg."
\n"; + } + + function notice($msg) + { + if ($this->warningLevel & E_YAPTER_NOTICE) + echo "
\nYapter notice: ".$msg."
\n"; + } + + function warn_var_not_set($varname) + { + if (!in_array($varname, $this->missing_list) && !($this->warningLevel & E_YAPTER_IGN_UNKNOWN_VARS)) { + $this->missing_list[] = $varname; // Add it to the list... + // ...and print a warning once. + $this->warning('Variable '.htmlspecialchars($varname).' found, but never assigned a value. (This message is shown only once for each variable.)'); + } + } + + ///////////////////////////////////////////////////////////////////// + + function Template($file, $level = E_YAPTER_ALL) + { + if (is_bool($level)) { + // + // Rationale: + // ========= + // Older Yapter versions had the possibility of turning + // on the so called "debug mode" with a bool parameter + // as the second argument to this constructor. + // However, since debug mode was dropped and the + // warning level support was built in, it was a logical + // step of replacing the second parameter. + // + // However, to prevent people from making mistakes, + // we'll check if the user passed a boolean parameter. + // If so, he or she is probably using debug mode, and + // we'll issue a notice in these cases. + // + // Thanks to Ivo Koster. + // + $this->notice('Debug mode is not supported anymore since Yapter version 2.12.'); + $this->warningLevel = E_YAPTER_ALL; + } + else + $this->warningLevel = (int)$level; + + $this->startTime = $this->getmicrotime(); + $this->addBlockFromFile($this->_ROOT, $file); + $this->missing_list = array(); + } + + /* setParseMode(): specifies to parse unknown variables or not */ + function setParseMode($parseUnknownVars) + { + $this->parseUnknownVars = (bool)$parseUnknownVars; + } + + /* setWarningLevel(): sets the level of verbosity which Yapter should obey */ + function setWarningLevel($level) + { + $this->warningLevel = $level; + } + + /* addBlock(): adds a new block to the blox-array */ + function addBlock($blockname, $content) + { + $this->blox[$blockname]['content'] = $content; + $this->blox[$blockname]['numlines'] = sizeof($this->blox[$blockname]['content']); + $this->blox[$blockname]['parsed'] = ''; + $this->prepare($blockname); + } + + /* addBlockFromFile(): adds a new block, filling it with the specified's file contents */ + function addBlockFromFile($blockname, $file) + { + $content = @file($file) or $this->error('Cannot open template file '.htmlspecialchars($file).'!'); + //--- eliminate double block def mod -klp +// if ($blockname != $this->_ROOT) +// $this->addBlockDef($blockname, $content); + $this->addBlock($blockname, $content); + } + + /* addBlockDef(): adds a block definition to the block-definition array from which other blocks can be copied */ + function addBlockDef($blockdef, $content) + { +/* if (isset($this->blockDefs[$blockdef])) + $this->error('Block "'.htmlspecialchars($blockdef).'" allready exists. I cannot create it twice.'); + else + $this->blockDefs[$blockdef] = $content; +*/ + $this->blockDefs[$blockdef] = $content; + } + + /* addBlockFromDef(): copies a block from the block definition array */ + function addBlockFromDef($blockname, $blockdef) + { + $this->addBlock($blockname, $this->blockDefs[$blockdef]); + } + + /* prepare(): handles subprocessing of templates found in the main template file */ + function prepare($blockname) + { + $currblockcontents = array(); + $block = &$this->blox[$blockname]; + for ($i = 0; $i < $block['numlines']; $i++) { + if (isset($block['content'][$i])) + $line = $block['content'][$i]; + else + continue; + + // Try to find a tag-definition on this line + if (preg_match('/\[(INCLUDE|BLOCK|END|REUSE|SET) ([A-Za-z0-9_.\/-]+)( AS ([A-Za-z0-9_-]+))?]/', $line, $matches)) { + $type = $matches[1]; + $name = (!empty($matches[4])) ? $matches[4] : $matches[2]; + if ($type == 'END' && !isset($currblockdef)) + $this->error('"[END '.$name.']" found without matching "[BLOCK '.$name.']" or "[SET '.$name.']"'); + if ($type == 'END' && $matches[2] == $currblockdef) { + if (isset($matches[4])) + $this->error('Given "AS"-parameter not allowed in END-tags!'); + + // End the current block definition: add the block to the blox-array + //--- if wrapper mod -klp + if (isset($currblockdef) && isset($currblockcontents) && isset($currblockname)) { + $this->addBlockDef($currblockdef, $currblockcontents); + $this->addBlockFromDef($currblockname, $currblockdef); + } + + // Now, try to remove the block from the template definition, replacing it with a var + for ($j = $i; $j >= $currblockstart; $j--) { + if ($j == $currblockstart && $currblocktype == 'BLOCK') + $block['content'][$j] = "{" . $currblockname . "}"; + else + unset($block['content'][$j]); + } + + // unset these thingies for further preparing + unset($currblocktype); + unset($currblockstart); + unset($currblockname); + unset($currblockdef); + $currblockcontents = array(); + + } elseif (($type == 'SET' || $type == 'BLOCK') && !isset($currblockname)) { + + if ($type == 'BLOCK') { + + // Start block definition + $currblocktype = $type; + $currblockstart = $i; + $currblockname = $name; + $currblockdef = $matches[2]; + + } else { // SET-tag + + // Start block definition + if (isset($matches[4])) + $this->error('Given "AS"-parameter not allowed in SET-tags!'); + + $currblocktype = $type; + $currblockstart = $i; + $currblockname = $matches[2]; + $currblockdef = $matches[2]; + + } + + } elseif ($type == 'INCLUDE' && !isset($currblockname)) { + + // Make this line a variable... + $block['content'][$i] = "{" . $name . "}\n"; + + // ...and include the given file... + $this->addBlockFromFile($name, $matches[2]); + + } elseif ($type == 'REUSE' && !isset($currblockname)) { + + if (!isset($matches[4])) + $this->error('Missing "AS"-parameter in [REUSE $name] tag!'); + + // Make this line a variable... + $block['content'][$i] = "{" . $matches[4] . "}\n"; + + // ...and get this REUSE value from the block definition list... + $this->addBlockFromDef($matches[4], $matches[2]); + + } elseif ($currblockname != $name) { + if ($currblockname) + $currblockcontents[] = $line; + } + + } else { + // No tag-definition... just normal text so do nothing here + if (!empty($currblockname)) + $currblockcontents[] = $line; + } + } + } + + /* parse(): parses the specified block, filling variables and nested blockdefs */ + function parse($blockname = '') + { + if (!$blockname) + $blockname = $this->_ROOT; + if (!isset($this->blox[$blockname])) + $this->error('Block "'.htmlspecialchars($blockname).'" does not exist.'); + + $block = &$this->blox[$blockname]; + $parsed = $block['content']; + + // Loop through all the lines of the template and parse variables one-by-one + for ($i = 0; $i < $block['numlines']; $i++) { + if (!isset($parsed[$i])) + continue; + $line = $parsed[$i]; + + // Look for variables in this line, processing it character-by-character + unset($start); + unset($buffer); + for ($j = 0; $j < strlen($line); $j++) { + $char = $line[$j]; + if (!isset($start) && $char == '{') + $start = $j; + elseif (isset($start) && $char == '}') { + // The sequence {} is not a valid variable value + if (!isset($buffer)) { + unset($start); + continue; + } else { + // Gotcha! Now replace this variable with its contents + // First, check to see if it's a variable or a block that has to be parsed + if (isset($this->vars[$buffer])) + $value = $this->vars[$buffer]; + elseif (isset($this->blox[$buffer])) { + if ($this->blox[$buffer]['parsed']) { + // The value must be filled with the parsed data from the $buffer block + $value = @implode('', $this->blox[$buffer]['parsed']); + } elseif ($this->warningLevel & E_YAPTER_AUTO_HIDE_BLOCK) { + // Automaticly hide unparsed bloks + $value = ""; + } else { + // Make the recursive call now + $value = @implode('', $this->parse($buffer)); + } + } else { + // No variable or block name found by the name of $buffer + + // First, issue a warning! + $this->warn_var_not_set($buffer); + + if ($this->parseUnknownVars) { + // Unable to find variable, replace this one with an empty + // string silently. + $value = ''; + } else { + // Unable to find variable, leave this one alone... + unset($start); + unset($buffer); + continue; + } + } + $part1 = substr($line, 0, $start); + $part2 = substr($line, $start + strlen($buffer) + 2); + $line = $part1 . $value . $part2; + $j += strlen($value) - (strlen($buffer) + 2); + unset($start); + unset($buffer); + } + } elseif (isset($start)) { + // Check to see $char is a proper character (range: [A-Za-z0-9_./-]) + // In Yapter 2.13b2, I've added the '/' char as well, to support inclusion + // from Unix paths, like '../../foo.tpl' + if (($char >= 'a' && $char <= 'z') || ($char >= '0' && $char <= '9') || ($char >= 'A' && $char <= 'Z') || ($char == '_') || ($char == '.') || ($char == '-') || ($char == '/')) { + if (!empty($buffer)) + $buffer .= $char; + else + $buffer = $char; + } else { + unset($start); + unset($buffer); + } + } + } + $parsed[$i] = $line; + } + + if (is_array($this->blox[$blockname]['parsed'])) { + $this->blox[$blockname]['parsed'] = array_merge($this->blox[$blockname]['parsed'], $parsed); + } else { + //--- array cast mod -klp + $this->blox[$blockname]['parsed'] = (array) $parsed; + } + return $this->blox[$blockname]['parsed']; + } + + /* set(): assigns a value to a variabele inside curly brackets ('{' and '}') */ + function set($varname, $value) + { + if (isset($value)) + $this->vars[$varname] = $value; + else + $this->warning('Trying to set '.htmlspecialchars($varname).' to NULL. Variable not set.'); + } + + /* setVars(): assigns values to variables for each element in the given array + Contributed by: Raniz + */ + function setVars($variables) + { + if (!is_array($variables)) + $this->error('Value passed to setVars is not an array.'); + foreach($variables as $varname => $value) + $this->vars[$varname] = $value; + } + + /* setFile(): assigns the contents of a file to a variabele inside curly brackets ('{' and '}') */ + function setFile($varname, $filename) + { + if (!file_exists($filename)) + $this->error('Cannot open file "'.htmlspecialchars($filename).'" for inclusion in "'.htmlspecialchars($varname).'".'); + $value = implode('', file($filename)); + $this->set($varname, $value); + } + + /* getVar(): returns the value of the 'varname' variable */ + function getVar($varname) + { + if ($this->vars[$varname]) + return $this->vars[$varname]; + else + return false; + } + + /* getBlock(): returns the content of the 'blockname' block */ + function getBlockContent($blockname) + { + if ($this->$blox[$blockname]['content']) + return @implode('', $this->$blox[$blockname]['content']); + else + return false; + } + + /* replace(): replaces the content of one block by another */ + function replace($block, $byblock) + { + if (!isset($this->blox[$block])) + $this->error('Block "'.htmlspecialchars($block).'" does not exist.'); + if (!isset($this->blox[$byblock])) + $this->error('Block "'.htmlspecialchars($block).'" does not exist.'); + $this->blox[$block]['content'] = $this->blox[$byblock]['content']; + $this->blox[$block]['numlines'] = $this->blox[$byblock]['numlines']; + } + + /* hide(): hides all the contents of the given block */ + function hide($block) + { + if (!isset($this->blox[$block])) + $this->error('Block "'.htmlspecialchars($block).'" does not exist.'); + $this->blox[$block]['content'] = array(); + $this->blox[$block]['numlines'] = 0; + } + + /* clear(): resets the parsed data to an empty string again and defines the block as 'unparsed' */ + function clear($blockname) + { + if (!isset($this->blox[$blockname])) + $this->error('Block "'.htmlspecialchars($blockname).'" does not exist.'); + $this->blox[$blockname]['parsed'] = ''; + unset($this->vars[$blockname]); // often, a variabele is set whenever a block should be discarded... + // ...now reset such a variable to make sure the block is not overriden + } + + /* getContents(): gets the final contents to be outputted on the screen */ + function getContents($blockname = '') + { + if ($blockname == '') $blockname = $this->_ROOT; + $parsed = $this->blox[$blockname]['parsed']; + if ($parsed) + return implode('', $parsed); + else + return false; + } + + /* spit(): ouputs contents to screen */ + function spit() + { + echo $this->getContents(); + } + + function getmicrotime() + { + /* I got this getmicrotime()-function from the PHP.net website, but it seems to be + buggy, while it sometimes displays a negative execution time when you substract + the current time with the starting time of the script... I only noticed it at + my Windows localhost machine, not on *nix servers. Is anybody familiar with this + behaviour? Any information about this is welcome at nvie@users.sourceforge.net + for your co-operation. */ + list($usec, $sec) = explode(' ', microtime()); + return ((float)$usec + (float)$sec); + } + + function execTime() + { + return round($this->getmicrotime() - $this->startTime, 5); + } + + function executionTime() + { + echo "

\n\nThe execution time is ".$this->execTime()." seconds.
\n"; + } +} +?>