Open the presentation/admin_menu.php file, and add the following highlighted code:
class AdminMenu
{
CHAPTER 11 ?– CATALOG ADMINISTRATION: PRODUCTS AND ATTRIBUTES 314
public $mLinkToStoreAdmin;
public $mLinkToAttributesAdmin;
public $mLinkToStoreFront;
public $mLinkToLogout;
public function __construct()
{
$this->mLinkToStoreAdmin = Link::ToAdmin();
$this->mLinkToAttributesAdmin = Link::ToAttributesAdmin();
$this->mLinkToStoreFront = Link::ToIndex();
$this->mLinkToLogout = Link::ToLogout();
}
}
?>
7. Now, open the presentation/link.php file, and add the following methods at the end of the Link class:
// Create link to the attributes administration page
public static function ToAttributesAdmin()
{
return self::ToAdmin('Page=Attributes');
}
// Create link to the attribute values administration page
public static function ToAttributeValuesAdmin($attributeId)
{
$link = 'Page=AttributeValues&AttributeId=' . $attributeId;
return self::ToAdmin($link);
}
8. Open business/catalog.php to add the following business tier methods to the Catalog class. These
methods are needed for attributes management:
// Retrieves all attributes
public static function GetAttributes()
{
// Build the SQL query
$sql = 'CALL catalog_get_attributes()';
// Execute the query and return the results
return DatabaseHandler::GetAll($sql);
}
// Add an attribute
public static function AddAttribute($attributeName)
{
// Build the SQL query
$sql = 'CALL catalog_add_attribute(:attribute_name)';
CHAPTER 11 ?– CATALOG ADMINISTRATION: PRODUCTS AND ATTRIBUTES 315
// Build the parameters array
$params = array (':attribute_name' => $attributeName);
// Execute the query
DatabaseHandler::Execute($sql, $params);
}
// Updates attribute name
public static function UpdateAttribute($attributeId, $attributeName)
{
// Build the SQL query
$sql = 'CALL catalog_update_attribute(:attribute_id, :attribute_name)';
// Build the parameters array
$params = array (':attribute_id' => $attributeId,
':attribute_name' => $attributeName);
// Execute the query
DatabaseHandler::Execute($sql, $params);
}
// Deletes an attribute
public static function DeleteAttribute($attributeId)
{
// Build the SQL query
$sql = 'CALL catalog_delete_attribute(:attribute_id)';
// Build the parameters array
$params = array (':attribute_id' => $attributeId);
// Execute the query and return the results
return DatabaseHandler::GetOne($sql, $params);
}
// Retrieves details for the specified attribute
public static function GetAttributeDetails($attributeId)
{
// Build SQL query
$sql = 'CALL catalog_get_attribute_details(:attribute_id)';
// Build the parameters array
$params = array (':attribute_id' => $attributeId);
// Execute the query and return the results
return DatabaseHandler::GetRow($sql, $params);
}
CHAPTER 11 ?– CATALOG ADMINISTRATION: PRODUCTS AND ATTRIBUTES 316
// Gets atribute values
public static function GetAttributeValues($attributeId)
{
// Build the SQL query
$sql = 'CALL catalog_get_attribute_values(:attribute_id)';
// Build the parameters array
$params = array (':attribute_id' => $attributeId);
// Execute the query and return the results
return DatabaseHandler::GetAll($sql, $params);
}
// Adds an attribute value
public static function AddAttributeValue($attributeId, $attributeValue)
{
// Build the SQL query
$sql = 'CALL catalog_add_attribute_value(:attribute_id, :value)';
// Build the parameters array
$params = array (':attribute_id' => $attributeId,
':value' => $attributeValue);
// Execute the query
DatabaseHandler::Execute($sql, $params);
}
// Updates an attribute value
public static function UpdateAttributeValue(
$attributeValueId, $attributeValue)
{
// Build the SQL query
$sql = 'CALL catalog_update_attribute_value(
:attribute_value_id, :value)';
// Build the parameters array
$params = array (':attribute_value_id' => $attributeValueId,
':value' => $attributeValue);
// Execute the query
DatabaseHandler::Execute($sql, $params);
}
// Deletes an attribute value
public static function DeleteAttributeValue($attributeValueId)
{
// Build the SQL query
$sql = 'CALL catalog_delete_attribute_value(:attribute_value_id)';
CHAPTER 11 ?– CATALOG ADMINISTRATION: PRODUCTS AND ATTRIBUTES 317
// Build the parameters array
$params = array (':attribute_value_id' => $attributeValueId);
// Execute the query and return the results
return DatabaseHandler::GetOne($sql, $params);
}
9.
Pages:
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432