Hallo,
wir haben vor einigen Jahren ein kleines Modul zur Vorab-Berechnung der Versandkosten programmieren lassen - leider ist der damalige Programmierer nicht mehr verfügbar aber vielleicht kann mir jmd. helfen was ich ändern muss damit ich es jetzt in der 4.9.5. unter Erweiterungen > Module aktivieren kann?
Das Modul besteht aus nur einer Seite und war bisher in der Oxid 4.4.6 über
folgenden Eintrag unter Module verknüpft:
oxviewconfig => weightcalc/weightcalc
Das ganze Skript sieht wiefolgt aus:
<?php
class weightcalc extends oxViewConfig {
function weightcalc($params='') {
ob_start();
//create an array for the prices
$weights = array();
//parse the weights into a nice format
$params = trim($params);
$params = explode("
",$params);
foreach ($params as $line) {
$tmp = explode("|",$line);
if (count($tmp)==2) {
$weight = floatVal($tmp[0]);
$price = floatVal($tmp[1]);
$weights[$weight]=$price;
}
}
//parse weight
if (array_key_exists('weightcalc_kg',$_GET)) {
$kg = $_GET['weightcalc_kg'];
$kg = str_replace(',','.',$kg);
$kg = floatVal($kg);
} else {
$kg = -1;
}
//create the form
$oLang = oxLang::getInstance();
$showval = '';
if ($kg>0) {
$showval = str_replace('.',',',$kg);
}
echo '
<form action="?" method="get" class="weightcalc-form">
<p><span>'.$oLang->translateString('WEIGHTCALC_TOTALWEIGHT').'</span><input class="weightcalc-weight" type="text" name="weightcalc_kg" value="'.$showval.'" /> kg
<input type="submit" class="weightcalc-send" value="'.$oLang->translateString('WEIGHTCALC_SEND').'" />
</p>
</form>
';
//calculate weights
if ($kg>0) {
$price = '';
$final = false;
foreach ($weights as $k=>$v) {
if ($price=='') {
$price = $v;
}
if ($kg>$k) {
//echo $kg.' greater than '.$k.', setting '.$k.'kg/'.$v.' as price<br>';
$price = $v;
} else if ($kg<=$k) {
if (!$final) {
//echo $kg.' less than/eq '.$k.', setting '.$k.'kg/'.$v.' as final price<br>';
$price = $v;
$final = true;
}
}
}
echo '<p class="weightcalc-confirmtext">'.$oLang->translateString('WEIGHTCALC_CONFIRM').' <span class="weightcalc-price">'.number_format($price, 2, ',', '.').' € inkl. MwSt. und Verpackung</span></p>';
} else {
}
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
}
?>
Bin selbst auf diese Anleitung gestoßen:
http://www.ackis-oxid.de/2012/alte-module-in-neues-oxid-portieren/
und habe mir metadata.php erstellt welche wiefolgt aussieht:
<?php
$aModule = array(
'id' => 'weightcalc',
'title' => 'Versandkostenrechner',
'description' => 'Versandkostenrechner',
'version' => '1.2',
'author' => 'Dave',
'extend' => array(
'oxviewconfig' => 'weightcalc/weightcalc',
),
);
?>
Diese scheint aber nicht zu stimmen, denn ich kann das Skript dann zwar aktivieren aber es schiesst mir den ganzen Shop ab…