/** * Render this step with the default template * * @return void * * @author Sascha Koehler <*****@*****.**> * @copyright 2011 pixeltricks GmbH * @since 06.04.2011 */ public function init() { $paymentConfirmationText = ''; $checkoutData = $this->controller->getCombinedStepData(); if (isset($checkoutData['PaymentMethod'])) { $this->paymentMethodObj = SilvercartPaymentMethod::get()->byID($checkoutData['PaymentMethod']); if ($this->paymentMethodObj) { if (isset($checkoutData['orderId'])) { $orderObj = SilvercartOrder::get()->byID($checkoutData['orderId']); if ($orderObj) { $paymentConfirmationText = $this->paymentMethodObj->processPaymentConfirmationText($orderObj); $this->paymentMethodObj->processPaymentAfterOrder($orderObj); } } } } $templateVariables = array('PaymentConfirmationText' => $paymentConfirmationText); $output = $this->customise($templateVariables)->renderWith('SilvercartCheckoutFormStepDefaultOrderConfirmation'); return $output; }
/** * Here we set some preferences. * * @return void * * @author Sascha Koehler <*****@*****.**>, Sebastian Diel <*****@*****.**> * @since 11.03.2013 */ public function preferences() { $paymentMethods = SilvercartPaymentMethod::get()->filter("isActive", 1); $stepIsVisible = true; if ($paymentMethods->count() == 0) { $this->addMessage('Keine Zahlungsarten definiert!'); } else { if ($this->SkipPaymentStep()) { $stepIsVisible = false; } $this->preferences['stepIsVisible'] = $stepIsVisible; $this->preferences['stepTitle'] = _t('SilvercartCheckoutFormStep4.TITLE', 'Payment'); $this->preferences['submitButtonTitle'] = _t('SilvercartCheckoutFormStep.FORWARD', 'Next'); $this->preferences['fillInRequestValues'] = true; $this->preferences['loadShoppingcartModules'] = false; $this->preferences['createShoppingcartForms'] = false; $this->preferences['doJsValidationScrolling'] = false; } parent::preferences(); }
/** * Creates the upload folder for payment images if it doesn't exist. * * @param array $paymentLogos The payment logos as associative array: * ['LogoName' => 'PATH_TO_FILE', ....] * @param string $paymentModuleName The name of the payment module * * @return void * * @author Sebastian Diel <*****@*****.**>, * Sascha Koehler <*****@*****.**> * @since 16.06.2014 */ public function createLogoImageObjects($paymentLogos, $paymentModuleName) { //make sure that the folder "Uploads" exists Folder::find_or_make('Uploads'); $paymentModule = SilvercartPaymentMethod::get()->filter(array("ClassName" => $paymentModuleName))->sort(array("ID" => "ASC"))->first(); if ($paymentModule) { if (count($this->getPossiblePaymentChannels()) > 0) { // Multiple payment channels foreach ($paymentLogos as $paymentChannel => $logos) { $paymentChannelMethod = DataObject::get_one($paymentModuleName, sprintf("\"PaymentChannel\"='%s'", $paymentChannel), true, $paymentModuleName . ".ID"); if ($paymentChannelMethod) { if (!$paymentChannelMethod->PaymentLogos()->exists()) { foreach ($logos as $title => $logo) { $paymentLogo = new SilvercartImage(); $paymentLogo->Title = $title; $storedLogo = Image::get()->filter('Name', basename($logo))->first(); if ($storedLogo) { $paymentLogo->ImageID = $storedLogo->ID; } else { file_put_contents(Director::baseFolder() . '/' . $this->uploadsFolder->Filename . basename($logo), file_get_contents(Director::baseFolder() . $logo)); $image = new Image(); $image->setFilename($this->uploadsFolder->Filename . basename($logo)); $image->setName(basename($logo)); $image->Title = basename($logo, '.png'); $image->ParentID = $this->uploadsFolder->ID; $image->write(); $paymentLogo->ImageID = $image->ID; } $paymentLogo->write(); $paymentChannelMethod->PaymentLogos()->add($paymentLogo); } } } } } else { // Single payment channels foreach ($paymentLogos as $title => $logo) { if (!$paymentModule->PaymentLogos()->exists()) { $paymentLogo = new SilvercartImage(); $paymentLogo->Title = $title; $storedLogo = Image::get()->filter('Name', basename($logo))->first(); if ($storedLogo) { $paymentLogo->ImageID = $storedLogo->ID; } else { file_put_contents(Director::baseFolder() . '/' . $this->uploadsFolder->Filename . basename($logo), file_get_contents(Director::baseFolder() . $logo)); $image = new Image(); $image->setFilename($this->uploadsFolder->Filename . basename($logo)); $image->setName(basename($logo)); $image->Title = basename($logo, '.png'); $image->ParentID = $this->uploadsFolder->ID; $image->write(); $paymentLogo->ImageID = $image->ID; } $paymentLogo->write(); $paymentModule->PaymentLogos()->add($paymentLogo); } } } } }