iVendorId = $iVendorId;
$this->sName = $oRow->vendorName;
$this->sWebpage = $oRow->vendorURL;
}
/*
* 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()
{
if(!$this->canEdit())
return FALSE;
$hResult = query_parameters("INSERT INTO vendor (vendorName, vendorURL) ".
"VALUES ('?', '?')",
$this->sName, $this->sWebpage);
if($hResult)
{
$this->iVendorId = mysql_insert_id();
$this->vendor($this->iVendorId);
return true;
}
else
{
addmsg("Error while creating a new vendor.", "red");
return false;
}
}
/**
* 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";
}
function objectGetEntries($bQueued, $iRows = 0, $iStart = 0)
{
/* Vendor queueing is not implemented yet */
if($bQueued)
return NULL;
if(!$iRows)
$iRows = getNumberOfVendors();
$hResult = query_parameters("SELECT * FROM vendor
ORDER BY vendorName LIMIT ?,?",
$iStart, $iRows);
if(!$hResult)
return FALSE;
return $hResult;
}
function objectOutputHeader($sClass = "")
{
$sCells = array(
"Name",
"Website",
array("Linked apps", "align=\"right\""));
if(vendor::canEdit())
$sCells[sizeof($sCells)] = "Action";
echo html_tr($sCells, $sClass);
}
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 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 '- '.
$oApp->sName.'
',"\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";
}
}
/* Get the total number of Vendors in the database */
function getNumberOfVendors()
{
$hResult = query_parameters("SELECT count(*) as num_vendors FROM vendor");
if($hResult)
{
$oRow = mysql_fetch_object($hResult);
return $oRow->num_vendors;
}
return 0;
}
?>