Professional CodeIgniter, Thomas Myer

Chapter 4: Creating the Main Web Site
99


Updating the MProducts Model

Before you work with the controller, you ' ll need to create a new function in the MProducts model, one
that will allow you to extract a variable number of products that match a grouping. Here is that new
function, called
getProductsByGroup()

. It accepts three arguments: The first limits the result set, the
second passes in a grouping string to match against, and the third tells the function which product ID to
skip (in this case, the product you ' re skipping is the one that has been displayed on the page).
function getProductsByGroup($limit,$group,$skip){
$data = array();
if ($limit == 0){
$limit=3;
}
$this-
>
db-
>
select(`id,name,shortdesc,thumbnail');
$this-
>
db-
>
where(`grouping', $group);
$this-
>
db-
>
where(`status', `active');
$this-
>
db-
>
where(`id !=', $skip);
$this-
>
db-
>
orderby(`name','asc');
$this-
>
db-
>
limit($limit);
$Q = $this-
>
db-
>
get(`products');
if ($Q-
>
num_rows()
>
0){
foreach ($Q-
>
result_array() as $row){
$data[] = $row;
}
}
$Q-
>
free_result();
return $data;
}


Building the product() Controller Function

Now it ' s time to build the controller. By now the pattern should be pretty established in your mind. Your
controller function for
product()

looks like this:
function product($id){
$product = $this-
>
MProducts-
>
getProduct($id);
if (!count($product)){
redirect(`welcome/index','refresh');
}
$data[`grouplist'] = $this-
>
MProducts-
>
getProductsByGroup(3,$product[`grouping'],$id);
$data[`product'] = $product;
$data[`title'] = "Claudia's Kids | ". $product[`name'];
$data[`main'] = `product';
$data[`navlist'] = $this-
>
MCats-
>
getCategoriesNav();
$this-
>
load-
>
vars($data);
$this-
>
load-
>
view(`template');
}

c04.indd 99
c04.indd 99
6/10/08 5:34:28 PM
6/10/08 5:34:28 PM


Другие страницы

 
Cкачать книги бесплатно без регистрации в электронном виде (pdf, chm, txt).Вы можете читать книги онлайн на нашем сайте литературного портала книг.Большая подборка учебников, пособий, интересных книг.Электронные книги на английском языке скачать бесплатно без смс.

OK

Loading...
...
Закрыть