Revision 2010 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php// $Id: weban_helper.php 2011 2017-02-04 23:30:38Z lars $if (!defined("CONTINUE_ON_ERROR")){define("CONTINUE_ON_ERROR", false);}if (!defined("CRON")){if (php_sapi_name() == "cli"){define("CRON", true);}else{define("CRON", false);}}if (!defined("EOL")){if (php_sapi_name() == "cli"){define("EOL", "\n");}else{define("EOL", "<br>");}}$GLOBALS['ci'] = &get_instance();$GLOBALS['order_db'] = $GLOBALS['ci']->load->database('order_db', TRUE);$GLOBALS['db_red'] = $GLOBALS['ci']->load->database('db_red', TRUE);$GLOBALS['ci']->load->model('artikel_model', 'artikel');$domain = "faltradxxs.de";$GLOBALS["Eigenschaften"] = getVersandEigenschaften($domain);$GLOBALS["web_rechte"] = getWebRechte($domain);isWeban();$GLOBALS["zahlsysteme"] = array("kreditkarte","paypal","sofortueberweisung","frei","finanzierung","billsafe","billsafe_hire","amazon","PayPalExpress","Ratenzahlung","PayPalPlus","paymill",);//Excellence Käuferschutz$GLOBALS["tsItems"] = array("TS080501_500_30_EUR" => array("max" => 500,"preis" => 0.82353,),"TS080501_1500_30_EUR" => array("max" => 1500,"preis" => 2.47059,),"TS080501_2500_30_EUR" => array("max" => 2500,"preis" => 4.11765,),"TS080501_5000_30_EUR" => array("max" => 5000,"preis" => 8.23530,),"TS080501_1000_30_EUR" => array("max" => 1000,"preis" => 16.47060,),"TS080501_20000_30_EUR" => array("max" => 20000,"preis" => 31.94120,),);$GLOBALS["tsMethods"] = array("paypal" => "PAYPAL","PayPalPlus" => "PAYPAL","billsafe" => "INVOICE","nachnahme" => "CASH_ON_DELIVERY","kreditkarte" => "CREDIT_CARD","selbstabholung" => "CASH_ON_PICKUP","sofortueberweisung" => "DIECT_E_BANKING","vorkasse" => "PREPAYMENT",);//Excellence Käuferschutz - ENDE/*** @author Lars Tiefland* @copyright 2016*/function getVersandLaender(){// ME: Länder raus, und die bit-Schiebeoperation ungestört durchzählen lasssen// LT: für Smarty umgebaut$forbiddenLands = array();if (table_exists("bestelladresse", $GLOBALS["INI"]["dbConnect"]["order_db"]) &&$GLOBALS["INI"]["modules"]["adresssystem"] == "neu"){$old = false;if (table_exists("shippinggroups")){$cTable = "countries";$cField = "`name-ger";$coTable = "cotinents";$coField = "name_de";if (table_exists("countries")){$cField = "country";$cTable = $GLOBALS["INI"]["dbConnect"]["database"].".".$cTable;$coTable = "";$coField = "continent";}$sql = "SELECTc.id,c.shipping,".$coField." AS continent,c.".$cField." AS countryFROM".$cTable." cJOIN".$GLOBALS["INI"]["dbConnect"]["database"].".shippinggroups sgONsg.id = c.shipping";if ($coTable){$sql .= "JOIN".$coTable."ONco.id=c.continent";}}else{$old = true;$sql = "SELECTid,weban_lcode,`name-ger` AS countryFROMcontent_management.countriesWHEREweban_lcode!=''";}$res = $GLOBALS["db_red"]->query($sql);while ($row = $res->unbuffered_row('array')){$land_name = $row["country"];if (!in_array($land_name, $forbiddenLands)){if ($old === true){$land = $row["weban_lcode"];$gewicht = 0;$preis = 0;if (isset($_SESSION['SHOP']['SUMME']) && $_SESSION['SHOP']['SUMME']){$preis = $_SESSION['SHOP']['SUMME'];}// gibt es für dieses Land Versandoptionen?$sql = "SELECTIDFROMartikelWHERELieferstatus & ".$land." = ".$land."ANDFather=-3ANDstatus = ".$GLOBALS['INI']['shops_ID']."";if (isset($_SESSION['SHOP']['BASKET']) && count($_SESSION["SHOP"]["BASKET"])){$sql .= "AND((".$gewicht." between preis_neu1 and preis_neu2))AND((".$preis." BETWEEN preis_neu3 AND preis_neu4)OR(preis_neu3=preis_neu4))";}if (isset($_SESSION['SHOP']['BASKET']) && count($_SESSION["SHOP"]["BASKET"])){foreach ($GLOBALS["Eigenschaften"] as $nr){if (Eigenschaft($nr) == true){$sql .= " AND Eigenschaft_$nr = 1 ";}else{$sql .= "AND((Eigenschaft_$nr = 0)OR(Eigenschaft_$nr IS NULL))";}}}$q = $GLOBALS['ci']->db->query($sql);if ($q){$n = $q->row_array();if ($n){if ($GLOBALS["INI"]["charset"] == "utf-8" && $GLOBALS["INI"]["dbConnect"]["db_is_utf8"] !=1){$land_name = utf8_encode($land_name);}$laender[$row["id"]] = $land_name;}}}else{$continent = $row["continent"];$sql = "SELECTIDFROMartikelWHEREkennung = ".$row["shipping"]."ANDFather=-3ANDstatus = ".$GLOBALS['INI']['shops_ID']."";if (count($_SESSION["SHOP"]["BASKET"])){$sql .= "AND((".$gewicht." between preis_neu1 and preis_neu2))AND((".$preis." BETWEEN preis_neu3 AND preis_neu4)OR(preis_neu3=preis_neu4))";}if (count($_SESSION["SHOP"]["BASKET"])){foreach ($GLOBALS["Eigenschaften"] as $nr){if (Eigenschaft($nr) == true){$sql .= " AND Eigenschaft_$nr = 1 ";}else{$sql .= "AND((Eigenschaft_$nr = 0)OR(Eigenschaft_$nr IS NULL))";}}}$q = mysql_query($sql);if ($q){$n = mysql_num_rows($q);if ($n){if ($GLOBALS["INI"]["charset"] == "utf-8" && $GLOBALS["INI"]["dbConnect"]["order_db_is_utf8"] !=1){$land_name = utf8_encode($land_name);$continent = utf8_encode($continent);}$laender[$continent][$row["id"]] = $land_name;}}}}}}else{for ($i = 0; $i < 64; $i++){$land = 1 << $i;$land_name = getCountryById($land);if ($land_name){if (!in_array($land_name, $forbiddenLands)){$gewicht = getBasketGewicht();$preis = getBasketSumme();// gibt es für dieses Land Versandoptionen?$sql = "SELECTIDFROMartikelWHERELieferstatus & ".$land." = ".$land."ANDFather=-3ANDstatus = ".$GLOBALS['INI']['shops_ID']."";if (count($_SESSION["SHOP"]["BASKET"])){$sql .= "AND((".$gewicht." between preis_neu1 and preis_neu2))AND((".$preis." BETWEEN preis_neu3 AND preis_neu4)OR(preis_neu3=preis_neu4))";}if (count($_SESSION["SHOP"]["BASKET"])){foreach ($GLOBALS["Eigenschaften"] as $nr){if (Eigenschaft($nr) == true){$sql .= " AND Eigenschaft_$nr = 1 ";}else{$sql .= "AND((Eigenschaft_$nr = 0)OR(Eigenschaft_$nr IS NULL))";}}}$q = mysql_query($sql);if ($q){$n = mysql_num_rows($q);if ($n){$shopsNoEncode = array("ababum.de","etoh24.de",);if ($GLOBALS["INI"]["charset"] == "utf-8" && !in_array(__SHOP__, $shopsNoEncode)){$land_name = utf8_encode($land_name);}$laender[$land] = ($land_name);}}}}}}if (is_array($laender)){$laender = array_unique($laender);}else{$laender = array();}return $laender;}function table_exists($table, $db = null, $c = null){$ini = $GLOBALS['INI'];if ($db){$db = trim($db, '.');}if (!$c){$conn = $GLOBALS['order_db'];}else{$conn = $c;}if (!$db || $db == $ini["dbConnect"]["database"]){$db = $ini["dbConnect"]["database"];if (!$c){$conn = $GLOBALS['ci']->db;}else{$conn = $c;}}$sql = "SELECTengineFROMinformation_schema.TABLESWHEREtable_name='".$table."'ANDtable_schema='".$db."'";$res = $conn->query($sql);if ($res->num_rows()){return true;}return false;}function column_exists($table, $column, $db = null, $c = null){$ini = $GLOBALS['INI'];if ($db){$db = trim($db, '.');}if (!$c){$conn = $GLOBALS['order_db'];}else{$conn = $c;}if (!$db || $db == $ini["dbConnect"]["database"]){$db = $ini["dbConnect"]["database"];if (!$c){$conn = $GLOBALS['ci']->db;}else{$conn = $c;}}$t_exists = table_exists($table, $db, $conn);if ($t_exists){$sql = "SELECTdata_typeFROMinformation_schema.COLUMNSWHEREcolumn_name='".$column."'ANDtable_name='".$table."'ANDtable_schema='".$db."'";$res = $conn->query($sql);if ($res->num_rows()){return true;}return false;}return false;}/*** getColumnInfo()** Holt Informationen zu einer Spalte (inklusive dem f?r diese Spalte definierten Fremdschl?ssel)** @param mixed $table* @param mixed $column* @param mixed $db* @param mixed $c* @return*/function getColumnInfo($table, $column, $db = null, $c = null){global $remoteServer_dbh, $localhost_dbh;if (!is_array($_SESSION["INI"])){$ini = $GLOBALS["INI"];}else{$ini = $_SESSION["INI"];}if ($db){$db = trim($db, '.');}if (!$c){if (__USE_MDB2__ === true){$conn = $GLOBALS["order_db"];}elseif (is_resource($GLOBALS["order_dbh"])){$conn = $GLOBALS["order_dbh"];}elseif (is_resource($remoteServer_dbh)){$conn = $remoteServer_dbh;}}else{$conn = $c;}if (!$db || $db == $ini["dbConnect"]["database"]){$db = $ini["dbConnect"]["database"];if (!$c){if (__USE_MDB2__ === true){$conn = $GLOBALS["db"];}elseif (is_resource($GLOBALS["dbh"])){$conn = $GLOBALS["dbh"];}elseif (is_resource($localhost_dbh)){$conn = $localhost_dbh;}}else{$conn = $c;}}if (column_exists($table, $column, $db, $conn)){//Hole Informationen zur Spalte$sql = "SELECT*FROMinformation_schema.COLUMNSWHEREcolumn_name='".$column."'ANDtable_name='".$table."'ANDtable_schema='".$db."'";if (__USE_MDB2__ === true){$res = $conn->query($sql);if ($res->numRows()){$row = $res->fetchRow();}}else{$res = mysql_query($sql, $conn);if (mysql_num_rows($res)){$row = mysql_fetch_assoc($res);}}$t = getTableInfo($table, $db, $conn);$row["engine"] = $t["ENGINE"];if ($row["engine"] == "InnoDB"){//Hole Informationen zu einem definierten Fremdschl?ssel$sql = "SELECTREFERENCED_TABLE_SCHEMA,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME,CONSTRAINT_NAMEFROMinformation_schema.KEY_COLUMN_USAGEWHEREcolumn_name='".$column."'ANDtable_name='".$table."'ANDtable_schema='".$db."'";if (__USE_MDB2__ === true){$res = $conn->query($sql);if ($res->numRows()){$row_k = $res->fetchRow();}}else{$res = mysql_query($sql, $conn);if (mysql_num_rows($res)){$row_k = mysql_fetch_assoc($res);}}if (is_array($row_k)){$row = array_merge($row, $row_k);}}}return $row;}/*** getTableInfo()** Liest Informationen zu einer Tabelle** @param mixed $table* @param mixed $db* @param mixed $c* @return*/function getTableInfo($table, $db = null, $c = null){global $remoteServer_dbh, $localhost_dbh;if (!is_array($_SESSION["INI"])){$ini = $GLOBALS["INI"];}else{$ini = $_SESSION["INI"];}if ($db){$db = trim($db, '.');}if (!$c){if (__USE_MDB2__ === true){$conn = $GLOBALS["order_db"];}elseif (is_resource($GLOBALS["order_dbh"])){$conn = $GLOBALS["order_dbh"];}elseif (is_resource($remoteServer_dbh)){$conn = $remoteServer_dbh;}}else{$conn = $c;}if (!$db || $db == $ini["dbConnect"]["database"]){$db = $ini["dbConnect"]["database"];if (!$c){if (__USE_MDB2__ === true){$conn = $GLOBALS["db"];}elseif (is_resource($GLOBALS["dbh"])){$conn = $GLOBALS["dbh"];}elseif (is_resource($localhost_dbh)){$conn = $localhost_dbh;}}else{$conn = $c;}}if (table_exists($table, $db, $conn)){//Hole Informationen zur Tabelle$sql = "SELECT*FROMinformation_schema.TABLESWHEREtable_name='".$table."'ANDtable_schema='".$db."'";if (__USE_MDB2__ === true){$res = $conn->query($sql);if ($res->numRows()){$row = $res->fetchRow();}}else{$res = mysql_query($sql, $conn);if (mysql_num_rows($res)){$row = mysql_fetch_assoc($res);}}}return $row;}/*** createDBField()** legt eine neue Spalte $name in der durch $table bestimmten Tabelle an* $config ist ein Array mit folgenden Schl?sseln* type ==> Typ der Spalte (z. B. varchar)* length ==> L?nge der Spalte (z. B. 255)* extra ==> zus?tliche Optionen f?r das Feld (z. B. UNSIGNED bei Zahlen)* nullable ==> kann Feld den Wert NULL enthalten?* default ==> Wert, der in der Spalte gespeichert wird, wenn kein Wert* ?bergeben wird* index ==> Soll ein Index angelegt werden und wenn ja, welcher?* Beispiele: index, unique* after ==> Bestimmt hinter welcher Spalte die neue angelegt wird* Wenn kein Wert angegeben wird, wird die Spalte am Ende der Tabelle* angelegt** @param string $name* @param string $table* @param resource $conn* @param array $config* @return void*/function createDBField($name, $table, $conn, $config){$typ = $config["type"];if ($config["length"]){$typ .= "(".$config["length"].")";}if ($config["extra"]){$typ .= " ".$config["extra"];}if ($config["nullable"] == 1){$typ .= " NULL DEFAULT NULL";}else{$default = '';if ($config["default"]){$default = $config["default"];}$typ .= " NOT NULL DEFAULT '".$default."'";}if ($config["after"]){$typ .= " AFTER ".$config["after"];}if ($config["index"]){$typ .= ", ADD ".$config["index"]."(".$name.")";}$sql = "ALTER TABLE".$table."ADD".$name." ".$typ."";$conn->exec($sql);}function Eigenschaft($NR){if (is_array($_SESSION['SHOP']['BASKET']) && count($_SESSION['SHOP']['BASKET']) >0){foreach ($_SESSION['SHOP']['BASKET'] as $v){$test = explode("_", $v["ID"]);if (count($test) == 1){$idArray[] = $v["ID"];}}$query = "SELECT distinctEigenschaft_$NRFROMartikelWHERE(ID =".implode(" or ID =", $idArray).")ANDLanguage = '".$GLOBALS["INI"]['language']."'ANDEigenschaft_$NR=1";$result = $GLOBALS['ci']->db->query($query);if ($result->num_rows() > 0){return true;}else{return false;}}else{return false;}}/*** getVersandEigenschaften()** liest Versandeigenschaften aus der Datenbank des Redaktionssystems* für die in der Konstante __SITE__ definierte Domain (z. B. mediaran.de) aus* und gibt sie zurück** Über die Konstante __USE_MDB2__ kann die Datenbankschnittstelle bestimmt werden** @return array*/function getVersandEigenschaften($domain = __SITE__){$sql = "SELECTidFROMpropertiesWHEREinterner_Name LIKE 'Eigenschaft%'ANDtools=1";$res = $GLOBALS["db_red"]->query($sql);$rows = $res->result_array();foreach ($rows as $row){$sql2 = "SELECTwp.*,p.interner_nameFROMwebs_properties AS wpJOINwebs AS wONw.ID=wp.websJOINproperties AS pONp.id=wp.propertiesWHEREdomain='".$domain."'ANDproperties=".$row["id"]."ANDwp.Bezeichnung LIKE '%;logistik';";$res2 = $GLOBALS["db_red"]->query($sql2);$row2 = $res2->row_array();if (is_array($row2)){list($name, $nr) = explode("_", $row2["interner_name"]);$eigenschaften[] = $nr;}}return $eigenschaften;}function getWebRechte($site = __SITE__){$web_rechte = array();$query = "SELECTm.interner_name m_name,t.button_name t_name,p.interner_name p_name,wp.Bezeichnung wp_nameFROMcontent_management.webs w,content_management.webs_properties wp,content_management.properties p,content_management.tools t,content_management.modules mWHEREw.domain='$site'ANDwp.webs=w.IDANDwp.properties=p.IDANDp.tools = t.IDANDt.modules = m.IDORDER BYp.Rang";$res = $GLOBALS["db_red"]->query($query);while ($zeile = $res->unbuffered_row('array')){if (!$zeile["wp_name"]){$zeile["wp_name"] = "";}$zeile["wp_name"] = explode("|", $zeile["wp_name"]);if (count($zeile["wp_name"]) == 1){$zeile["wp_name"] = $zeile["wp_name"][0];}$web_rechte[$zeile["m_name"]][$zeile["t_name"]][$zeile["p_name"]] = $zeile["wp_name"];}foreach (array_keys($web_rechte) as $a){foreach (array_keys($web_rechte[$a]) as $b){foreach (array_keys($web_rechte[$a][$b]) as $c){if (is_array($web_rechte[$a][$b][$c])){$web_rechte[$a][$b][$c] = $web_rechte[$a][$b][$c][array_search($GLOBALS["INI"]["language"],array_keys($web_rechte["online_shop"]["language"]))];if ($web_rechte[$a][$b][$c] == "./."){unset($web_rechte[$a][$b][$c]);}}}}}unset($query);unset($result);unset($zeile);return $web_rechte;}function getZahlarten(){$zahlarten[] = "- Bezahlarten -";$sql = "SELECTz.*FROMzahlungsarten zJOINartikel aONa.short_line_1=z.interner_nameORDER BYname";$res = $GLOBALS['ci']->db->query($sql);while ($row = $res->unbuffered_row('array')){$ini_name = $row["interner_name"];if ($row["interner_name"] == "sofortueberweisung"){$ini_name = "ueberweisung";}if (isset($GLOBALS['INI'][$ini_name]) && $GLOBALS["INI"][$ini_name]["aktiv"] ==1 && ((isset($_SESSION['zahlarten'][$ini_name]) && $_SESSION["zahlarten"][$ini_name]!== false) || !isset($_SESSION['zahlarten'][$ini_name])) || !in_array($row["interner_name"],$GLOBALS["zahlsysteme"])){$zahlarten[$row['interner_name']] = $row['name'];}}return $zahlarten;}function getWebanLCode($land){$sql = "SELECTweban_lcodeFROMcountriesWHERE`name-ger` = '".$land."'OR`name-en` = '".$land."'OR`iso-2` = '".$land."'OR`iso-3` = '".$land."'OR`id` = '".$land."'";$res = $GLOBALS["db_red"]->query($sql);$row = $res->row_array();$id = $row['weban_lcode'];return $id;}function get_versandkosten($land = null, $mode = ''){if (is_null($land)){$land = 47;}$lCode = getWebanLCode($land);$gewicht = get_gewicht();$preis = $_SESSION['SHOP']['SUMME'];$shopID = $GLOBALS["INI"]['shops_ID'];if (isset($_SESSION["KundengruppeShopID"]) && $_SESSION["KundengruppeShopID"] !=""){$shopID = $_SESSION["KundengruppeShopID"];}$sql_Z_extra = "";if (column_exists("zahlungsarten", "express", $GLOBALS["INI"]["dbConnect"]["database"],$GLOBALS['ci']->db)){$sql_Z_extra = "express,";}$sql = "SELECTa.ID,Father,kurzbezeichnung as kurz,langbezeichnung as lang,beschreibung as beschr,preis1 as preis,preis2 as aufschlag,short_line_1 as rufname,versand_abschlag,1 as Versand,preis_neu1,preis_neu2,preis_neu3,preis_neu4,Eigenschaft_1,Eigenschaft_2,Eigenschaft_3,Eigenschaft_4,Eigenschaft_5,".$sql_Z_extra."z.name AS z_nameFROMartikel aJOINzahlungsarten zONz.interner_name=a.short_line_1WHEREfather=-3ANDlanguage='".$GLOBALS['INI']['language']."'ANDlieferstatus & ".$lCode."=".$lCode."AND((".$gewicht." between preis_neu1 and preis_neu2))AND((".$preis." BETWEEN preis_neu3 AND preis_neu4)OR(preis_neu3=preis_neu4))";if ($mode != 'Versanduebersicht'){foreach ($GLOBALS["Eigenschaften"] as $nr){if (Eigenschaft($nr) == true){$sql .= "ANDEigenschaft_$nr = 1";}else{$sql .= "AND((Eigenschaft_$nr = 0)OR(Eigenschaft_$nr IS NULL))";}}}$sql .= "ORDER BYshort_line_1,rang";$res = $GLOBALS['ci']->db->query($sql);$items = $res->result_array();return $items;}/*** getIsoCode()** gibt den 2- oder 3-stelligen ISO-Code eines landes zurück** @param string $Land Land dessen ISO-Code zurügkgegeben werden soll* @param string $len Länge des ISO-Codes (2- oder 3-stellig)** @return string*/function getIsoCode($Land = 'Deutschland', $len = 2){$iso = "DE";$sql = "SELECT`iso-".$len."` as iso_codeFROMcountriesWHERE`name-ger` ='".$Land."'OR`name-en` = '".$Land."'OR`id` = '".$Land."'";$res = $GLOBALS["db_red"]->query($sql);$row = $res->row_array();$iso = $row["iso_code"];return $iso;}if (isset($GLOBALS['INI']['steuern']['use_countries_tax'])){$GLOBALS['steuern'] = getSteuerinfo();}/*** Liefert zu den angegebenen LänderIds aus der Ini-Variable steuern->use_countries-tax die verfügbaren Steuersätze* ** @return array $steuern mit den Steuerinfos ermittelt**/function getSteuerinfo(){$steuern = array();//default LandID für Deutschland$landID = 47;//Wenn das Flag gesetzt ist, dann nimm diesen wert, damit auch "ausländische Shops" den richtigen MwSt angezeigt bekommenif (isset($GLOBALS["INI"]["steuern"]["default_countryID"])){$landID = $GLOBALS["INI"]["steuern"]["default_countryID"];}$countryIDs = (isset($GLOBALS['INI']['steuern']['use_countries_tax'])) ? $GLOBALS['INI']['steuern']['use_countries_tax'] :$landID;$sql = "SELECT*FROMcountries_taxWHEREcountries_id IN (".$countryIDs.")";$res = $GLOBALS["db_red"]->query($sql);while ($r = $res->unbuffered_row('array')){$steuern[$r['countries_id']][$r['taxes_id']] = $r['tax_percent'];}return $steuern;}function get_gewicht(){$gewicht = 0;foreach ($_SESSION['SHOP']['BASKET'] AS $bItem){$artikel = $GLOBALS['ci']->artikel->get_artikel($bItem['ID'], true);$gewicht += $artikel['gewicht'];}return $gewicht;}/**** definiert die Konstante IS_WEBAN* diese wird auf "true" gesetzt, wenn ein Zugriff über mindestens einen der* folgende Wege erfolgt:** 1. über die öffentliche IP der Firma* 2. Mit dem Benutzernamen "admin"* 3. aus dem lokalen Netz der Firma**/function isWeban(){$webanIP = "89.245.130.99";if (!defined("IS_WEBAN")){if ((isset($_SERVER["REMOTE_ADDR"]) && $_SERVER["REMOTE_ADDR"] == $webanIP) || (isset($_SERVER["PHP_AUTH_USER"]) && $_SERVER["PHP_AUTH_USER"] == "admin") || (isset($_SERVER["REMOTE_ADDR"]) &&preg_match("/192\.168\.0/", $_SERVER["REMOTE_ADDR"])) || CRON === true){define("IS_WEBAN", true);}else{define("IS_WEBAN", false);}}}function admin_debug($var, $die = false){if (IS_WEBAN === true){echo EOL."Admin-Debug:".EOL;var_dump($var);if ($die === true){die();}}else{//mail( "ltiefland@gmail.com", "Fehler auf " . __SHOP__, var_export( $var, true ) );}}function getBasketGewicht(){$gewicht = 0;foreach ($_SESSION["SHOP"]["BASKET"] as $bItem){$gewicht += $bItem["gewicht"];}return $gewicht;}?>