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;