Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

SZQ

Новачок
  
  • Публікації

    8
  • З нами

  • Відвідування

Усі публікації користувача SZQ

  1. Спасибо Вам за ответ! По факту получилось как всегда))) Собственно, сам вопрос изначально возник из-за плодящихся сессий в БД. Но на деле оказалось, что в файле catalog/controller/startup/session уже реализован запрос, удаляющий все старые записи сессий при первом авторизованном обращении к любому методу API. Я не досмотрел(( Так что вопрос снят.
  2. Хм... За пол года на форуме не нашлось никого, кто бы подсказал. Весело))
  3. Здравствуйте! Столкнулся с такой задачкой. В админке на страницах, где есть логин к API, при каждом запросе создается новая API-сессия. Т.е. 20 раз обновишь страницу - в БД добавится 20 новых сессий. При чем дальше, если на странице есть функционал по работе с API, то использоваться естественно будет только последний созданный токен. Остальные же будут висеть в БД пока не сработает условие из стартапа. Я хочу сделать так чтобы при имеющейся сессии, которая не старше часа, просто возвращался её токен, а не создавалась новая. Понимаю так, что надо внести изменения здесь: // We want to create a seperate session so changes do not interfere with the admin user. $session_id_old = $this->session->getId(); $session_id_new = $this->session->createId(); $this->session->start('api', $session_id_new); // предполагаю, что здесь будет моё условие - брать сужествующий токен или выполнять этот код $this->session->data['api_id'] = $api_info['api_id']; // Close and write the new session. //$session->close(); $this->session->start('default'); Только вот мне не понятно зачем здесь стартует две сессии и куда мне точно внести свои изменения
  4. Эмм... подзабыл. Ещё нужно в файле catalog\controller\startup\session.php код $query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "' AND ai.ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'"); поменять на $query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "'");
  5. Там гораздо проще всё решается В файле catalog\controller\api\login.php закомментировать: /* $ip_data = array(); $results = $this->model_account_api->getApiIps($api_info['api_id']); foreach ($results as $result) { $ip_data[] = trim($result['ip']); } if (!in_array($this->request->server['REMOTE_ADDR'], $ip_data)) { $json['error']['ip'] = sprintf($this->language->get('error_ip'), $this->request->server['REMOTE_ADDR']); } */ В файле catalog\controller\startup\session.php код $query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "' AND ai.ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'"); заменить на $query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "'"); После этих изменений при работе с API ваш IP проверяться не будет
  6. Если задача стояла разрешить доступ к API с любого ip-адреса, нужно было в контроллере \catalog\controller\api\login.php просто закомментировать следующий код: /* $ip_data = array(); $results = $this->model_account_api->getApiIps($api_info['api_id']); foreach ($results as $result) { $ip_data[] = trim($result['ip']); } if (!in_array($this->request->server['REMOTE_ADDR'], $ip_data)) { $json['error']['ip'] = sprintf($this->language->get('error_ip'), $this->request->server['REMOTE_ADDR']); } */
  7. Здравствуйте! Ситуация следующая: в магазине установлена валюта по умолчанию грн., но она рассчитывается по кусу от главной валюты USD. То есть, все цены в БД залиты в долларах, а в магазине выводятся в грн. Собственно, проблема: если в поле ввода суммы подарочного сертификата вбить, к примеру, 100, то в корзину попадает сертификат на сумму 100 * курс грн., выставленный в админке. Какие изменения и в каком файле нужно сделать чтобы введенное значение считалось как грн., а не как usd?

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.