Webylon 3.1 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • auth
  • Booking
  • cart
    • shipping
    • steppedcheckout
  • Catalog
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • CheckoutStep
  • CheckoutStep_ContactDetails
  • CheckoutStep_Membership
  • CheckoutStep_PaymentMethod
  • CheckoutStep_Summary
  • SteppedCheckout
 1 <?php
 2 
 3 /**
 4  * Шаг подтверждения заказа
 5  *
 6  * Для шага можно использовать шаблоны: CheckoutPage_summary, CheckoutPage, Page
 7  * В шаблоне надо выводить:
 8  * - состав заказа $Order.Items
 9  * - данные заказа (кроме $Order.ClientNotes)
10  * - форму шага $Form
11  *
12  * @package cart
13  * @subpackage steppedcheckout
14  * @author dvp
15  */
16 class CheckoutStep_Summary extends CheckoutStep{
17 
18     static $allowed_actions = array('summary', 'SummaryForm');
19 
20     /**
21      * Action для показа шага
22      */
23     function summary() {
24         if (SiteConfig::current_site_config()->CartRegisterRequire && !Member::currentUser()) {
25             return Director::redirect('/Security/login?BackURL=' . $this->owner->Link());
26         }
27         $order = Cart::current_order();
28         $form = $this->SummaryForm();
29         
30         foreach ($this->owner->getOrderRequired() as $name) {
31             if ($order->getField($name)) continue;
32             if ($form->fields()->dataFieldByName($name)) continue;
33             return Director::redirect($this->owner->Link());
34         }
35         
36         $form->loadDataFrom(Cart::get_info());
37         $order->ClientNotes = '';
38 
39         return array(
40             'Title' => $this->stepTitle(),
41             'Content' => $this->stepMessage(),
42             'Order' => $order,
43             'Form' => $form
44         );
45     }
46 
47     /**
48      * Возвращает форму подтверждения заказа
49      * 
50      * В качестве действия использует метод владельца saveorder()
51      * Форму можно изменить с помощью расширения подключенного к CheckoutPage_Controller
52      * В расширении можно определить методы:
53      * updateSummaryForm(Form &$form) - для изменения формы в целом.
54      * updateSummaryFields(FieldSet &$fields) - для изменения списка полей формы
55      *
56      * Либо с помощью расширений подключенных к Order
57      * @see Order::getSummaryFields()
58      *
59      * @return Form
60      */
61     function SummaryForm(){
62         $required = $this->owner->getOrderRequired();
63         $siteConfig = SiteConfig::current_site_config();
64         if ($siteConfig->hasMethod('SiteAgreementField') && ($rulesField = $siteConfig->SiteAgreementField())) {
65             $required[] = $rulesField->Name();
66         }
67         $form = new Form(
68             $this->owner,
69             "SummaryForm",
70             $this->owner->getSummaryFields(),
71             $this->getStepActions(new FormAction("saveorder", _t('OrderForm.SaveOrderButton', "Confirm and Pay"))),
72             new CustomRequiredFields($required)
73         );
74         $form->addExtraClass('checkoutComment');
75         
76         $this->owner->extend('updateSummaryForm', $form);
77         return $form;
78     }
79 }
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -
Webylon 3.1 API Docs API documentation generated by ApiGen 2.8.0