Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php defined('SYSPATH') or die('No direct script access.');
- class Controller_Search extends Controller_Base {
- public function action_index()
- {
- $query = $this->request->query();
- $produtos = ORM::factory('Produto')
- ->where('titulo', 'LIKE', "%".$query['q']."%")
- ->where('publicado', '=', 'S')
- ->where_open()
- ->where('moderado', '=', 'S')
- ->or_where('liberado', '=', 'S')
- ->where_close();
- $datas = Utility::extra_decode(DATAS);
- if(isset($query['ordem'])){
- switch ($query['ordem']) {
- case 'mv':
- $produtos->order_by('vendidos', 'DESC');
- break;
- case 'mep':
- $produtos->order_by('valor_venda_atacado', 'ASC')
- ->order_by('valor_venda_varejo', 'ASC');
- break;
- case 'map':
- $produtos->order_by('valor_venda_atacado', 'DESC')
- ->order_by('valor_venda_varejo', 'DESC');
- break;
- case 'ma':
- $sql = DB::expr("(SELECT COUNT(*) FROM acessos AS acesso WHERE acesso.produto_id = produto.id AND acesso.ecommerce_id = {$datas['id']})");
- $produtos->order_by($sql,'DESC');
- break;
- case 'az':
- $produtos->order_by('titulo','ASC');
- break;
- case 'za':
- $produtos->order_by('titulo','DESC');
- break;
- default:
- $sql = DB::expr("(SELECT COUNT(*) FROM acessos AS acesso WHERE acesso.produto_id = produto.id AND acesso.ecommerce_id = {$datas['id']})");
- $produtos->order_by(DB::expr('ISNULL(ranking)'))
- ->order_by('ranking', 'ASC')
- ->order_by($sql,'DESC');
- break;
- }
- }else{
- $sql = DB::expr("(SELECT COUNT(*) FROM acessos AS acesso WHERE acesso.produto_id = produto.id AND acesso.ecommerce_id = {$datas['id']})");
- $produtos->order_by(DB::expr('ISNULL(ranking)'))
- ->order_by('ranking', 'ASC')
- ->order_by($sql,'DESC');
- $query['ordem'] = 'ma';
- }
- $template = View::factory('template');
- $template->header = $this->render_header($query);
- $orm = clone $produtos;
- $pagination = Pagination::factory(array(
- 'total_items' => $orm->count_all(),
- )
- );
- $pagination->route_params(array(
- 'controller' => strtolower($this->request->controller()),
- 'action' => $this->request->action()
- )
- );
- $produtos = $produtos->offset($pagination->offset)
- ->limit($pagination->items_per_page)
- ->find_all();
- $breadcrumb = new Breadcrumb();
- $breadcrumb->set(
- array(
- 'url' => URL::site(),
- 'label' => 'Início da Loja'
- )
- );
- $categorias = ORM::factory('Categoria')
- ->where('publicado', '=', 'S')
- ->find_all();
- $template->breadcrumb = $breadcrumb->render();
- $template->content = View::factory('pages/SearchView')
- ->set('categorias', $categorias)
- ->set('query', $query)
- ->set('pagination', $pagination)
- ->set('produtos', $produtos);
- $this->response->body($template->render());
- }
- } // End Welcome
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement