/clients/controller/backend/product/product_ListRows.php

https://gitlab.com/vanthanhhoh/devlovebook · PHP · 85 lines · 85 code · 0 blank · 0 comment · 9 complexity · 23a8ee907191cffacbfc2f0780179910 MD5 · raw file

  1. <?php
  2. if(!class_exists('product')) die('Stop here!');
  3. $Search = array('sortby' => 'product_id',
  4. 'order' => 'DESC',
  5. 'q' => '',
  6. 'searchby'=> 'code',
  7. 'status' => 'all',
  8. 'limit' => 20);
  9. $Search['product_category'] = 0;
  10. $SortBy = array (
  11. 'code' => 'Mã sản phẩm ',
  12. 'title' => 'Tên sản phẩm',
  13. 'product_category' => 'Danh mục',
  14. );
  15. $SearchBy = array (
  16. 'code' => 'Mã sản phẩm ',
  17. 'title' => 'Tên sản phẩm',
  18. );
  19. $_RefFilter = array (
  20. 'product_category' =>
  21. array (
  22. 'label' => 'Danh mục',
  23. 'nodetype' => 'product_category',
  24. 'nodefield' => 'title',
  25. ),
  26. );
  27. $FromForm = Input::Post('Search', array());
  28. $Search = array_merge($Search, G::$Registry['Params']);
  29. $Search = array_merge($Search, $FromForm);
  30. $Search['q'] = urldecode($Search['q']);
  31. Router::BuildParamsString($Search, true);
  32. $Search['re_order'] = ($Search['order'] == 'desc') ? 'asc' : 'desc';
  33. G::$Session->Set('user_sort', $Search['order']);
  34. Helper::State('List nodes', Router::GenerateThisRoute());
  35. $this->UseCssComponents('Glyphicons,Buttons,Labels,InputGroups,InputGroups,Tables,ButtonGroups,Dropdowns');
  36. Theme::JqueryPlugin('InputToggle');
  37. Theme::JsFooter('ListNodeLib', APPLICATION_DATA_DIR . 'static/Node/list.js');
  38. Theme::JsFooter('ControllerName', 'var NodeController = \'product\';', 'inline');
  39. $Adapters['vnp_title_author'] = NodeBase::getNodes_Option('author', 'title', 'author_id');
  40. $Adapters['vnp_title_author_id_key'] = NodeBase::getNodes_IDKey('author', 'title', 'author_id');
  41. $Adapters['vnp_title_product_category'] = NodeBase::getNodes_Option('product_category', 'title', 'product_category_id');
  42. $Adapters['vnp_title_product_category_id_key'] = NodeBase::getNodes_IDKey('product_category', 'title', 'product_category_id');
  43. $Adapters['vnp_title_product_group'] = NodeBase::getNodes_Option('product_group', 'title', 'product_group_id');
  44. $Adapters['vnp_title_product_group_id_key'] = NodeBase::getNodes_IDKey('product_group', 'title', 'product_group_id');
  45. $ShowFields = array (
  46. 0 => 'code',
  47. 1 => 'title',
  48. 2 => 'image',
  49. 3 => 'product_category',
  50. 4 => 'product_id',
  51. 5 => 'status',
  52. );
  53. $GetNodes = DB::Query('product')->Columns($ShowFields);
  54. $GetNodes = $GetNodes->Limit($Search['limit']*1);
  55. $GetNodes = $GetNodes->Order($Search['sortby'], $Search['order']);
  56. $GetNodes = $GetNodes->Where('product_id', '>', 0);
  57. if($Search['status'] != 'all')
  58. $GetNodes = $GetNodes->_AND()->Where('status', '=', $Search['status']);
  59. foreach($_RefFilter as $RF => $RFD) {
  60. if(isset($Search[$RF]) && $Search[$RF] > 0)
  61. $GetNodes = $GetNodes->_AND()
  62. ->WhereGroupOpen()
  63. ->Where($RF, '=', intval($Search[$RF]))->_OR()
  64. ->Where($RF, 'INCLUDE', $Search[$RF])
  65. ->WhereGroupClose();
  66. }
  67. if(!empty($Search['q']))
  68. $GetNodes = $GetNodes->_AND()
  69. ->WhereGroupOpen()
  70. ->Where($Search['searchby'], 'SEARCH', $Search['q'])->_OR()
  71. ->Where($Search['searchby'], 'LIKE', $Search['q'])
  72. ->WhereGroupClose();
  73. $GetNodes = $GetNodes->Get('product_id', Output::Paging());
  74. $v = $this->View('list_nodes');
  75. $v->Assign('Search', $Search);
  76. $v->Assign('SortBy', $SortBy);
  77. $v->Assign('SA', Router::GenerateThisRoute());
  78. $v->Assign('SearchBy', $SearchBy);
  79. $v->Assign('Adapters', $Adapters);
  80. if($GetNodes->num_rows > 0) {
  81. $v->Assign('Nodes', $GetNodes->Result);
  82. } else Helper::Notify('info', 'There is no nodes found!');
  83. $this->Render($v->Output());
  84. Helper::PageInfo('List nodes for Sản phẩm ( Found ' . $GetNodes->num_rows . ' nodes )');
  85. Helper::FeaturedPanel('Add new Sản phẩm',BASE_DIR . 'product/AddNode', 'plus');