Emilian Balanescu and Cristian Darie
"Beginning PHP and MySQL E-Commerce: From Novice to Professional, Second Edition"
department_id)}
{assign var=selected value="class=\"selected\""}
{/if}
{* Generate a link for a new department in the list *}
{$obj->mDepartments[i].name}
{/section}
{* End departments list *}
4. Create a folder named smarty_plugins in the presentation folder. This will contain the Smarty
plug-in files.
5. Inside the smarty_plugins folder, create a file named function.load_presentation_object.php,
and add the following code to it:
// Plug-in functions inside plug-in files must be named: smarty_type_name
function smarty_function_load_presentation_object($params, $smarty)
{
require_once PRESENTATION_DIR . $params['filename'] . '.php';
$className = str_replace(' ', '',
ucfirst(str_replace('_', ' ',
$params['filename'])));
// Create presentation object
$obj = new $className();
if (method_exists($obj, 'init'))
{
$obj->init();
}
// Assign template variable
$smarty->assign($params['assign'], $obj);
}
?>
6. Inside the presentation folder, create a file named departments_list.php, and add the following
code to it:
// Manages the departments list
class DepartmentsList
{
CHAPTER 4 ?– CREATING THE PRODUCT CATALOG: PART 1 103
/* Public variables available in departments_list.tpl Smarty template */
public $mSelectedDepartment = 0;
public $mDepartments;
// Constructor reads query string parameter
public function __construct()
{
/* If DepartmentId exists in the query string, we're visiting a
department */
if (isset ($_GET['DepartmentId']))
$this->mSelectedDepartment = (int)$_GET['DepartmentId'];
}
/* Calls business tier method to read departments list and create
their links */
public function init()
{
// Get the list of departments from the business tier
$this->mDepartments = Catalog::GetDepartments();
// Create the department links
for ($i = 0; $i < count($this->mDepartments); $i++)
$this->mDepartments[$i]['link_to_department'] =
'index.
Pages:
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188