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

  • Cart
  • CartOrderButton
  • CartPage
  • CartSiteConfig
  • CartTableListField
  • CheckoutPage
  • ExtendGroupDiscount
  • ExtendMemberCart
  • ExtendPageCart
  • ExtendPageSpecialCatalog
  • ExtendProductSpecialCatalog
  • ExtendProfilePageOrder
  • Order
  • OrderAdmin
  • OrderExporter
  • OrderItem
  • OrderItemField
  • SpecialCatalog
  • TextLiteralField
  1 <?php
  2 
  3 /**
  4  * Настройки для корзины
  5  *
  6  * @package cart
  7  * @author inxo
  8  */
  9 class CartSiteConfig extends SiteConfigDecorator {
 10 
 11     function extraStatics() {
 12         return array(
 13             'db' => array(
 14                 'CartMinimalOrderPrice' => 'Decimal',
 15 //              'CartHideZeroPrice' => 'Boolean',
 16                 'CartAdminEmail' => 'Text',
 17                 'CartSenderEmail' => 'Text',
 18                 'CartRegisterEnabled' => 'Boolean',
 19                 'CartRegisterRequire' => 'Boolean',
 20                 'CartAdminNewOrderSubject' => 'Varchar(255)',
 21                 'CartUserNewOrderSubject' => 'Varchar(255)',
 22                 'CartUserStatusSubject' => 'Varchar(255)',
 23                 'CachedCartLifeTime' => 'Int', // время жизни кешированной корзины и ее куки в днях
 24             ),
 25             'defaults' => array(
 26                 'CartMinimalOrderPrice' => 0,
 27 //              'CartHideZeroPrice' => 0,
 28                 'CartRegisterEnabled' => false,
 29                 'CartRegisterRequire' => false,
 30                 'CartAdminNewOrderSubject' => _t('SiteConfig.DefaultCartAdminNewOrderSubject', 'New Order %d'),
 31                 'CartUserNewOrderSubject' => _t('SiteConfig.DefaultCartUserNewOrderSubject', 'Your order %d'),
 32                 'CartUserStatusSubject' => _t('SiteConfig.DefaultCartUserStatusSubject', 'Order %d status changed'),
 33                 'CachedCartLifeTime' => 30,
 34             ),
 35         );
 36     }
 37 
 38     /**
 39      * Проверяет возможно ли использовать регистрацию на сайте
 40      * На данный момент только по наличию модуля auth
 41      *
 42      * @return boolean
 43      */
 44     static function CartRegistraionAvailable() {
 45         return class_exists('ProfilePage');
 46     }
 47 
 48     /**
 49      * Емайл для уведомления администратора магазина
 50      *
 51      * @return string
 52      */
 53     function CartAdminEmail() {
 54         return ($this->owner->CartAdminEmail) ? $this->owner->CartAdminEmail : $this->owner->AdminEmail();
 55     }
 56 
 57     /**
 58      * Емайл с которого будут уходить письма клиенту
 59      *
 60      * @return string
 61      */
 62     function CartSenderEmail() {
 63         return ($this->owner->CartSenderEmail) ? $this->owner->CartSenderEmail : $this->owner->SenderEmail();
 64     }
 65 
 66     /**
 67      * Формирует тему для письма администратору о новом заказе
 68      *
 69      * @param int $order - номер заказа
 70      *
 71      * @return string
 72      */
 73     function CartAdminNewOrderSubject($order) {
 74         return $this->formatSubject('CartAdminNewOrderSubject', $order);
 75     }
 76 
 77     /**
 78      * Формирует тему для письма клиенту о новом заказе
 79      *
 80      * @param int $order - номер заказа
 81      *
 82      * @return string
 83      */
 84     function CartUserNewOrderSubject($order) {
 85         return $this->formatSubject('CartUserNewOrderSubject', $order);
 86     }
 87 
 88     /**
 89      * Формирует тему для письма клиенту о изменении статуса заказа
 90      *
 91      * @param int $order - номер заказа
 92      *
 93      * @return string
 94      */
 95     function CartUserStatusSubject($order) {
 96         return $this->formatSubject('CartUserStatusSubject', $order);
 97     }
 98 
 99     function updateCMSFields(FieldSet &$fields) {
100         $tab = WebylonSiteConfig::get_config_tab($fields, 'Cart');
101 
102         $tab->push(new NumericField('CartMinimalOrderPrice', $this->owner->fieldLabel('CartMinimalOrderPrice')));
103 //      $tab->push(new CheckboxField('CartHideZeroPrice', $this->owner->fieldLabel('CartHideZeroPrice')));
104 
105         $tab->push(new EmailField('CartAdminEmail', $this->owner->fieldLabel('CartAdminEmail') . sprintf(' (%s)', $this->owner->AdminEmail())));
106         $tab->push(new EmailField('CartSenderEmail', $this->owner->fieldLabel('CartSenderEmail') . sprintf(' (%s)', $this->owner->SenderEmail())));
107 
108         if (self::CartRegistraionAvailable()) {
109             $tab->push(new CheckboxField('CartRegisterEnabled', $this->owner->fieldLabel('CartRegisterEnabled')));
110             $tab->push(new CheckboxField('CartRegisterRequire', $this->owner->fieldLabel('CartRegisterRequire')));
111         }
112 
113         $tab->push(new TextField('CartAdminNewOrderSubject', $this->owner->fieldLabel('CartAdminNewOrderSubject')));
114         $tab->push(new TextField('CartUserNewOrderSubject', $this->owner->fieldLabel('CartUserNewOrderSubject')));
115         $tab->push(new TextField('CartUserStatusSubject', $this->owner->fieldLabel('CartUserStatusSubject')));
116         
117         $tab->push(new NumericField('CachedCartLifeTime', $this->owner->fieldLabel('CachedCartLifeTime')));
118     }
119 
120     function onBeforeWrite() {
121         if (!self::CartRegistraionAvailable()) {
122             $this->owner->CartRegisterEnabled = 0;
123             $this->owner->CartRegisterRequire = 0;
124         }
125     }
126 
127     /**
128      * Форматирет тему письма в зависимости от того указан placeholder для номера заказа или нет
129      *
130      * @param string $name - имя переменной в которой храниться текст
131      * @param int $order - номер заказа
132      *
133      * @return string
134      */
135     private function formatSubject($name, $order) {
136         $str = ($this->owner->$name) ? $this->owner->$name : _t('SiteConfig.Default' . $name);
137         return (strstr($str, '%d') === false) ? $str : sprintf($str, $order);
138     }
139 
140 }
141 
[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