public static function addDomainToCart($hParams = array()) { $hNewItem = array(); $hDomainData = array(); $bRemove = false; if ($hParams['status'] === 'cart') { // Domains, die bereits im Warenkorb liegen, entfernen $hNewItem = array('amount' => 0, 'peid' => $hParams['peid'], 'scid' => $hParams['scid']); $bRemove = true; } else { // Domain in den Warenkorb hinzufuegen $hNewItem['scid'] = 0; foreach (array('scid', 'token', 'amount', 'authcode', 'signed') as $sField) { if (array_key_exists($sField, $hParams)) { $hNewItem[$sField] = $hParams[$sField]; } } // Daten auslesen, damit sie für Speichervorgang zur Verfügung stehen $hDomainData = static::checkDomainData($hParams); } $newScid = shopShopping::saveCartItem($hNewItem); if (!count($hDomainData)) { $hDomainData = static::checkDomainData($hParams); } if ($newScid && $hParams['status'] !== 'cart') { $hDomainData[0]['status'] = 'cart'; $hDomainData[0]['scid'] = $newScid; } // Produkt aus dem Warenkorb entfernen? -> newScid ist jetzt Speicherzustand if (array_key_exists('amount', $hNewItem) && !$hNewItem['amount']) { $newScid = null; } $hParams['scid'] = $newScid; if ($newScid !== null) { Status::addSuccess($hDomainData[0]['name'] . ' wurde in den Warenkorb gelegt'); } else { Status::addSuccess($hDomainData[0]['name'] . ' wurde aus dem Warenkorb entfernt'); } // Domain mit den neuen Daten rendern $returnDomain = static::renderDomainData($hDomainData, $hParams); return $returnDomain; }