Перейти к содержанию

DEDMEDVED

Пользователи
  • Публикаций

    64
  • Зарегистрирован

  • Посещение

Репутация

3 Обычный

Информация о DEDMEDVED

  • Звание
    Пользователь

Контакты

  • Сайт
    http://mnogochernil.ru

Информация

  • Пол
    Мужчина
  • Город:
    Москва

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Недавно в логах заметил целенаправленный подбор ошибочных запросов к админке. Один из них выглядит так: сайт.ru/?_SERVER[DOCUMENT_ROOT]=%20http://www.google.com/humans.txt? После этого сайт конечно загружается, но вверху отображается ошибка Notice: Undefined variable: _SERVER in ***/public_html/system/startup.php on line 67 if (!isset($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1); // вот это 67 строка if (isset($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; } } Нет идеи, как обработать эту ошибку? стоит ocsotre 1.5.3.1
  2. Да, это гораздо круче! Спасибо! А как быть с другой конструкцией?
  3. Есть такие две конструкции, которые повторяются в getform() в admin\controller\sale\order.php 1-ая для разных значений post -> в data (пример от customer_id: if (isset($this->request->post['customer_id'])) { $this->data['customer_id'] = $this->request->post['customer_id']; } elseif (!empty($order_info)) { $this->data['customer_id'] = $order_info['customer_id']; } else { $this->data['customer_id'] = ''; } 2-ая для разных значений get -> url (пример для filter_order_id: if (isset($this->request->get['filter_order_id'])) { $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; } 1-ую конструкцию я вынес в функцию (тут много доп. фильтров, которые я сам дописывал). Я заменяю в шаблонном куске кода имя фильтра функцией str_replace, а затем выполняю получившийся код функцией eval. Кстати надо переписать это все под foreach и перебирать массив фильтров. public function FltrToUrl() { $url = ''; $UrlOn = "\$url.=(isset(\$this->request->get['n_m']) ? '&n_m=' . \$this->request->get['n_m'] : '');"; eval(str_replace('n_m', 'filter_order_id', $UrlOn)); eval(str_replace('n_m', 'filter_customer', $UrlOn)); eval(str_replace('n_m', 'filter_order_status_id', $UrlOn)); eval(str_replace('n_m', 'filter_order_statuses', $UrlOn)); eval(str_replace('n_m', 'filter_total', $UrlOn)); eval(str_replace('n_m', 'filter_total_start', $UrlOn)); eval(str_replace('n_m', 'filter_total_end', $UrlOn)); eval(str_replace('n_m', 'comment_true', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true_start', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true_end', $UrlOn)); eval(str_replace('n_m', 'date_spis', $UrlOn)); eval(str_replace('n_m', 'date_spis_start', $UrlOn)); eval(str_replace('n_m', 'date_spis_end', $UrlOn)); eval(str_replace('n_m', 'filter_gotov', $UrlOn)); eval(str_replace('n_m', 'filter_patruled', $UrlOn)); eval(str_replace('n_m', 'filter_date_added', $UrlOn)); eval(str_replace('n_m', 'filter_date_added_start', $UrlOn)); eval(str_replace('n_m', 'filter_date_added_end', $UrlOn)); eval(str_replace('n_m', 'filter_shipping_code', $UrlOn)); eval(str_replace('n_m', 'filter_pay_upd', $UrlOn)); eval(str_replace('n_m', 'filter_stock', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified_start', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified_end', $UrlOn)); eval(str_replace('n_m', 'filter_act', $UrlOn)); eval(str_replace('n_m', 'sort', $UrlOn)); eval(str_replace('n_m', 'order', $UrlOn)); eval(str_replace('n_m', 'page', $UrlOn)); return $url; } Соответственно, теперь в getform() и getlist(), например, я пишу просто $url = $this->FltrToUrl(); Не думаю, что это правильно (так писать функции через eval и str_replace), но теперь при добавлении нового фильтра, я правлю для url строку в одном месте, а не в 10-ти (дело в том, что у меня несколько новых функций и списков, где также наследуются эти параметры). Хотелось бы что-то подобное для 1-ой конструкции, а лучше что-то более правильное. И еще я не знаю, как это все вынести в отдельную функцию (так как не знаю, как оперировать переменными типа $this->data['customer_id'] в другой функции - может все просто?). Пока я сделал вот так, что тоже упростило редактуру кода и уменьшило количество строк: $PostToData = "if (isset(\$this->request->post['n9m'])) {\$this->data['n9m']=\$this->request->post['n9m'];} elseif (!empty(\$order_info)) {\$this->data['n9m'] = \$order_info['n9m'];} else {\$this->data['zz'] = 'zz';}"; //ниже stock - это имя фильтра-переменной, а 1 - это значение по умолчанию, если не задано. в большинстве случаев это будет пустое значение, но так не везде eval(str_replace(Array('n9m', 'zz'), Array('stock', '1'), $PostToData)); //и далее по аналогии строки перечисляют все фильтры, но приходится этот код держать внутри getform(), а хотелось бы отдельную функцию eval(str_replace(Array('n9m', 'zz'), Array('customer_id', ''), $PostToData)); Спасибо за ответы! работаю на ocstore 1.5.3
  4. Вот по-моему, с каких то пор что-то изменилось в API карт. У меня расчет работает, только если я уменьшаю количество точек via (на МКАДЕ) до двух. Если больше двух - перестает строить маршрут. Если взять грамотные точки, то строит и считает все правильно.
  5. DEDMEDVED

    [Поддержка] QIWI (для opencart 1.5.x)

    Так оно и работает, да. Наверное, правильнее переделать проверку суммы на .com , но работает и так. Кстати, недавно получил письмо, что QIWI вот-вот закроет вход в личный кабинет ishop.qiwi.ru (т.е. можно будет только через .com). Возможно, тогда и проверка перестанет работать через .ru.
  6. DEDMEDVED

    [Поддержка] QIWI (для opencart 1.5.x)

    Ну я не делал в админке интерефейс, я просто вручную прописал Самое главное- сделать первое изменение. Правка 2 и 3 нужна чтобы изменить урл переадресации при создании счета. Но это можно не делать, они и так корректно работает. 1. В коде catalog -> controller -> payment -> qiwi.php изменил в проверке суммы заказа код. сейчас это место у меня так выглядит: // проверка на сумму заказа include(DIR_CONFIG .'ishopserverwsservice.php'); define('TRACE', 1); $service = new IShopServerWSService(DIR_CONFIG .'ishopserverws.wsdl', array('location' => 'http://ishop.qiwi.ru/services/ishop', 'trace' => TRACE)); $params = new checkBill(); $params->login = 'API ID'; //прописываете API ID (получите его на ishop.qiwi.com), в старых аккаунтах он такой же как ID магазина $params->password = 'API пароль'; //прописываете API пароль (получите его на ishop.qiwi.com), в старых аккаунтах он такой же как пароль на вход в аккаунт $params->txn = $order_id; 2. там же надо переделать обработку номера телефона. дело в том, что на новом урле qiwi принимаются только 10-значные телефоны $this->data['phone'] = preg_replace("/\D+/", "", $order_info['telephone']); if (strlen ($this->data['phone']) > 11) $this->data['phone'] = substr($this->data['phone'], -11); if (strlen ($this->data['phone']) == 10) $this->data['phone'] = '7' . $this->data['phone']; if (substr($this->data['phone'], 0, 1) !== '7') $this->data['phone'] = '7' . substr($this->data['phone'], -10); 3. В catalog\view\theme\default\template\payment\qiwi.tpl надо изменить адрес и кое-что в атрибутах отправки формы делаем так <form action="https://w.qiwi.com/order/external/create.action" method="get" id="payments" > <input type="hidden" name="from" value="<?php echo $from; ?>" /> <input type="hidden" name="summ" value="<?php echo $summ; ?>" /> <input type="hidden" name="com" value="<?php echo $com; ?>" /> <input type="hidden" name="txn_id" value="<?php echo $txn_id; ?>" /> <input type="hidden" name="lifetime" value="<?php echo $lifetime; ?>" /> <input type="hidden" name="currency" value="RUB" /> <input type="hidden" name="successUrl" value="урлприуспешнойоплате" /> <div style="text-align: right;"><?php echo $markup; ?></div><br> <?php if ($summ < 15000) { ?> <div style="text-align: right;"><?php echo $sub_text_info_phone; ?> + <input type="text" name="to" value="<?php echo $phone; ?>" size="11" maxlength="11"></div><br> <?php } else { ?> <center><?php echo $qiwi_limit; ?></center> <?php } ?> </form>
  7. DEDMEDVED

    [Поддержка] QIWI (для opencart 1.5.x)

    Проблема на самом деле легко решается. В новых аккаунтах QIWI API ID и идентификатор магазина - это разные цифры. Так вот если в checkBill() присваивать переменной $params->login значение не идентификатора магазина, а API ID, то все работает. И еще получил в QIWI рекомендации по изменению URL по созданию счетов. Надо вот так https://w.qiwi.com/order/external/create.action?from=236956&txn_id=138&summ=140&to=79255382400&currency=RUB&successUrl=страницапереадресациивслучаеуспеха Короче у меня в допиленном виде этот модуль работает идеально. И всем рекомендую не пользоваться ishop.qiwi.ru, юзайте ishop.qiwi.com
  8. Вопрос по модулю. Он рассчитывает расстояние по дорогам. А можно сделать так, чтобы рассчитывал линейное расстояние от МКАД?
  9. При уменьшении ширины окна исчезают в определенном порядке блоки в шапке. Как изменить приоритет блоков в этом исчезновении? Сейчас первым исчезает header3. Хочу чтобы первым исчезал header2
  10. При нажатии на кнопку Добавить в списке категорий в админке: Fatal error: Call to undefined method ModelCatalogCategory::getAllCategories() in .../admin/controller/catalog/category.php аналогично при редактировании.
  11. А где можно скачать самую последнюю неофициальную версию? Можно прямую ссылку, на github не могу разобраться. Спасибо.
  12. DEDMEDVED

    [Поддержка] RBK Money для OcStore 1.5.x

    Ох столько всего переписано в коде... Не подскажите, какие изменения нужно внести и куда?
  13. DEDMEDVED

    [Поддержка] RBK Money для OcStore 1.5.x

    И кстати эта кнопка (последняя кнопка в заказе при выборе вида оплаты "RBKMoney") стабильно не работает в IE (с остальными браузерами все ок). Смирился, найти проблему не могу (вот тут на любом товаре), благо немногие сидят на Explorer-e. Может кто поможет?
  14. Собираюсь купить. Одно смущает - если убрать выбор валюты совсем, как это будет выглядеть? Что заполнит тот квадратик или что туда можно впихнуть? Спасибо.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.