Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

kachulin

Новичок
  
  • Публикаций

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

  • Посещение

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

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

Достижения kachulin

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Последние медали

4

Репутация

  1. На nginx все норм, сервер отдает ответ 200 Правда .htaccess у меня не работает, прописал правило в панели управления location = /robots.txt { rewrite ^(.*)$ /robots.php; } Еще пришлось заменить $server = $_SERVER['SERVER_NAME']; На $server = $_SERVER['HTTP_HOST']; Т.к. $_SERVER['SERVER_NAME'] отдаёт какое-то неприменимое имя технического домена
  2. Надо было выложить код срочно, чтобы люди посмотрели. ПЭК - транспортная компания грузоперевозок. Расшифровка "Первая Экспедиционная Компания". Делаю для себя модуль расчета стоимости доставки в зависимости от города-отправителя, города-получателя, а также габаритов и веса груза. Позже в установочный архив закатаю, выложу. Может кому пригодится.
  3. class ModelExtensionShippingPek extends Model { function getQuote($address) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('shipping_pek_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')"); if (!$this->config->get('shipping_pek_geo_zone_id')) { $status = true; } elseif ($query->num_rows) { $status = true; } else{ $status = false; } $city = mb_strtolower($this->session->data['payment_address']['city']); $citySearch = $this->searchCity($city); if ($citySearch) { $cityCode = array_keys($citySearch)[0]; $pekData = $this->getPekCost($cityCode); $pekCost = $pekData['auto'][2]; $this->config->set('shipping_pek_cost', $pekCost); } else{ $status = false; } $method_data = array(); if ($status) { $quote_data = array(); $products = $this->cart->getProducts(); $product_info = $products[0]; $length = number_format($product_info['length'], 0); $width = number_format($product_info['width'], 0); $height = number_format($product_info['height'], 0); $weight = number_format($product_info['weight'], 0); $quote_data['pek'] = array( 'code' => 'pek.pek', 'title' => "ПЭК", 'cost' => $this->config->get('shipping_pek_cost'), 'tax_class_id' => $this->config->get('shipping_pek_tax_class_id'), 'text' => $this->currency->format($this->tax->calculate($this->config->get('shipping_pek_cost'), $this->config->get('shipping_pek_tax_class_id'), $this->config->get('config_tax')), $this->session->data['currency']) ); $method_data = array( 'code' => 'pek', 'title' => 'ПЭК', 'quote' => $quote_data, 'sort_order' => $this->config->get('shipping_pek_sort_order'), 'error' => false ); } return $method_data; } function getPekCost($town_id){ // Публичный АПИ pecom $ch = curl_init(); $url = 'http://calc.pecom.ru/bitrix/components/pecom/calc/ajax.php'; $arr = [ 'places' => [ [ 0, // Ширина 0, // Длина 0, // Высота 0.1, // Объем 1, // Вес 1, // Признак негабаритности груза 1 // Признак ЖУ ] ], 'take' => [ 'town' => -477, //Код города отправителя (Пермь) // 'tent' => 0, // 'gidro' => 0, // 'manip' => 0, // 'speed' => 0, // 'moscow' => 0 ], 'deliver' => [ 'town' => $town_id, // Код города получателя // 'tent' => 0, // 'gidro' => 0, // 'manip' => 0, // 'speed' => 0, // 'moscow' => 0 ], // 'plombir' => 0, 'strah' => 3000, // 'ashan' => 0, // 'night' => 0, // 'pal' => 0, // 'pallets' => 0 ]; $params = http_build_query($arr); // echo $params; curl_setopt_array($ch, array( CURLOPT_URL => $url.'?'.$params, CURLOPT_RETURNTRANSFER => true )); $out = curl_exec($ch); // print_r($out); $res = json_decode($out, true); return $res; } public function getCitiesList(){ $url = 'https://pecom.ru/ru/calc/towns.php'; $ch=curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE); $cities=curl_exec($ch); if($cities!=''){ $cities= json_decode($cities,true); } return $cities; } public function searchCity($q_string,$limit=1){ $cities=$this->getCitiesList(); $out=array(); if(mb_strlen($q_string)>2){ $l=mb_strlen($q_string)/2; foreach ($cities as $region){ if(is_array($region)){ foreach ($region as $key=>$city){ if((mb_stripos(mb_strtolower($city,'utf-8'),mb_strtolower($q_string,'utf-8'))!==FALSE) && (mb_strlen($city,'utf-8') == mb_strlen($q_string,'utf-8'))){ $c['label']=$city; $c['value']= $city; $c['id']=$key; $out[$c['id']]=$c; if(count($out)>=$limit){ //$out=array_reverse($out); return $out; } } } } } $out=array_reverse($out); return $out; } } }
  4. Переделал для oc3. На русской сборке 3.0.2.0 работает. Запоминает последнюю открытую директорию, добавлены хлебные крошки. last_directory_oc3.ocmod.zip
×
×
  • Создать...

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

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