/admin/controller/module/amazon_pay.php

https://gitlab.com/shapcy/opencart · PHP · 146 lines · 115 code · 31 blank · 0 comment · 16 complexity · eac7995970380d815882aa5a2072092a MD5 · raw file

  1. <?php
  2. class ControllerModuleAmazonPay extends Controller {
  3. private $error = array();
  4. public function index() {
  5. $this->load->language('module/amazon_pay');
  6. $this->load->model('setting/setting');
  7. $this->load->model('design/layout');
  8. $this->document->setTitle($this->language->get('heading_title'));
  9. if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
  10. $this->model_setting_setting->editSetting('amazon_pay', $this->request->post);
  11. $this->session->data['success'] = $this->language->get('text_success');
  12. $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], true));
  13. }
  14. $data['heading_title'] = $this->language->get('heading_title');
  15. $data['text_enabled'] = $this->language->get('text_enabled');
  16. $data['text_disabled'] = $this->language->get('text_disabled');
  17. $data['text_content_top'] = $this->language->get('text_content_top');
  18. $data['text_content_bottom'] = $this->language->get('text_content_bottom');
  19. $data['text_column_left'] = $this->language->get('text_column_left');
  20. $data['text_column_right'] = $this->language->get('text_column_right');
  21. $data['text_pwa_button'] = $this->language->get('text_pwa_button');
  22. $data['text_pay_button'] = $this->language->get('text_pay_button');
  23. $data['text_a_button'] = $this->language->get('text_a_button');
  24. $data['text_gold_button'] = $this->language->get('text_gold_button');
  25. $data['text_darkgray_button'] = $this->language->get('text_darkgray_button');
  26. $data['text_lightgray_button'] = $this->language->get('text_lightgray_button');
  27. $data['text_small_button'] = $this->language->get('text_small_button');
  28. $data['text_medium_button'] = $this->language->get('text_medium_button');
  29. $data['text_large_button'] = $this->language->get('text_large_button');
  30. $data['text_x_large_button'] = $this->language->get('text_x_large_button');
  31. $data['entry_button_type'] = $this->language->get('entry_button_type');
  32. $data['entry_button_colour'] = $this->language->get('entry_button_colour');
  33. $data['entry_button_size'] = $this->language->get('entry_button_size');
  34. $data['entry_layout'] = $this->language->get('entry_layout');
  35. $data['entry_position'] = $this->language->get('entry_position');
  36. $data['entry_status'] = $this->language->get('entry_status');
  37. $data['entry_sort_order'] = $this->language->get('entry_sort_order');
  38. $data['button_save'] = $this->language->get('button_save');
  39. $data['button_cancel'] = $this->language->get('button_cancel');
  40. $data['button_module_add'] = $this->language->get('button_module_add');
  41. $data['button_remove'] = $this->language->get('button_remove');
  42. if (isset($this->error['warning'])) {
  43. $data['error_warning'] = $this->error['warning'];
  44. } else {
  45. $data['error_warning'] = '';
  46. }
  47. $data['breadcrumbs'] = array();
  48. $data['breadcrumbs'][] = array(
  49. 'text' => $this->language->get('text_home'),
  50. 'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true),
  51. 'separator' => false
  52. );
  53. $data['breadcrumbs'][] = array(
  54. 'text' => $this->language->get('text_module'),
  55. 'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], true),
  56. 'separator' => ' :: '
  57. );
  58. $data['breadcrumbs'][] = array(
  59. 'text' => $this->language->get('heading_title'),
  60. 'href' => $this->url->link('module/amazon_pay', 'token=' . $this->session->data['token'], true),
  61. 'separator' => ' :: '
  62. );
  63. $data['action'] = $this->url->link('module/amazon_pay', 'token=' . $this->session->data['token'], true);
  64. $data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], true);
  65. $data['token'] = $this->session->data['token'];
  66. if (isset($this->request->post['amazon_pay_button_type'])) {
  67. $data['amazon_pay_button_type'] = $this->request->post['amazon_pay_button_type'];
  68. } elseif ($this->config->get('amazon_pay_button_type')) {
  69. $data['amazon_pay_button_type'] = $this->config->get('amazon_pay_button_type');
  70. } else {
  71. $data['amazon_pay_button_type'] = 'PwA';
  72. }
  73. if (isset($this->request->post['amazon_pay_button_colour'])) {
  74. $data['amazon_pay_button_colour'] = $this->request->post['amazon_pay_button_colour'];
  75. } elseif ($this->config->get('amazon_pay_button_colour')) {
  76. $data['amazon_pay_button_colour'] = $this->config->get('amazon_pay_button_colour');
  77. } else {
  78. $data['amazon_pay_button_colour'] = 'gold';
  79. }
  80. if (isset($this->request->post['amazon_pay_button_size'])) {
  81. $data['amazon_pay_button_size'] = $this->request->post['amazon_pay_button_size'];
  82. } elseif ($this->config->get('amazon_pay_button_size')) {
  83. $data['amazon_pay_button_size'] = $this->config->get('amazon_pay_button_size');
  84. } else {
  85. $data['amazon_pay_button_size'] = 'medium';
  86. }
  87. if (isset($this->request->post['amazon_pay_status'])) {
  88. $data['amazon_pay_status'] = $this->request->post['amazon_pay_status'];
  89. } else {
  90. $data['amazon_pay_status'] = $this->config->get('amazon_pay_status');
  91. }
  92. $data['header'] = $this->load->controller('common/header');
  93. $data['column_left'] = $this->load->controller('common/column_left');
  94. $data['footer'] = $this->load->controller('common/footer');
  95. $this->response->setOutput($this->load->view('module/amazon_pay', $data));
  96. }
  97. protected function validate() {
  98. if (!$this->user->hasPermission('modify', 'module/amazon_pay')) {
  99. $this->error['warning'] = $this->language->get('error_permission');
  100. }
  101. if (!$this->error) {
  102. return true;
  103. } else {
  104. return false;
  105. }
  106. }
  107. public function install() {
  108. $this->load->model('extension/event');
  109. $this->model_extension_event->addEvent('amazon_pay', 'catalog/controller/account/logout/after', 'module/amazon_pay/logout');
  110. }
  111. public function uninstall() {
  112. $this->load->model('extension/event');
  113. $this->model_extension_event->deleteEvent('amazon_pay');
  114. }
  115. }