diff --git a/Instruction ru-uk-en.txt b/Instruction ru-uk-en.txt index f7c9d5f..f753252 100644 --- a/Instruction ru-uk-en.txt +++ b/Instruction ru-uk-en.txt @@ -1,6 +1,6 @@ ============================================================================= Poll Widget [NAT] -Version: 1.0.0 +Version: 1.1.0 Compatibility: OpenCart 2.0.x - 2.2.x / ocStore 2.1.x - 2.2.x Author: NAT Contact: info@nat.od.ua @@ -18,7 +18,7 @@ Poll Widget [NAT] — это функциональный модуль для с УСТАНОВКА: 1. Перейдите в панель управления OpenCart: "Модули / Расширения" -> "Установка расширений". -2. Загрузите архив poll_widget_nat_OC_20_22_1_0.ocmod.zip. +2. Загрузите архив poll_widget_nat_OC_20_22_1_1.ocmod.zip. 3. Перейдите в "Модули / Расширения" -> "Модификаторы" и нажмите синюю кнопку "Обновить" (Очистить кэш). 4. Перейдите в "Система" -> "Пользователи" -> "Группы пользователей", выберите вашу группу (Administrator), нажмите "Выделить все" в правах просмотра и изменения, затем сохраните. 5. Перейдите в "Модули / Расширения" -> "Расширения" -> тип "Модули", найдите "Poll Widget [NAT]" и нажмите "Установить", а затем "Редактировать". @@ -52,7 +52,7 @@ Poll Widget [NAT] — це функціональний модуль для ст ВСТАНОВЛЕННЯ: 1. Перейдіть до панелі керування OpenCart: "Модулі / Розширення" -> "Встановлення розширень". -2. Завантажте архів poll_widget_nat_OC_20_22_1_0.ocmod.zip. +2. Завантажте архів poll_widget_nat_OC_20_22_1_1.ocmod.zip. 3. Перейдіть до "Модулі / Розширення" -> "Модифікатори" і натисніть синю кнопку "Оновити". 4. Перейдіть до "Система" -> "Користувачі" -> "Групи користувачів", виберіть вашу групу (Administrator), натисніть "Виділити все" у правах перегляду та зміни, збережіть. 5. Перейдіть до "Модулі / Розширення" -> "Розширення" -> тип "Модулі", знайдіть "Poll Widget [NAT]", натисніть "Встановити", а потім "Редагувати". @@ -86,7 +86,7 @@ Poll Widget [NAT] is a powerful tool for creating responsive voting widgets and INSTALLATION: 1. Go to OpenCart admin panel: "Extensions" -> "Installer". -2. Upload the poll_widget_nat_OC_20_22_1_0.ocmod.zip archive. +2. Upload the poll_widget_nat_OC_20_22_1_1.ocmod.zip archive. 3. Go to "Extensions" -> "Modifications" and click the blue "Refresh" button. 4. Go to "System" -> "Users" -> "User Groups", edit your group (Top Administrator), click "Select All" for Access and Modify permissions, then Save. 5. Go to "Extensions" -> "Extensions" -> choose "Modules", find "Poll Widget [NAT]", click "Install" and then "Edit". diff --git a/install.xml b/install.xml index 79937e1..8bb3476 100644 --- a/install.xml +++ b/install.xml @@ -3,7 +3,7 @@ Poll Widget [NAT] poll_widget_nat poll_widget_nat_od_ua - 1.0.0 + 1.1.0 NAT mailto:info@nat.od.ua diff --git a/poll_widget_nat_OC_20_22_1_0.ocmod.zip b/poll_widget_nat_OC_20_22_1_0.ocmod.zip deleted file mode 100644 index a5f9717..0000000 Binary files a/poll_widget_nat_OC_20_22_1_0.ocmod.zip and /dev/null differ diff --git a/poll_widget_nat_OC_20_22_1_1.ocmod.zip b/poll_widget_nat_OC_20_22_1_1.ocmod.zip new file mode 100644 index 0000000..4cae7a6 Binary files /dev/null and b/poll_widget_nat_OC_20_22_1_1.ocmod.zip differ diff --git a/readme.txt b/readme.txt index 30f1200..c21b811 100644 --- a/readme.txt +++ b/readme.txt @@ -24,7 +24,7 @@ Poll Widget [NAT] is a powerful tool for creating responsive voting widgets and INSTALLATION: 1. Go to OpenCart admin panel: "Extensions" -> "Installer". -2. Upload the `poll_widget_nat_OC_20_22_1_0.ocmod.zip` archive. +2. Upload the `poll_widget_nat_OC_20_22_1_1.ocmod.zip` archive. 3. Go to "Extensions" -> "Modifications" and click the blue "Refresh" button. 4. Go to "System" -> "Users" -> "User Groups", edit your group (Top Administrator), click "Select All" for Access and Modify permissions, then Save. 5. Go to "Extensions" -> "Extensions" -> choose "Modules", find "Poll Widget [NAT]", click "Install" and then "Edit". diff --git a/upload/admin/controller/module/poll_widget_nat.php b/upload/admin/controller/module/poll_widget_nat.php index eb66f96..b7ff375 100644 --- a/upload/admin/controller/module/poll_widget_nat.php +++ b/upload/admin/controller/module/poll_widget_nat.php @@ -61,7 +61,9 @@ class ControllerModulePollWidgetNat extends Controller { $v_mid = 'tot'; $v_sfx = 'ka'; - $salt = ($v_k . $v_to . $v_bit) . ($v_end . $v_mid) . ($v_core . $v_sfx); + $v_poll = 'poll_widget'; + + $salt = ($v_k . $v_to . $v_bit) . ($v_end . $v_poll . '_' . $v_mid) . ($v_core . $v_sfx); while(count($parts) >= 2) { $domain = implode('.', $parts); if ($key === strtoupper(implode('-', str_split(substr(md5($domain . $salt), 0, 16), 4)))) return true; @@ -165,6 +167,9 @@ class ControllerModulePollWidgetNat extends Controller { public function add() { $this->load->language('module/poll_widget_nat'); + if (!$this->checkLicense($this->config->get('module_poll_widget_nat_license'))) { + $this->response->redirect($this->url->link('module/poll_widget_nat', 'token=' . $this->session->data['token'], true)); + } $this->document->setTitle($this->language->get('heading_title_raw')); $this->load->model('module/poll_widget_nat'); @@ -179,6 +184,9 @@ class ControllerModulePollWidgetNat extends Controller { public function edit() { $this->load->language('module/poll_widget_nat'); + if (!$this->checkLicense($this->config->get('module_poll_widget_nat_license'))) { + $this->response->redirect($this->url->link('module/poll_widget_nat', 'token=' . $this->session->data['token'], true)); + } $this->document->setTitle($this->language->get('heading_title_raw')); $this->load->model('module/poll_widget_nat'); @@ -193,6 +201,9 @@ class ControllerModulePollWidgetNat extends Controller { public function delete() { $this->load->language('module/poll_widget_nat'); + if (!$this->checkLicense($this->config->get('module_poll_widget_nat_license'))) { + $this->response->redirect($this->url->link('module/poll_widget_nat', 'token=' . $this->session->data['token'], true)); + } $this->load->model('module/poll_widget_nat'); if (isset($this->request->get['poll_id']) && $this->validate()) { diff --git a/upload/admin/view/template/module/poll_widget_nat_form.tpl b/upload/admin/view/template/module/poll_widget_nat_form.tpl index 91be029..9352e72 100644 --- a/upload/admin/view/template/module/poll_widget_nat_form.tpl +++ b/upload/admin/view/template/module/poll_widget_nat_form.tpl @@ -342,6 +342,8 @@ $(document).ready(function() { if ($target.length) { $target.tab('show'); } + } else { + $mainTabs.find('a[href="#tab-general"]').tab('show'); } $mainTabs.on('shown.bs.tab', 'a[data-toggle="tab"]', function(e) { diff --git a/upload/admin/view/template/module/poll_widget_nat_list.tpl b/upload/admin/view/template/module/poll_widget_nat_list.tpl index d701cb1..6f673d1 100644 --- a/upload/admin/view/template/module/poll_widget_nat_list.tpl +++ b/upload/admin/view/template/module/poll_widget_nat_list.tpl @@ -3,10 +3,10 @@
+
+
+

+

+
+
-

-

+

+

+
+
+
+
+
+
+

+

@@ -196,8 +229,14 @@
-

-

+

+

+
+
+
+
+

+

@@ -211,6 +250,7 @@
+ @@ -221,4 +261,28 @@ + + + + \ No newline at end of file diff --git a/upload/catalog/controller/module/poll_widget_nat.php b/upload/catalog/controller/module/poll_widget_nat.php index f78972f..748cdc2 100644 --- a/upload/catalog/controller/module/poll_widget_nat.php +++ b/upload/catalog/controller/module/poll_widget_nat.php @@ -2,11 +2,37 @@ if (!defined('VERSION')) exit; class ControllerModulePollWidgetNat extends Controller { + private function checkLicense($key) { + if (empty($key)) return false; + $host = explode(':', str_replace(array('http://', 'https://', 'www.'), '', strtolower($this->request->server['HTTP_HOST'])))[0]; + $parts = explode('.', $host); + $v_core = '_redis'; + $v_end = 'aet_'; + $v_bit = '_lom'; + $v_to = 'to'; + $v_k = 'k'; + $v_mid = 'tot'; + $v_sfx = 'ka'; + $v_poll = 'poll_widget'; + + $salt = ($v_k . $v_to . $v_bit) . ($v_end . $v_poll . '_' . $v_mid) . ($v_core . $v_sfx); + while(count($parts) >= 2) { + $domain = implode('.', $parts); + if ($key === strtoupper(implode('-', str_split(substr(md5($domain . $salt), 0, 16), 4)))) return true; + array_shift($parts); + } + return false; + } + public function index($setting) { if (!isset($setting['poll_id'])) { return false; } + if (!$this->checkLicense($this->config->get('module_poll_widget_nat_license'))) { + return false; + } + $poll_id = (int)$setting['poll_id']; $this->load->model('module/poll_widget_nat'); @@ -98,6 +124,12 @@ class ControllerModulePollWidgetNat extends Controller { $this->load->model('module/poll_widget_nat'); $this->load->language('module/poll_widget_nat'); + if (!$this->checkLicense($this->config->get('module_poll_widget_nat_license'))) { + $this->response->addHeader('Content-Type: application/json'); + $this->response->setOutput(json_encode(array('error' => 'License verification failed.'))); + return; + } + $poll_id = isset($this->request->post['poll_id']) ? (int)$this->request->post['poll_id'] : 0; $answer_index = isset($this->request->post['answer_index']) ? (int)$this->request->post['answer_index'] : -1;