Vlad_OS 0 Опубликовано 9 февраля, 2008 Жалоба Share Опубликовано 9 февраля, 2008 Установил "Модуль расчёта доставки по тарифам почты России." Все вроде работает. Ну кроме того, что доставка этим способом доступна и по Москве, хотя Москва отсутствует во всех Зонах. Ну да ладно. С этим я смерился. Но тут стал делать копию этого модуля, чтобы сделать ещё и авиа-доставку. Всё сделал как в статье http://vamshop.ru/support/modules/smartfaq/faq.php?faqid=42 Что не раз уже делал ... Залил на сайт.. В админки он виден. Нажимаю Установить. Вылетает белый лист с DB_ERR_MSG. В файле mysql_db_error.log 09/02/2008 22:02:07 | 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | insert into zones_to_geo_zones (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values | /admin/modules.php?set=shipping&module=emsavia&action=install Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 февраля, 2008 Жалоба Share Опубликовано 10 февраля, 2008 А мокажи переделанный файл /includes/modules/shipping/emsavia.php Ссылка на сообщение Поделиться на другие сайты
Vlad_OS 0 Опубликовано 10 февраля, 2008 Автор Жалоба Share Опубликовано 10 февраля, 2008 А мокажи переделанный файл /includes/modules/shipping/emsavia.php <?php /* ----------------------------------------------------------------------------------------- $Id: emsavia.php,v 1 2005/10/04 08:41:38 $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright © 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: © 2000-2001 The Exchange Project (earlier name of osCommerce) © 2002-2003 osCommerce zones.php from which you can get more info on how it works and its limitations. www.oscommerce.com emspost12.zip by Aleg http://www.uralhobby.com/'>http://www.uralhobby.com/ Copyright © Aleg Studio http://www.uralhobby.com emspost_zones.zip by A. Berezin Copyright © A. Berezin ported to XTC by Dmitriy Godunov http://godunovstudio.ru Copyright © Dmitriy Godunov Studio http://godunovstudio.ru Released under the GNU General Public License ----------------------------------------------------------------------------------------- */ define('MODULE_SHIPPING_EMSAVIA_ZONES', 6); // Customize This Setting For The Number Of Zones Needed class emsavia { var $code, $title, $description, $enabled, $num_domestic_zones, $num_inter_zones, $num_zones; // class constructor function emsavia() { $this->code = 'emsavia'; $this->title = MODULE_SHIPPING_EMSAVIA_TEXT_TITLE; $this->description = MODULE_SHIPPING_EMSAVIA_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_EMSAVIA_SORT_ORDER; $this->icon = DIR_WS_ICONS . 'ruspoch.gif'; $this->tax_class = MODULE_SHIPPING_EMSAVIA_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_EMSAVIA_STATUS == 'True') ? true : false); } // class methods function quote($method = '') { global $order, $currencies, $shipping_weight, $shipping_num_boxes; //var_dump($shipping_weight);echo '<br>'; if (!vam_not_null($order->delivery['zone_id'])) $order->delivery['zone_id'] = vam_get_zone_by_postcode($order->delivery['postcode']); $zones_array = array(); for ($i=1; $i<=MODULE_SHIPPING_EMSAVIA_ZONES; $i++) { $zones_array[] = constant('MODULE_SHIPPING_EMSAVIA_ZONES_' . $i); $zones_cost[constant('MODULE_SHIPPING_EMSAVIA_ZONES_' . $i)] = constant('MODULE_SHIPPING_EMSAVIA_COST_' . $i); $zones_hand[constant('MODULE_SHIPPING_EMSAVIA_ZONES_' . $i)] = constant('MODULE_SHIPPING_EMSAVIA_HANDLING_' . $i); } $geo_zones_query = vam_db_query("select zone_country_id, zone_id, geo_zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id in ('" . implode("', '", $zones_array) . "') and zone_country_id=" . $order->delivery['country_id] . "' and (zone_id='" . $order->delivery['zone_id'] . "' or zone_id=0')"); $geo_zones = vam_db_fetch_array($geo_zones_query); if (vam_db_num_rows($geo_zones_query) != 1) { $this->quotes['error] = MODULE_SHIPPING_EMSAVIA_INVALID_ZONE; } else { $cost_table = split("[:,]" , str_replace(" ", '', $zones_cost[$geo_zones['geo_zone_id']])); $shipping = 0; for ($i = 0, $n = sizeof($cost_table); $i < $n; $i += 2) { if ($shipping_weight <= $cost_table[$i]) { $shipping = $cost_table[$i+1] * $shipping_num_boxes; # $shipping = $shipping/$currencies->get_value(MODULE_SHIPPING_EMSAVIA_CURRENCY); # $shipping = $shipping/$currencies->MODULE_SHIPPING_EMSAVIA_CURRENCY; $shipping_method = MODULE_SHIPPING_EMSAVIA_TEXT_WAY . ' ' . $shipping_weight . MODULE_SHIPPING_EMSAVIA_TEXT_UNITS . ($shipping_num_boxes > 1 ? ' x ' . $shipping_num_boxes : ""); break; } } if ($shipping == 0) { $this->quotes['error'] = MODULE_SHIPPING_EMSAVIA_UNDEFINED_RATE; } else { $shipping_cost = $shipping + $zones_hand[$geo_zones['geo_zone_id']]; } } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_EMSAVIA_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => $shipping_method, 'cost' => $shipping_cost))); if ($this->tax_class > 0) { $this->quotes['tax'] = vam_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } if (vam_not_null($this->icon)) $this->quotes['icon'] = vam_image($this->icon, $this->title); return $this->quotes; } function check() { if (!isset($this->_check)) { $check_query = vam_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_EMSAVIA_STATUS'"); $this->_check = vam_db_num_rows($check_query); } return $this->_check; } function install() { vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_EMSAVIA_STATUS', 'True', '6', '0', 'vam_cfg_select_option(array(\'True\', \'False\'), ', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_EMSAVIA_ALLOWED', '', '6', '0', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_EMSAVIA_TAX_CLASS', '0', '6', '0', 'vam_get_tax_class_title', 'vam_cfg_pull_down_tax_classes(', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_EMSAVIA_SORT_ORDER', '31', '6', '0', now())"); # vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_EMSAVIA_CURRENCY', '" . DEFAULT_CURRENCY . "', '6', '0', 'vam_cfg_pull_down_currencies(', now())"); // http://www.russianpost.ru/resp_engine.asp?Path=RU/Home/EMS#m1 // внутренняя тарифная зона 0: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 0 ', 'Зона 0 ', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[1] = 'Зона 0 '; $ems_zones[1] = $geo_zone_id; $ems_hands[1] = 0; $ems_costs[1] = '100:450, 500:480, 1000:510, 1500:540, 2000:570, 3000:630, 4000:690, 5000:750, 6000:810, 7000:870, 8000:930, 9000:990, 10000:1050, 11000:1110, 12000:1170, 13000:1230, 14000:1290, 15000:1350, 16000:1410, 17000:1470, 18000:1530, 19000:1590, 20000:1650'; // внутренняя тарифная зона 1: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 1', 'Зона 1', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[2] = 'Зона 1'; $ems_zones[2] = $geo_zone_id; $ems_hands[2] = 0; $ems_costs[2] = '100:490, 500:530, 1000:570, 1500:610, 2000:650, 3000:730, 4000:810, 5000:890, 6000:970, 7000:1050, 8000:1130, 9000:1210, 10000:1290, 11000:1370, 12000:1450, 13000:1530, 14000:1610, 15000:1690, 16000:1770, 17000:1850, 18000:1930, 19000:2010, 20000:2090'; // внутренняя тарифная зона 2: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 2', 'Зона 2', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[3] = 'Зона 2'; $ems_zones[3] = $geo_zone_id; $ems_hands[3] = 0; $ems_costs[3] = '100:530, 500:580, 1000:630, 1500:680, 2000:730, 3000:830, 4000:930, 5000:1030, 6000:1130, 7000:1230, 8000:1330, 9000:1430, 10000:1540, 11000:1630, 12000:1730, 13000:1830, 14000:1930, 15000:2030, 16000:2130, 17000:2230, 18000:2330, 19000:2430, 20000:2530'; // внутренняя тарифная зона 3: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 3', 'Зона 3', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[4] = 'Зона 3'; $ems_zones[4] = $geo_zone_id; $ems_hands[4] = 0; $ems_costs[4] = '100:570, 500:630, 1000:690, 1500:750, 2000:810, 3000:930, 4000:1050, 5000:1170, 6000:1290, 7000:1410, 8000:1530, 9000:1650, 10000:1770, 11000:1890, 12000:2010, 13000:2130, 14000:2250, 15000:2370, 16000:2490, 17000:2610, 18000:2730, 19000:2850, 20000:2970'; // внутренняя тарифная зона 4: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 4', 'Зона 4', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[5] = 'Зона 4'; $ems_zones[5] = $geo_zone_id; $ems_hands[5] = 0; $ems_costs[5] = '100:630, 500:700, 1000:770, 1500:840, 2000:910, 3000:1050, 4000:1190, 5000:1330, 6000:1470, 7000:1610, 8000:1750, 9000:1890, 10000:2030, 11000:2170, 12000:2310, 13000:2450, 14000:2590, 15000:2730, 16000:2870, 17000:3010, 18000:3150, 19000:3290, 20000:3430'; // внутренняя тарифная зона 5: vam_db_query("insert into " . TABLE_GEO_ZONES . " (geo_zone_id, geo_zone_name, geo_zone_description, last_modified, date_added) values ('', 'Зона 5', 'Зона 5', NULL, NOW())"); $geo_zone_id = vam_db_insert_id(); vam_db_query("insert into " . TABLE_ZONES_TO_GEO_ZONES . " (association_id, zone_country_id, zone_id, geo_zone_id, date_added) values"); $ems_desc[6] = 'Зона 5'; $ems_zones[6] = $geo_zone_id; $ems_hands[6] = 0; $ems_costs[6] = '100:1115, 500:1255, 1000:1530, 1500:1755, 2000:1950, 3000:2145, 4000:2335, 5000:2525, 6000:2715, 7000:2905, 8000:3095, 9000:3285, 10000:3475, 11000:3665, 12000:3855, 13000:4045, 14000:4235, 15000:4425, 16000:4615, 17000:4805, 18000:4995, 19000:5185, 20000:5375'; for ($i = 1; $i <= MODULE_SHIPPING_EMSAVIA_ZONES; $i++) { vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_EMSAVIA_ZONES_" . $i ."', '" . $ems_zones[$i] . "', '6', '0', 'vam_cfg_pull_down_zone_classes(', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_EMSAVIA_COST_" . $i ."', '" . $ems_costs[$i] ." ', '6', '0', 'vam_cfg_textarea_in(', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_EMSAVIA_HANDLING_" . $i."', '". $ems_hands[$i] ." ', '6', '0', now())"); } } function remove() { for ($i=1; $i<=MODULE_SHIPPING_EMSAVIA_ZONES; $i++) { vam_db_query("delete from " . TABLE_GEO_ZONES . " where geo_zone_id=" . constant('MODULE_SHIPPING_EMSAVIA_ZONES_' . $i) . "'"); vam_db_query("delete from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id='" . constant('MODULE_SHIPPING_EMSAVIA_ZONES_' . $i) . "'"); } vam_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { $keys = array('MODULE_SHIPPING_EMSAVIA_STATUS', 'MODULE_SHIPPING_EMSAVIA_ALLOWED', 'MODULE_SHIPPING_EMSAVIA_TAX_CLASS', 'MODULE_SHIPPING_EMSAVIA_SORT_ORDER'/*, 'MODULE_SHIPPING_EMSAVIA_CURRENCY'*/); for ($i=1; $i<=MODULE_SHIPPING_EMSAVIA_ZONES; $i++) { $keys[] = 'MODULE_SHIPPING_EMSAVIA_ZONES_' . $i; $keys[] = 'MODULE_SHIPPING_EMSAVIA_COST_' . $i; $keys[] = 'MODULE_SHIPPING_EMSAVIA_HANDLING_' . $i; } return $keys; } } /*if (!function_exists('vam_cfg_pull_down_currencies')){ function vam_cfg_pull_down_currencies($currencies_id, $key = '') { $name = (($key) ? 'configuration[' . $key . ]' : 'configuration_value'); $currencies_query = vam_db_query("select code from " . TABLE_CURRENCIES); $currencies_array = array(); while ($currencies = vam_db_fetch_array($currencies_query)) { $currencies_array[] = array('id' => $currencies['code'], 'text' => $currencies['code']); } return vam_draw_pull_down_menu($name, $currencies_array, $currencies_id); } } */ if (!function_exists('vam_cfg_textarea_in')){ function vam_cfg_textarea_in($text, $key = '') { $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); return vam_draw_textarea_field($name, false, 35, 5, $text); } } ?> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 февраля, 2008 Жалоба Share Опубликовано 10 февраля, 2008 А можешь именно прикрепил файл, так можно просто не так что-то сохранить. и вопрос, а ты когда файл правил точно его в utf8 сохранял? Ссылка на сообщение Поделиться на другие сайты
Vlad_OS 0 Опубликовано 10 февраля, 2008 Автор Жалоба Share Опубликовано 10 февраля, 2008 за utf8 слежу всегда... emsavia.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 февраля, 2008 Жалоба Share Опубликовано 10 февраля, 2008 Вот попробуй файл /includes/modules/shipping/emsavia.php Сделал его из emspostshipping или как там он. emsavia.zip Ссылка на сообщение Поделиться на другие сайты
Vlad_OS 0 Опубликовано 10 февраля, 2008 Автор Жалоба Share Опубликовано 10 февраля, 2008 Выглядит вот так :( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 февраля, 2008 Жалоба Share Опубликовано 11 февраля, 2008 А у меня нормально выглядит. Вот смотри. Ничего не делал, просто сначала установил обычный ems, т.е. переписал файлы, загрузил три sql файл, затем emsavia в админке установил. Ссылка на сообщение Поделиться на другие сайты
Vlad_OS 0 Опубликовано 11 февраля, 2008 Автор Жалоба Share Опубликовано 11 февраля, 2008 Трабл решён. Просто после установки первого модуля, переименовал зоны, как мне удобно и как нужно. Поэтому и вылезала эта фигня. Снова установив зоны, какие были изначально после установки - всё заработало. Спасибо большое за помощь. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 февраля, 2008 Жалоба Share Опубликовано 12 февраля, 2008 Хорошо, что всё хорошо кончается :) Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения