private static final function processCall() { if (is_array(static::$class_whitelist) && !in_array(static::$call_class, static::$class_whitelist)) { Status::addError('Kein Zugriff auf Klasse: %s', array(static::$call_class)); return; } if (!class_exists(static::$call_class, true)) { Status::addError('Klasse %s existiert nicht', array(static::$call_class)); return; } if (!in_array(static::$call_method, get_class_methods(static::$call_class))) { Status::addError('%s existiert nicht', array(static::$call_class . '::' . static::$call_method . '()')); return; } return call_user_func(static::$call_class . '::' . static::$call_method, static::$call_params); }
/** * Inhalte aus Einstellungs-INI-Datei auslesen * * @param string $sName - Name der auszulesenden INI-Datei * @return array */ public static function get($sName) { // Pfad zur auszulesenden Einstellungs-INI $sFile = DIR_SETTINGS . $sName . '.ini'; // Existiert die Einstellungs-INI und darf sie von PHP ausgelesen werden? if (!is_readable($sFile)) { // Fehlermeldungen nur einmal pro Datei anzeigen if (!in_array($sFile, static::$missingFiles)) { Status::addError('Einstellungen der "' . $sFile . '" konnten nicht ausgelesen werden.'); static::$missingFiles[] = $sFile; } return; } // Werte aus dem Cache auslesen und zurückgeben, sofern vorhanden if (array_key_exists($sName, static::$cache)) { return static::$cache[$sName]; } // Einstellungs-INI auslesen, assoziatives Array generieren und Werte cachen static::$cache[$sName] = parse_ini_file($sFile, true); return static::$cache[$sName]; }
public static function addToCart($hParams = array()) { // Keine Produkt-ID uebergeben if (!$hParams['peid']) { // sofort abbrechen Status::addError("Es wurde keine Produkt-ID uebergeben"); return; } // Produktdaten auslesen $hProduct = shopProduct::readEntry(array("peid" => $hParams["peid"])); // Produkt unsichtbar if (!$hProduct['visible']) { Status::addWarning("Das Produkt konnte nicht in den Warenkorb gelegt werden"); // Sicherheitsfrage bei Tarifwechsel } elseif ($hProduct['norm'] == 'tariff' && ($hCurrentTariff = shopShopping::getTariff() && !$hParams['signed'])) { // Daten fuer Dialog mit den bevorstehenden Hinweisen auslesen $ahAlerts = shopShopping::changeTariffAlerts(array("peid" => $hParams["peid"])); Renderer::assign('alerts', $ahAlerts); Renderer::assign('tariff', $hProduct); return array('template' => Renderer::render('content/modal_tariff_change.tpl'), 'assigns' => array('action' => 'show_dialog', 'new_tariff' => $hProduct)); // Produkt in Warenkorb legen } else { // Liegt das Produkt bereits im Warenkorb? if ($hNewCartItem = shopShopping::isInCart(array("peid" => $hParams["peid"]))) { // Anzahl des Produkts erhoehen $hNewCartItem["amount"]++; // Produkt liegt noch nicht im Warenkorb } else { $hNewCartItem = array("scid" => 0, "peid" => $hParams["peid"], "amount" => 1); } // Speichern des Artikels im Warenkorb if ($iScid = shopShopping::saveCartItem($hNewCartItem)) { if (!Status::hasErrors()) { if ($hNewCartItem['amount']) { Status::addSuccess($hProduct['name'] . " wurde in den Warenkorb gelegt."); } else { Status::addSuccess($hProduct['name'] . " wurde aus dem Warenkorb entfernt."); } } // Speichern erfolgreich -> Warenkorb auslesen $returnCart = static::getCart($hParams); $returnCart['assigns']['scid'] = $iScid; $returnCart['assigns']['peid'] = $hProduct['peid']; // Dialog nach dem Hinzufügen eines Tarifs darstellen // Prüfung auf signed -> nur einmal statt bei jedem Tarif anzeigen if (static::SHOW_TARIFF_UPSELL && $hProduct['norm'] === 'tariff' && !$hParams['signed']) { Renderer::assign('tariff', $hProduct); $returnCart['assigns']['dialog'] = Renderer::render('content/modal_upsell_tariff.tpl'); $returnCart['assigns']['action'] = 'add_dialog'; } return $returnCart; // Speichern nicht erfolgreich } else { Status::addWarning("Das Produkt konnte nicht in den Warenkorb gelegt werden"); } } return; }