image_2}"
alt="{$obj->mProduct.name} image 2" />
{/if}
{$obj->mProduct.description}
CHAPTER 5 ?– CREATING THE PRODUCT CATALOG: PART 2 167
Price:
{if $obj->mProduct.discounted_price != 0}
{$obj->mProduct.price}
{$obj->mProduct.discounted_price}
{else}
{$obj->mProduct.price}
{/if}
{if $obj->mLinkToContinueShopping}
Continue Shopping{/if}
Find similar products in our catalog:
{section name=i loop=$obj->mLocations}
{strip}
{$obj->mLocations[i].department_name}
{/strip}
»
{strip}
{$obj->mLocations[i].category_name}
{/strip}
{/section}
3. OK, now create the componentized template for the product details page in which the product with full
description and a second image will display. Create a file named product.php in the presentation
folder with the following contents:
// Handles product details
class Product
{
// Public variables to be used in Smarty template
public $mProduct;
public $mProductLocations;
public $mLinkToContinueShopping;
public $mLocations;
// Private stuff
private $_mProductId;
CHAPTER 5 ?– CREATING THE PRODUCT CATALOG: PART 2 168
// Class constructor
public function __construct()
{
// Variable initialization
if (isset ($_GET['ProductId']))
$this->_mProductId = (int)$_GET['ProductId'];
else
trigger_error('ProductId not set');
}
public function init()
{
// Get product details from business tier
$this->mProduct = Catalog::GetProductDetails($this->_mProductId);
if (isset ($_SESSION['link_to_continue_shopping']))
{
$continue_shopping =
Link::QueryStringToArray($_SESSION['link_to_continue_shopping']);
$page = 1;
if (isset ($continue_shopping['Page']))
$page = (int)$continue_shopping['Page'];
if (isset ($continue_shopping['CategoryId']))
$this->mLinkToContinueShopping =
Link::ToCategory((int)$continue_shopping['DepartmentId'],
(int)$continue_shopping['CategoryId'], $page);
elseif (isset ($continue_shopping['DepartmentId']))
$this->mLinkToContinueShopping =
Link::ToDepartment((int)$continue_shopping['DepartmentId'], $page);
else
$this->mLinkToContinueShopping = Link::ToIndex($page);
}
if ($this->mProduct['image'])
$this->mProduct['image'] =
Link::Build('product_images/' .
Pages:
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270