iVendorId = $iVendorId; $this->sName = $oRow->vendorName; $this->sWebpage = $oRow->vendorURL; $this->sQueued = $oRow->queued; } /* * We fetch applicationsIds. */ $sQuery = "SELECT appId FROM appFamily WHERE vendorId = '?'"; if($hResult = query_parameters($sQuery, $iVendorId)) { while($oRow = mysql_fetch_object($hResult)) { $this->aApplicationsIds[] = $oRow->appId; } } } } /** * Creates a new vendor. */ function create() { $hResult = query_parameters("INSERT INTO vendor (vendorName, vendorURL, queued) ". "VALUES ('?', '?', '?')", $this->sName, $this->sWebpage, $this->mustBeQueued() ? "true" : "false"); if($hResult) { $this->iVendorId = mysql_insert_id(); $this->vendor($this->iVendorId); return true; } else { addmsg("Error while creating a new vendor.", "red"); return false; } } /** * Un-queue vendor * Returns TRUE or FALSE */ function unQueue() { if(!$this->canEdit()) return FALSE; $hResult = query_parameters("UPDATE vendor SET queued = '?' WHERE vendorId = '?'", 'false', $this->iVendorId); if(!$hResult) return FALSE; return TRUE; } /** * Update vendor. * Returns true on success and false on failure. */ function update() { if(!$this->iVendorId) return $this->create(); if($this->sName) { if (!query_parameters("UPDATE vendor SET vendorName = '?' WHERE vendorId = '?'", $this->sName, $this->iVendorId)) return false; $this->sName = $sName; } if($this->sWebpage) { if (!query_parameters("UPDATE vendor SET vendorURL = '?' WHERE vendorId = '?'", $this->sWebpage, $this->iVendorId)) return false; $this->sWebpage = $sWebpage; } return true; } /** * Deletes the vendor from the database. */ function delete($bSilent=false) { 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 = '?' LIMIT 1"; if(query_parameters($sQuery, $this->iVendorId)) { addmsg("The vendor has been deleted.", "green"); return TRUE; } return FALSE; } } function outputEditor() { echo "\n"; // Name echo '',"\n"; echo '',"\n"; // Url echo '',"\n"; echo '',"\n"; echo '',"\n"; echo "
Vendor Name
Vendor Url
\n"; } function objectGetEntries($bQueued, $bRejected, $iRows = 0, $iStart = 0) { /* Vendor queueing is not implemented yet */ if($bQueued) return FALSE; /* Not implemented */ if($bRejected) return FALSE; if(!$iRows) $iRows = Vendor::objectGetEntriesCount($bQueued, $bRejected); $hResult = query_parameters("SELECT * FROM vendor ORDER BY vendorName LIMIT ?,?", $iStart, $iRows); if(!$hResult) return FALSE; return $hResult; } function objectGetHeader() { $aCells = array( "Name", "Website", array("Linked apps", "align=\"right\"")); return $aCells; } function objectGetInstanceFromRow($oRow) { return new vendor($oRow->vendorId, $oRow); } /* arg1 = OM object, arg2 = CSS style, arg3 = text for edit link */ function objectOutputTableRow($oObject, $sClass = "", $sEditLinkLabel) { $aCells = array( "makeUrl("view", $this->iVendorId, "View Vendor")."\">$this->sName", "sWebpage\">$this->sWebpage", array(sizeof($this->aApplicationsIds), "align=\"right\"")); if($this->canEdit()) { if(!sizeof($this->aApplicationsIds)) $shDeleteLink = "   [makeUrl("delete", $this->iVendorId, "View Vendors")."\">". "delete]"; $aCells[sizeof($aCells)] = "[makeUrl("edit", $this->iVendorId, "Edit Vendor")."\">$sEditLinkLabel]$shDeleteLink"; } echo html_tr($aCells, $sClass); } function canEdit() { if($_SESSION['current']->hasPriv("admin")) return TRUE; else return FALSE; } function mustBeQueued() { if($_SESSION['current']->hasPriv("admin")) return FALSE; else return TRUE; } function getOutputEditorValues($aClean) { $this->sName = $aClean['sVendorName']; $this->sWebpage = $aClean['sVendorWebpage']; } function display() { echo 'Vendor Name: '.$this->sName,"\n"; if($this->canEdit()) { echo "[iVendorId&sTitle=Edit%20Vendor\">edit]"; } echo '
',"\n"; if ($this->sWebpage) echo 'Vendor URL: '. $this->sWebpage.'
',"\n"; if($this->aApplicationsIds) { echo '
Applications by '.$this->sName.'
    ',"\n"; foreach($this->aApplicationsIds as $iAppId) { $oApp = new Application($iAppId); echo '
  1. '.$oApp->objectMakeLink().'
  2. ',"\n"; } echo '
',"\n"; } } /* Make a URL for viewing the specified vendor */ function objectMakeUrl() { $oManager = new objectManager("vendor", "View Vendor"); return $oManager->makeUrl("view", $this->iVendorId); } /* Make a HTML link for viewing the specified vendor */ function objectMakeLink() { return "objectMakeUrl()."\">$this->sName"; } function objectGetEntriesCount($bQueued, $bRejected) { /* Not implemented */ if($bQueued) return FALSE; /* Not implemented */ if($bRejected) return FALSE; $hResult = query_parameters("SELECT COUNT(vendorId) as count FROM vendor"); if(!$hResult) return FALSE; if(!$oRow = mysql_fetch_object($hResult)) return FALSE; return $oRow->count; } } ?>