This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Deon George 130a87aa9a Major work to domain and hosting
Minor updates for ADSL services
Updates to Sort::MAsort()
Move core OSB items under application/
Moved ACCOUNT functions under application
Minor updates to task
2012-01-12 19:53:55 +11:00

72 lines
1.9 KiB
PHP

<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* This class provides product categories
*
* @package OSB
* @subpackage Page
* @category Controllers
* @author Deon George
* @copyright (c) 2010 Deon George
* @license http://dev.leenooks.net/license.html
*/
class Controller_Product extends Controller_TemplateDefault {
/**
* Show the available topics in a category
* @todo Only show categories according to their validity dates
* @todo Obey sort order
*/
public function action_category($id) {
$cat = ORM::factory('product_category',$id);
if (! $cat->loaded())
Request::current()->redirect('welcome/index');
Breadcrumb::name($this->request->uri(),$cat->name);
Block::add(array(
'title'=>sprintf('%s: %s',_('Category'),$cat->name),
'body'=>View::factory('product/category/view')
->set('results',$this->_get_category($cat->id))
->set('cat',$cat->id),
));
}
/**
* Obtain a list of pages in a category
*/
private function _get_category($id) {
return ORM::factory('product')->list_category($id);
}
/**
* Show a product
*/
public function action_view($id) {
$po = ORM::factory('product',$id);
if (! $po->loaded())
Request::current()->redirect('product_category/index');
Breadcrumb::name($this->request->uri(),$po->product_translate->find()->name);
// Work out our category id for the control line
if (! empty($_GET['cid'])) {
$co = ORM::factory('product_category',$_GET['cid']);
// If the product category doesnt exist, or doesnt match the product
if (! $co->loaded() OR ! in_array($co->id,unserialize($po->avail_category_id)))
Request::current()->redirect('product_category/index');
Breadcrumb::name('product/view',$co->name);
}
Block::add(array(
'title'=>$po->product_translate->find()->description_short,
'body'=>View::factory('product/view')
->set('record',$po),
));
}
}
?>