From 5fc48e8106a39865145cb91a05d8de74e98fe39f Mon Sep 17 00:00:00 2001 From: Jonathan Ernst Date: Mon, 7 Feb 2005 23:54:29 +0000 Subject: [PATCH] - use vendor class in vendor admin - improve existing vendor admin - fix adding a vendor which was broken - allow editing of a vendor --- admin/addVendor.php | 57 ++++++++++++++------------- admin/adminVendors.php | 87 ++++++++++++++---------------------------- include/vendor.php | 21 +++++++--- 3 files changed, 75 insertions(+), 90 deletions(-) diff --git a/admin/addVendor.php b/admin/addVendor.php index 5ff43a1..51cfb64 100644 --- a/admin/addVendor.php +++ b/admin/addVendor.php @@ -1,41 +1,44 @@ hasPriv("admin")) { errorpage(); exit; } +$oVendor = new Vendor($_REQUEST['vendorId']); +if($_REQUEST['submit']) +{ + $oVendor->update($_REQUEST['name'],$_REQUEST['webpage']); + redirect(apidb_fullurl("admin/adminVendors.php")); +} else { - global $admin_mode; - $admin_mode = 1; -} - apidb_header("Add Vendor"); - -$t = new TableVE("create"); - -if($_POST) -{ - $t->update($_POST); +echo "
+ iVendorId."\" /> + + + + + + + + + + + + +
Vendor name + sName."\" /> +
Vendor URL + sWebpage."\" /> +
+ +
+
"; } -else -{ - $table = "vendor"; - $query = "INSERT INTO $table VALUES(0, 'NONAME', null)"; - - query_appdb("DELETE FROM $table WHERE vendorName = 'NONAME'"); - - if(debugging()) - echo "$query

\n"; - - $t->create($query, $table, "vendorId"); -} - apidb_footer(); - ?> diff --git a/admin/adminVendors.php b/admin/adminVendors.php index 80dbd35..d30116d 100644 --- a/admin/adminVendors.php +++ b/admin/adminVendors.php @@ -8,84 +8,55 @@ */ include("path.php"); require(BASE."include/incl.php"); +require_once(BASE."include/vendor.php"); if(!$_SESSION['current']->hasPriv("admin")) { errorpage("Insufficient privileges."); exit; } - -apidb_header("Admin Vendors"); -echo '
',"\n"; - if ($_REQUEST['sub']) { if($_REQUEST['sub'] == 'delete') { - $sQuery = "SELECT * FROM appFamily WHERE vendorId = ".$_REQUEST['vendorId'].";"; - if (debugging()) echo "$sQuery"; - $hResult = query_appdb($sQuery); - - - if(!$hResult || !mysql_num_rows($hResult)) - { - $sQuery = "DELETE FROM vendor WHERE vendorId = ".$_REQUEST['vendorId'].";"; - if (debugging()) echo "$sQuery"; - $hResult = query_appdb($sQuery); - echo html_frame_start("Delete vendor: ".$_REQUEST['vendorId'],400,"",0); - if($hResult) - { - //success - echo "

Vendor was successfully deleted

\n"; - } - } else - { - echo "

Error: Can not delete a vendor with applications attached to it!

\n"; - } - echo html_frame_end(" "); - echo html_back_link(1,'adminVendors.php'); + $oVendor = new Vendor($_REQUEST['vendorId']); + $oVendor->delete(); + redirect(apidb_fullurl("admin/adminVendors.php")); } } else { + apidb_header("Admin Vendors"); + //get available vendors - $sQuery = "SELECT * FROM vendor ORDER BY vendorName, vendorId;"; + $sQuery = "SELECT vendorId FROM vendor ORDER BY vendorName, vendorId;"; $hResult = query_appdb($sQuery); - if(!$hResult || !mysql_num_rows($hResult)) - { - // no vendors - echo html_frame_start("","90%"); - echo '

There are no application vendors.

',"\n"; - echo html_frame_end(" "); - } - else - { - // show vendorlist - echo html_frame_start("","90%","",0); - echo "\n\n"; + // show vendorlist + echo html_frame_start("","90%","",0); + echo "
\n\n"; - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n\n"; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n\n"; - $c = 1; - while($ob = mysql_fetch_object($hResult)) - { - if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; } - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n\n"; - $c++; - } - echo "
Vendor nameVendor url 
Vendor nameVendor urlAction
".$ob->vendorName."vendorURL."\">".$ob->vendorURL."[delete]
\n\n"; - echo html_frame_end(" "); + $c = 1; + while($ob = mysql_fetch_object($hResult)) + { + if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; } + $oVendor = new Vendor($ob->vendorId); + echo "\n"; + echo " iVendorId."\">".$oVendor->sName."\n"; + echo " sWebpage."\">".$oVendor->sWebpage."\n"; + echo " [delete]   "; + echo " [edit]\n"; + echo "\n\n"; + $c++; } + echo "\n\n"; + echo html_frame_end(" "); } -echo "
"; apidb_footer(); ?> diff --git a/include/vendor.php b/include/vendor.php index 08bcfa0..1610b2d 100644 --- a/include/vendor.php +++ b/include/vendor.php @@ -81,14 +81,17 @@ class Vendor { */ function update($sName=null, $sWebpage=null) { - if ($sName) + if(!$this->iVendorId) + return $this->create($sName, $sWebpage); + + if($sName) { if (!query_appdb("UPDATE vendor SET vendorName = '".$sName."' WHERE vendorId = ".$this->iVendorId)) return false; $this->sName = $sName; } - if ($sWebpage) + if($sWebpage) { if (!query_appdb("UPDATE vendor SET vendorURL = '".$sWebpage."' WHERE vendorId = ".$this->iVendorId)) return false; @@ -104,9 +107,17 @@ class Vendor { */ function delete($bSilent=false) { - $sQuery = "DELETE FROM vendor - WHERE vendorId = ".$this->iVendorId." - LIMIT 1"; + if(sizeof($this->aApplicationsIds)>0) + { + addmsg("The vendor has not been deleted because there are still applications linked to it.", "red"); + } else + { + $sQuery = "DELETE FROM vendor + WHERE vendorId = ".$this->iVendorId." + LIMIT 1"; + query_appdb($sQuery); + addmsg("The vendor has been deleted.", "green"); + } } } ?>