/** * Костыль, на сервере города начинаются с маленькой буквы * * @param $cityData * * @return $cityData */ public function getCityNameByDisplay(&$cityData) { //print_r($cityData); $cityData['name'] = Utils::firstWordLiterUppercase($cityData['name']); //Собирает строчку с названием города для отображения $displayCityName = $cityData['type'] . '. ' . $cityData['name']; if (strpos($cityData['region'], $cityData['name']) === false) { $displayCityName .= ', ' . $cityData['region']; } $cityData['display_name'] = $displayCityName; return $cityData; }
/** * Вызывается для использования api методов сервера ddelivery.ru * @param array $request */ public function renderPlugin($request) { if (isset($request['action'])) { switch ($request['action']) { case 'getCityIp': $cityList = $this->sdk->getCityByIp($_SERVER['REMOTE_ADDR']); if (count($cityList->response)) { $cityList->response['city'] = $cityList->response['type'] . ' ' . Utils::firstWordLiterUppercase($cityList->response['city']); echo json_encode($cityList->response); } else { echo json_encode(array()); } return; case 'searchCity2': if (isset($request['name']) && mb_strlen($request['name']) >= 3) { $cityList = $this->sdk->getAutoCompleteCity($request['name']); $cityList = $cityList->response; $resultCity = array(); if (count($cityList)) { foreach ($cityList as $key => $city) { $resultCity[$key]['label'] = $city['type'] . '. ' . Utils::firstWordLiterUppercase($city['name']); $resultCity[$key]['name'] = $city['type'] . '. ' . Utils::firstWordLiterUppercase($city['name']); if (strpos($cityList[$key]['region'], $cityList[$key]['name']) === false) { $resultCity[$key]['label'] .= ', ' . $cityList[$key]['region']; } $resultCity[$key]['id'] = $city['_id']; } } echo json_encode($resultCity); } return; case 'getCompanies': $dd_to = $request['ddcalc_to']; $dd_payment = $request['ddcalc_payment']; $dd_weight = $request['ddcalc_weight']; $dd_width = $request['ddcalc_width']; $dd_height = $request['ddcalc_height']; $dd_length = $request['ddcalc_length']; $pickup = $this->sdk->calculatorPickupForCity($dd_to, $dd_width, $dd_height, $dd_length, $dd_weight, $dd_payment); $courier = $this->sdk->calculatorCourier($dd_to, $dd_width, $dd_height, $dd_length, $dd_weight, $dd_payment); echo json_encode(array('pickup' => $pickup->response, 'courier' => $courier->response)); return; } } }