Vetralet 1 Опубликовано 6 сентября, 2013 Жалоба Share Опубликовано 6 сентября, 2013 Здравствуйте! Мне нужно было клонировать модуль бесплатной доставки (freeamount). Переделывал модуль (deliv) Сделал все по инструкции из faq. Получилось с ошибками - невозможно ввести значение мин. суммы для бесплатной доставки (нет даже надписей над соответствующем полем в режиме редактирования). Т.е. значение ввести можно, но оно не сохраняется. Несколько раз аккуратно и внимательно перезаписывал все данные из freeamount, менял все что нужно, но увы... Другие модули переделал - все ок. Подскажите. пожалуйста, где ошибка. код из /lang/russian/modules/shipping/flat.php: <?php /* ----------------------------------------------------------------------------------------- $Id: deliv.php 1288 2007/02/07 13:24:46 VaM $ VaM Shop - open source ecommerce solution http://vamshop.ru http://vamshop.com Copyright © 2007 VaM Shop ----------------------------------------------------------------------------------------- based on: © 2000-2001 The Exchange Project (earlier name of osCommerce) © 2002-2003 osCommerce( deliv.php,v 1.01 2002/01/24 03:25:00); www.oscommerce.com © 2003 nextcommerce (deliv.php,v 1.4 2003/08/13); www.nextcommerce.org © 2004 xt:Commerce (deliv.php,v 1.4 2003/08/13); xt-commerce.com Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contributions: delivv2-p1 Autor: dwk Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ define('MODULE_SHIPPING_DELIV_TEXT_TITLE', 'Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.)'); define('MODULE_SHIPPING_DELIV_TEXT_DESCRIPTION', 'Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.)'); define('MODULE_SHIPPING_DELIV_TEXT_WAY', 'Бесплатная доставка для заказов свыше: %s'); define('MODULE_SHIPPING_DELIV_SORT_ORDER', 'Порядок сортировки'); define('MODULE_SHIPPING_DELIV_ALLOWED_TITLE' , 'Разрешённые страны'); define('MODULE_SHIPPING_DELIV_ALLOWED_DESC' , 'Укажите коды стран, для которых будет доступен данный модуль (например RU,DE (оставьте поле пустым, если хотите что б модуль был доступен покупателям из любых стран))'); define('MODULE_SHIPPING_DELIV_STATUS_TITLE' , 'Разрешить Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.)'); define('MODULE_SHIPPING_DELIV_STATUS_DESC' , 'Вы хотите разрешить модуль Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.)?'); define('MODULE_SHIPPING_DELIV_DISPLAY_TITLE' , 'Показывать уведомление о Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.)'); define('MODULE_SHIPPING_DELIV_DISPLAY_DESC' , 'Показывать текст уведомления о возможной бесплатной доставки заказа при достижении определённой суммы заказа?'); define('MODULE_SHIPPING_DELIV_AMOUNT_TITLE' , 'Минимальная сумма заказа'); define('MODULE_SHIPPING_DELIV_AMOUNT_DESC' , 'Минимальная сумма заказа для Бесплатная доставка по Мос. обл. (сумма заказа от 5000 руб.).'); define('MODULE_SHIPPING_DELIV_TAX_CLASS_TITLE' , 'Налог'); define('MODULE_SHIPPING_DELIV_TAX_CLASS_DESC' , 'Использовать налог.'); define('MODULE_SHIPPING_DELIV_ZONE_TITLE' , 'Зона'); define('MODULE_SHIPPING_DELIV_ZONE_DESC' , 'Если выбрана зона, то данный модуль доставки будет виден только покупателям из выбранной зоны.'); define('MODULE_SHIPPING_DELIV_SORT_ORDER_TITLE' , 'Порядок сортировки'); define('MODULE_SHIPPING_DELIV_SORT_ORDER_DESC' , 'Порядок сортировки модуля.'); ?>код из /includes/modules/shipping/flat.php:<?php /* ----------------------------------------------------------------------------------------- $Id: deliv.php 1306 2007-02-06 21:19:57 VaM $ VaM Shop - open source ecommerce solution http://vamshop.ru http://vamshop.com Copyright © 2007 VaM Shop ----------------------------------------------------------------------------------------- based on: © 2000-2001 The Exchange Project (earlier name of osCommerce) © 2002-2003 osCommerce(deliv.php,v 1.01 2002/01/24); www.oscommerce.com © 2003 nextcommerce (deliv.php,v 1.12 2003/08/24); www.nextcommerce.org © 2004 xt:Commerce (deliv.php,v 1.12 2003/08/24); xt-commerce.com Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ class deliv { var $code, $title, $description, $icon, $enabled; function deliv() { global $order; $this->code = 'deliv'; $this->title = MODULE_SHIPPING_DELIV_TEXT_TITLE; $this->description = MODULE_SHIPPING_DELIV_TEXT_DESCRIPTION; $this->icon =''; // change $this->icon = DIR_WS_ICONS . 'shipping_ups.gif'; to some freeshipping icon $this->tax_class = MODULE_SHIPPING_DELIV_TAX_CLASS; $this->sort_order = MODULE_SHIPPING_DELIV_SORT_ORDER; $this->enabled = ((MODULE_SHIPPING_DELIV_STATUS == 'True') ? true : false); if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_DELIV_ZONE > 0) ) { $check_flag = false; $check_query = vam_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_DELIV_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = vam_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function quote($method = '') { global $vamPrice; if (( $vamPrice->RemoveCurr($_SESSION['cart']->show_total()) < MODULE_SHIPPING_DELIV_AMOUNT ) && MODULE_SHIPPING_DELIV_DISPLAY == 'False') return; $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_DELIV_TEXT_TITLE); if ( $vamPrice->RemoveCurr($_SESSION['cart']->show_total()) < MODULE_SHIPPING_DELIV_AMOUNT ) $this->quotes['error'] = sprintf(MODULE_SHIPPING_DELIV_TEXT_WAY,$vamPrice->Format(MODULE_SHIPPING_DELIV_AMOUNT,true,0,true)); else $this->quotes['methods'] = array(array('id' => $this->code, 'title' => sprintf(MODULE_SHIPPING_DELIV_TEXT_WAY,$vamPrice->Format(MODULE_SHIPPING_DELIV_AMOUNT,true,0,true)), 'cost' => 0)); 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() { $check = vam_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_DELIV_STATUS'"); $check = vam_db_num_rows($check); return $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_DELIV_STATUS', 'True', '6', '7', '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_DELIV_ALLOWED', '', '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_DELIV_DISPLAY', 'True', '6', '7', '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_DELIV_AMOUNT', '50.00', '6', '8', 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_DELIV_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, use_function, set_function, date_added) values ('MODULE_SHIPPING_DELIV_ZONE', '0', '6', '0', 'vam_get_zone_class_title', 'vam_cfg_pull_down_zone_classes(', now())"); vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DELIV_SORT_ORDER', '0', '6', '4', now())"); } function remove() { vam_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_SHIPPING_DELIV_STATUS','MODULE_SHIPPING_DELIV_ALLOWED', 'MODULE_SHIPPING_DELIV_DISPLAY', 'MODULE_SHIPPING_DELIV_AMOUNT','MODULE_SHIPPING_DELIV_TAX_CLASS','MODULE_SHIPPING_DELIV_ZONE','MODULE_SHIPPING_DELIV_SORT_ORDER'); } } ?> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 сентября, 2013 Жалоба Share Опубликовано 6 сентября, 2013 А почему не используете какой-то из уже существующих модулей, что б не копаться в коде, просто переименовав его в /lang/russian/modules/shipping/ Ссылка на сообщение Поделиться на другие сайты
Vetralet 1 Опубликовано 6 сентября, 2013 Автор Жалоба Share Опубликовано 6 сентября, 2013 А почему не используете какой-то из уже существующих модулей, что б не копаться в коде, просто переименовав его в /lang/russian/modules/shipping/ Модулей с бесплатной доставкой только один, а мне нужно три. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 сентября, 2013 Жалоба Share Опубликовано 6 сентября, 2013 Судя по коду, всё выглядит правильно, может у Вас в базе какой-то мусор. Ради эксперимента, попробуйте в чистую версию VamShop переписать два своих новых deliv.php файла. Ссылка на сообщение Поделиться на другие сайты
Vetralet 1 Опубликовано 6 сентября, 2013 Автор Жалоба Share Опубликовано 6 сентября, 2013 Судя по коду, всё выглядит правильно, может у Вас в базе какой-то мусор. Ради эксперимента, попробуйте в чистую версию VamShop переписать два своих новых deliv.php файла. сделал клон freeamount из dp - все отлично. Так что теперь имею три нужных модуля. А с deliv"ом решил не заморачиваться, тогда. Спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 сентября, 2013 Жалоба Share Опубликовано 6 сентября, 2013 Понятно. Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения