/admin/controller/report/customer_online.php

https://gitlab.com/reclamare/mao · PHP · 138 lines · 104 code · 34 blank · 0 comment · 13 complexity · 7fa17521056f2572233993a4c410b79c MD5 · raw file

  1. <?php
  2. class ControllerReportCustomerOnline extends Controller {
  3. public function index() {
  4. $this->load->language('report/customer_online');
  5. $this->document->setTitle($this->language->get('heading_title'));
  6. if (isset($this->request->get['filter_ip'])) {
  7. $filter_ip = $this->request->get['filter_ip'];
  8. } else {
  9. $filter_ip = null;
  10. }
  11. if (isset($this->request->get['filter_customer'])) {
  12. $filter_customer = $this->request->get['filter_customer'];
  13. } else {
  14. $filter_customer = null;
  15. }
  16. if (isset($this->request->get['page'])) {
  17. $page = $this->request->get['page'];
  18. } else {
  19. $page = 1;
  20. }
  21. $url = '';
  22. if (isset($this->request->get['filter_customer'])) {
  23. $url .= '&filter_customer=' . urlencode($this->request->get['filter_customer']);
  24. }
  25. if (isset($this->request->get['filter_ip'])) {
  26. $url .= '&filter_ip=' . $this->request->get['filter_ip'];
  27. }
  28. if (isset($this->request->get['page'])) {
  29. $url .= '&page=' . $this->request->get['page'];
  30. }
  31. $data['breadcrumbs'] = array();
  32. $data['breadcrumbs'][] = array(
  33. 'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL'),
  34. 'text' => $this->language->get('text_home')
  35. );
  36. $data['breadcrumbs'][] = array(
  37. 'href' => $this->url->link('report/customer_online', 'token=' . $this->session->data['token'] . $url, 'SSL'),
  38. 'text' => $this->language->get('heading_title')
  39. );
  40. $this->load->model('report/customer');
  41. $this->load->model('customer/customer');
  42. $data['customers'] = array();
  43. $filter_data = array(
  44. 'filter_ip' => $filter_ip,
  45. 'filter_customer' => $filter_customer,
  46. 'start' => ($page - 1) * $this->config->get('config_limit_admin'),
  47. 'limit' => $this->config->get('config_limit_admin')
  48. );
  49. $customer_total = $this->model_report_customer->getTotalCustomersOnline($filter_data);
  50. $results = $this->model_report_customer->getCustomersOnline($filter_data);
  51. foreach ($results as $result) {
  52. $customer_info = $this->model_customer_customer->getCustomer($result['customer_id']);
  53. if ($customer_info) {
  54. $customer = $customer_info['firstname'] . ' ' . $customer_info['lastname'];
  55. } else {
  56. $customer = $this->language->get('text_guest');
  57. }
  58. $data['customers'][] = array(
  59. 'customer_id' => $result['customer_id'],
  60. 'ip' => $result['ip'],
  61. 'customer' => $customer,
  62. 'url' => $result['url'],
  63. 'referer' => $result['referer'],
  64. 'date_added' => date($this->language->get('datetime_format'), strtotime($result['date_added'])),
  65. 'edit' => $this->url->link('customer/customer/edit', 'token=' . $this->session->data['token'] . '&customer_id=' . $result['customer_id'], 'SSL')
  66. );
  67. }
  68. $data['heading_title'] = $this->language->get('heading_title');
  69. $data['text_list'] = $this->language->get('text_list');
  70. $data['text_no_results'] = $this->language->get('text_no_results');
  71. $data['text_confirm'] = $this->language->get('text_confirm');
  72. $data['column_ip'] = $this->language->get('column_ip');
  73. $data['column_customer'] = $this->language->get('column_customer');
  74. $data['column_url'] = $this->language->get('column_url');
  75. $data['column_referer'] = $this->language->get('column_referer');
  76. $data['column_date_added'] = $this->language->get('column_date_added');
  77. $data['column_action'] = $this->language->get('column_action');
  78. $data['entry_ip'] = $this->language->get('entry_ip');
  79. $data['entry_customer'] = $this->language->get('entry_customer');
  80. $data['button_edit'] = $this->language->get('button_edit');
  81. $data['button_filter'] = $this->language->get('button_filter');
  82. $data['token'] = $this->session->data['token'];
  83. $url = '';
  84. if (isset($this->request->get['filter_customer'])) {
  85. $url .= '&filter_customer=' . urlencode($this->request->get['filter_customer']);
  86. }
  87. if (isset($this->request->get['filter_ip'])) {
  88. $url .= '&filter_ip=' . $this->request->get['filter_ip'];
  89. }
  90. $pagination = new Pagination();
  91. $pagination->total = $customer_total;
  92. $pagination->page = $page;
  93. $pagination->limit = $this->config->get('config_limit_admin');
  94. $pagination->url = $this->url->link('report/customer_online', 'token=' . $this->session->data['token'] . $url . '&page={page}', 'SSL');
  95. $data['pagination'] = $pagination->render();
  96. $data['results'] = sprintf($this->language->get('text_pagination'), ($customer_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($customer_total - $this->config->get('config_limit_admin'))) ? $customer_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $customer_total, ceil($customer_total / $this->config->get('config_limit_admin')));
  97. $data['filter_customer'] = $filter_customer;
  98. $data['filter_ip'] = $filter_ip;
  99. $data['header'] = $this->load->controller('common/header');
  100. $data['column_left'] = $this->load->controller('common/column_left');
  101. $data['footer'] = $this->load->controller('common/footer');
  102. $this->response->setOutput($this->load->view('report/customer_online.tpl', $data));
  103. }
  104. }