Ich habe nun eine knappe Stunde gesucht und gelesen und bin trotzdem nicht wirklich schlauer, da ich mit den Erläuterungen zum "overload" und den "klassen" etc. nicht so recht was anfangen kann... Ich habe die beiden Versandmodule includes/modules/shipping/dpd.php und includes/modules/shipping/dp.php modifiziert, derzeit noch im Original-Verzeichnis. Die Modifikation klappt wie gewünscht. Aber: Wohin muss ich diese Module nun hinpacken, damit das Updatesicher wird? Für den Halblaien erklärt wäre schön... Die Links auf den Developerbereich haben mich nicht wirklich weiter gebracht.... Beide PHP Dateien habe ich im Originalverzeichnis vorher mit neuem Namen gesichert. Ich würde also die alten Originaldateien wieder zurückbenennen und meine modifizierten Dateien kommen wo genau hin? GXUserComponents/overloads evtl.? mit welcher Verzeichnisstruktur? GXUserComponents/modules evtl.? mit welcher Verzeichnisstruktur?
Die kann man nciht Updatesicher ändern. da kannst Du nur kopieren und mit anderem Namen neu anlegen. Nachtrag: An den Dateien hat sich in der Vergangenheit nicht so viel geändert - da könnte man auch die originale ändern - muss dann aber aufpassen, ob die Dateien beim Update bei sind
Oh, schade... Echt? Ich dachte man kann die .php Dateien auch in irgendeiner Form überladen, so wie die .html Dateien etc.... Das heisst, nach jedem Update prüfen ob sich die Dateien geändert haben...
Ist es sinnvoll das mal so zu probieren? https://www.gambio.de/forum/threads/anpassung-der-sepa-php-updatesicher-machen.29933/#post-247339
@markus_wick Die meisten Klasse lassen sich überladen, so auch die Versand- und Zahlungsmodule. Das Konzept ist immer das gleiche. Erstelle einen Ordner mit dem Namen der Klasse die überladen werden soll im Ordner /overloads/ Beispiel für dpd ist /GXModules/meineFirma/meinModul/Shop/overloads/dpd/meineDpdAnpassung.inc.php mit folgendem Inhalt: PHP: class meineDpdAnpassung extends meineDpdAnpassung_parent {public function __construct() {parent::__construct();}} Du kannst darin denn jede der Methoden überladen und ändern.
Öh... Danke Till... Aber das ist mir erst mal auf den ersten Blick fast ein wenig zu kompliziert.... Siehe oben "da ich mit den Erläuterungen zum "overload" und den "klassen" etc. nicht so recht was anfangen kann..."... Mal sehen ob ich mich da durchackern kann... Falls es jemand einfacher erklären kann: Her damit
Danke Till, ich dachte immer, es gehen nur die Dateien in "classes". Wieder etwas gelernt. @markus_wick Poste doch mal nur Deine Änderung, dann kann man vielleicht eine Musterdatei erstellen
Die Änderungen sind "ein Klassiker" hier im Forum: Entfernen der Gewichtsangabe im Checkout (und ein Doppelpunkt war an falscher Stelle....): Hier erst mal der Originalcode der dp.php: Code: <?php /* -------------------------------------------------------------- dp.php 2018-05-28 Gambio GmbH http://www.gambio.de Copyright (c) 2018 Gambio GmbH Released under the GNU General Public License (Version 2) [http://www.gnu.org/licenses/gpl-2.0.html] -------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(dp.php,v 1.36 2003/03/09 02:14:35); www.oscommerce.com (c) 2003 nextcommerce (dp.php,v 1.12 2003/08/24); www.nextcommerce.org (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: dp.php 899 2005-04-29 02:40:57Z hhgag $) Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contributions: German Post (Deutsche Post WorldNet) Autor: Copyright (C) 2002 - 2003 TheMedia, Dipl.-Ing Thomas Plänkers | http://www.themedia.at & http://www.oscommerce.at Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ class dp_ORIGIN { var $code, $title, $description, $icon, $enabled, $num_dp; public function __construct() { global $order; $this->code = 'dp'; $this->title = defined('MODULE_SHIPPING_DP_TEXT_TITLE') ? MODULE_SHIPPING_DP_TEXT_TITLE : ''; $this->description = defined('MODULE_SHIPPING_DP_TEXT_DESCRIPTION') ? MODULE_SHIPPING_DP_TEXT_DESCRIPTION : ''; $this->sort_order = defined('MODULE_SHIPPING_DP_SORT_ORDER') ? MODULE_SHIPPING_DP_SORT_ORDER : '0'; $this->icon = ''; $this->tax_class = defined('MODULE_SHIPPING_DP_TAX_CLASS') ? MODULE_SHIPPING_DP_TAX_CLASS : '0'; $this->enabled = defined('MODULE_SHIPPING_DP_STATUS') && MODULE_SHIPPING_DP_STATUS === 'True'; if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_DP_ZONE > 0) ) { $check_flag = false; $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_DP_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = xtc_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; } } /** * CUSTOMIZE THIS SETTING FOR THE NUMBER OF ZONES NEEDED */ $this->num_dp = 6; } /** * class methods */ function quote($method = '') { global $order, $shipping_weight, $shipping_num_boxes; $dest_country = $order->delivery['country']['iso_code_2']; $dest_zone = 0; $error = false; for ($i=1; $i<=$this->num_dp; $i++) { $countries_table = constant('MODULE_SHIPPING_DP_COUNTRIES_' . $i); $country_zones = explode(',', $countries_table); if (in_array($dest_country, $country_zones)) { $dest_zone = $i; break; } } if ($dest_zone == 0) { $error = true; } else { $shipping = -1; $dp_cost = constant('MODULE_SHIPPING_DP_COST_' . $i); $dp_table = preg_split("/[:,]/" , $dp_cost); for ($i=0; $i<sizeof($dp_table); $i+=2) { if ($shipping_weight <= $dp_table[$i]) { $shipping = $dp_table[$i+1]; $shipping_method = MODULE_SHIPPING_DP_TEXT_WAY . ' ' . $dest_country . ': '; break; } } if ($shipping == -1) { $error = true; $shipping_cost = 0; $shipping_method = MODULE_SHIPPING_DP_UNDEFINED_RATE; } else { $shipping_cost = ($shipping + (double)MODULE_SHIPPING_DP_HANDLING); } } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_DP_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => $shipping_method . ' (' . $shipping_num_boxes . ' x ' . $shipping_weight . ' ' . MODULE_SHIPPING_DP_TEXT_UNITS .')', 'cost' => $shipping_cost * $shipping_num_boxes))); if ($this->tax_class > 0) { $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title); if ($error == true) $this->quotes['error'] = MODULE_SHIPPING_DP_UNDEFINED_RATE; return $this->quotes; } function check() { if (!isset($this->_check)) { $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_DP_STATUS'"); $this->_check = xtc_db_num_rows($check_query); } return $this->_check; } function install() { xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_DP_STATUS', 'True', '6', '0', 'gm_cfg_select_option(array(\'True\', \'False\'), ', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_HANDLING', '0', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DP_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DP_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_SORT_ORDER', '0', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_ALLOWED', '', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_1', 'AD,AT,BE,CZ,DK,FO,FI,FR,GR,GL,IE,IT,LI,LU,MC,NL,PL,PT,SM,SK,SE,CH,VA,GB,SP', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_1', '5:16.50,10:20.50,20:28.50', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_2', 'AL,AM,AZ,BY,BA,BG,HR,CY,GE,GI,HU,IS,KZ,LT,MK,MT,MD,NO,SI,UA,TR,YU,RU,RO,LV,EE', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_2', '5:25.00,10:35.00,20:45.00', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_3', 'DZ,BH,CA,EG,IR,IQ,IL,JO,KW,LB,LY,OM,SA,SY,US,AE,YE,MA,QA,TN,PM', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_3', '5:29.00,10:39.00,20:59.00', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_4', 'AF,AS,AO,AI,AG,AR,AW,AU,BS,BD,BB,BZ,BJ,BM,BT,BO,BW,BR,IO,BN,BF,BI,KH,CM,CV,KY,CF,TD,CL,CN,CC,CO,KM,CG,CR,CI,CU,DM,DO,EC,SV,ER,ET,FK,FJ,GF,PF,GA,GM,GH,GD,GP,GT,GN,GW,GY,HT,HN,HK,IN,ID,JM,JP,KE,KI,KG,KP,KR,LA,LS', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_4', '5:35.00,10:50.00,20:80.00', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_5', 'MO,MG,MW,MY,MV,ML,MQ,MR,MU,MX,MN,MS,MZ,MM,NA,NR,NP,AN,NC,NZ,NI,NE,NG,PK,PA,PG,PY,PE,PH,PN,RE,KN,LC,VC,SN,SC,SL,SO,LK,SR,SZ,ZA,SG,TG,TH,TZ,TT,TO,TM,TV,VN,WF,VE,UG,UZ,UY,ST,SH,SD,TW,GQ,LR,DJ,CG,RW,ZM,ZW', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_5', '5:35.00,10:50.00,20:80.00', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COUNTRIES_6', 'DE', '6', '0', now())"); xtc_db_query("insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DP_COST_6', '5:6.70,10:9.70,20:13.00', '6', '0', now())"); } function remove() { xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { $keys = array('MODULE_SHIPPING_DP_STATUS', 'MODULE_SHIPPING_DP_HANDLING','MODULE_SHIPPING_DP_ALLOWED', 'MODULE_SHIPPING_DP_TAX_CLASS', 'MODULE_SHIPPING_DP_ZONE', 'MODULE_SHIPPING_DP_SORT_ORDER'); for ($i = 1; $i <= $this->num_dp; $i ++) { $keys[count($keys)] = 'MODULE_SHIPPING_DP_COUNTRIES_' . $i; $keys[count($keys)] = 'MODULE_SHIPPING_DP_COST_' . $i; } return $keys; } } MainFactory::load_origin_class('dp'); Geändert hab ich in Zeile 94 nur die Position eines Doppelpunktes (Bei Post stand Versand nach DE:, bei DHL Versand nach: DE; Kleinkrams, ich weiss, bin halt pingelich...) von: Code: $shipping_method = MODULE_SHIPPING_DP_TEXT_WAY . ' ' . $dest_country . ': '; auf Code: $shipping_method = MODULE_SHIPPING_DP_TEXT_WAY . ': ' . $dest_country . ''; (Doppelpunkt vor $dest_country). Die wichtige Änderung ist in Zeile 111: Code: 'title' => $shipping_method . ' (' . $shipping_num_boxes . ' x ' . $shipping_weight . ' ' . MODULE_SHIPPING_DP_TEXT_UNITS .')', auf Code: 'title' => $shipping_method . '', so dass die Anzahl der Versandkartons und das Gewicht nicht angezeigt werden. In der dpd.php (die ich für DHL nutze) ist es eine ähnliche Änderung.